@@ -4506,3 +4506,53 @@ entry:
45064506  %d  = call  <2  x i128 > @llvm.fshr (<2  x i128 > %a , <2  x i128 > %b , <2  x i128 > <i128  3 , i128  3 >)
45074507  ret  <2  x i128 > %d 
45084508}
4509+ 
4510+ 
4511+ 
4512+ define  <2  x i64 > @fshl_to_rev2i64 (<2  x i64 > %r ) {
4513+ ; CHECK-SD-LABEL: fshl_to_rev2i64: 
4514+ ; CHECK-SD:       // %bb.0: 
4515+ ; CHECK-SD-NEXT:    rev64 v0.4s, v0.4s 
4516+ ; CHECK-SD-NEXT:    ret 
4517+ ; 
4518+ ; CHECK-GI-LABEL: fshl_to_rev2i64: 
4519+ ; CHECK-GI:       // %bb.0: 
4520+ ; CHECK-GI-NEXT:    shl v1.2d, v0.2d, #32 
4521+ ; CHECK-GI-NEXT:    ushr v0.2d, v0.2d, #32 
4522+ ; CHECK-GI-NEXT:    orr v0.16b, v1.16b, v0.16b 
4523+ ; CHECK-GI-NEXT:    ret 
4524+     %or  = tail  call  <2  x i64 > @llvm.fshl.v2i64 (<2  x i64 > %r , <2  x i64 > %r , <2  x i64 > splat (i64  32 ))
4525+     ret  <2  x i64 > %or 
4526+ }
4527+ 
4528+ define  <4  x i32 > @fshl_to_rev4i32 (<4  x i32 > %r ) {
4529+ ; CHECK-SD-LABEL: fshl_to_rev4i32: 
4530+ ; CHECK-SD:       // %bb.0: 
4531+ ; CHECK-SD-NEXT:    rev32 v0.8h, v0.8h 
4532+ ; CHECK-SD-NEXT:    ret 
4533+ ; 
4534+ ; CHECK-GI-LABEL: fshl_to_rev4i32: 
4535+ ; CHECK-GI:       // %bb.0: 
4536+ ; CHECK-GI-NEXT:    shl v1.4s, v0.4s, #16 
4537+ ; CHECK-GI-NEXT:    ushr v0.4s, v0.4s, #16 
4538+ ; CHECK-GI-NEXT:    orr v0.16b, v1.16b, v0.16b 
4539+ ; CHECK-GI-NEXT:    ret 
4540+     %or  = tail  call  <4  x i32 > @llvm.fshl.v4i32 (<4  x i32 > %r , <4  x i32 > %r , <4  x i32 > splat (i32  16 ))
4541+     ret  <4  x i32 > %or 
4542+ }
4543+ 
4544+ define  <2  x i32 > @fshl_to_rev2i32 (<2  x i32 > %r ) {
4545+ ; CHECK-SD-LABEL: fshl_to_rev2i32: 
4546+ ; CHECK-SD:       // %bb.0: 
4547+ ; CHECK-SD-NEXT:    rev32 v0.4h, v0.4h 
4548+ ; CHECK-SD-NEXT:    ret 
4549+ ; 
4550+ ; CHECK-GI-LABEL: fshl_to_rev2i32: 
4551+ ; CHECK-GI:       // %bb.0: 
4552+ ; CHECK-GI-NEXT:    shl v1.2s, v0.2s, #16 
4553+ ; CHECK-GI-NEXT:    ushr v0.2s, v0.2s, #16 
4554+ ; CHECK-GI-NEXT:    orr v0.8b, v1.8b, v0.8b 
4555+ ; CHECK-GI-NEXT:    ret 
4556+     %or  = tail  call  <2  x i32 > @llvm.fshl.v2i32 (<2  x i32 > %r , <2  x i32 > %r , <2  x i32 > splat (i32  16 ))
4557+     ret  <2  x i32 > %or 
4558+ }
0 commit comments