@@ -596,23 +596,15 @@ define i4 @convert_to_bitmask_4xi8(<4 x i8> %vec) {
596596; CHECK-GI-NEXT: mov.b v1[3], w8
597597; CHECK-GI-NEXT: cmeq.8b v0, v0, v1
598598; CHECK-GI-NEXT: mvn.8b v0, v0
599- ; CHECK-GI-NEXT: umov.b w8, v0[0]
600- ; CHECK-GI-NEXT: umov.b w9, v0[1]
601- ; CHECK-GI-NEXT: fmov s1, w8
602- ; CHECK-GI-NEXT: umov.b w8, v0[2]
603- ; CHECK-GI-NEXT: mov.s v1[1], w9
604- ; CHECK-GI-NEXT: umov.b w9, v0[3]
605- ; CHECK-GI-NEXT: mov.s v1[2], w8
606- ; CHECK-GI-NEXT: mov.s v1[3], w9
607- ; CHECK-GI-NEXT: mov.s w8, v1[1]
608- ; CHECK-GI-NEXT: mov.s w9, v1[2]
609- ; CHECK-GI-NEXT: fmov w11, s1
610- ; CHECK-GI-NEXT: mov.s w10, v1[3]
599+ ; CHECK-GI-NEXT: umov.b w8, v0[1]
600+ ; CHECK-GI-NEXT: umov.b w9, v0[0]
601+ ; CHECK-GI-NEXT: umov.b w10, v0[2]
602+ ; CHECK-GI-NEXT: umov.b w11, v0[3]
611603; CHECK-GI-NEXT: and w8, w8, #0x1
612- ; CHECK-GI-NEXT: bfi w11 , w8, #1, #31
613- ; CHECK-GI-NEXT: and w8, w9 , #0x1
614- ; CHECK-GI-NEXT: and w9, w10, #0x1
615- ; CHECK-GI-NEXT: orr w8 , w11, w8, lsl #2
604+ ; CHECK-GI-NEXT: bfi w9 , w8, #1, #31
605+ ; CHECK-GI-NEXT: and w8, w10 , #0x1
606+ ; CHECK-GI-NEXT: orr w8, w9, w8, lsl #2
607+ ; CHECK-GI-NEXT: and w9 , w11, #0x1
616608; CHECK-GI-NEXT: orr w8, w8, w9, lsl #3
617609; CHECK-GI-NEXT: strb w8, [sp, #15]
618610; CHECK-GI-NEXT: and w0, w8, #0xff
@@ -871,28 +863,19 @@ define i6 @no_combine_illegal_num_elements(<6 x i32> %vec) {
871863; CHECK-GI-NEXT: cmtst.4s v1, v1, v1
872864; CHECK-GI-NEXT: mov.s w8, v1[1]
873865; CHECK-GI-NEXT: mov.s w9, v1[2]
866+ ; CHECK-GI-NEXT: fmov w11, s1
874867; CHECK-GI-NEXT: mov.s w10, v1[3]
875- ; CHECK-GI-NEXT: mov.h v1[1], w8
876- ; CHECK-GI-NEXT: mov.s w8, v0[1]
877- ; CHECK-GI-NEXT: mov.h v1[2], w9
878- ; CHECK-GI-NEXT: mov.h v1[3], w10
879- ; CHECK-GI-NEXT: mov.h v1[4], v0[0]
880- ; CHECK-GI-NEXT: mov.h v1[5], w8
881- ; CHECK-GI-NEXT: umov.h w8, v1[1]
882- ; CHECK-GI-NEXT: umov.h w9, v1[0]
883- ; CHECK-GI-NEXT: umov.h w10, v1[2]
884- ; CHECK-GI-NEXT: umov.h w11, v1[3]
885868; CHECK-GI-NEXT: and w8, w8, #0x1
886- ; CHECK-GI-NEXT: bfi w9, w8, #1, #31
887- ; CHECK-GI-NEXT: and w8, w10, #0x1
888- ; CHECK-GI-NEXT: umov.h w10, v1[4]
889- ; CHECK-GI-NEXT: orr w8, w9, w8, lsl #2
890- ; CHECK-GI-NEXT: and w9, w11, #0x1
891- ; CHECK-GI-NEXT: umov.h w11, v1[5]
892- ; CHECK-GI-NEXT: orr w8, w8, w9, lsl #3
869+ ; CHECK-GI-NEXT: bfi w11, w8, #1, #31
870+ ; CHECK-GI-NEXT: and w8, w9, #0x1
893871; CHECK-GI-NEXT: and w9, w10, #0x1
872+ ; CHECK-GI-NEXT: mov.s w10, v0[1]
873+ ; CHECK-GI-NEXT: orr w8, w11, w8, lsl #2
874+ ; CHECK-GI-NEXT: orr w8, w8, w9, lsl #3
875+ ; CHECK-GI-NEXT: fmov w9, s0
876+ ; CHECK-GI-NEXT: and w9, w9, #0x1
894877; CHECK-GI-NEXT: orr w8, w8, w9, lsl #4
895- ; CHECK-GI-NEXT: and w9, w11 , #0x1
878+ ; CHECK-GI-NEXT: and w9, w10 , #0x1
896879; CHECK-GI-NEXT: orr w8, w8, w9, lsl #5
897880; CHECK-GI-NEXT: and w8, w8, #0x3f
898881; CHECK-GI-NEXT: strb w8, [sp, #15]
0 commit comments