@@ -657,23 +657,14 @@ entry:
657657}
658658
659659define i16 @test_vqrdmlahh_lane_s16 (i16 %a , i16 %b , <4 x i16 > %c ) {
660- ; CHECK-SD-LABEL: test_vqrdmlahh_lane_s16:
661- ; CHECK-SD: // %bb.0: // %entry
662- ; CHECK-SD-NEXT: fmov s1, w0
663- ; CHECK-SD-NEXT: fmov s2, w1
664- ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0
665- ; CHECK-SD-NEXT: sqrdmlah v1.4h, v2.4h, v0.h[3]
666- ; CHECK-SD-NEXT: umov w0, v1.h[0]
667- ; CHECK-SD-NEXT: ret
668- ;
669- ; CHECK-GI-LABEL: test_vqrdmlahh_lane_s16:
670- ; CHECK-GI: // %bb.0: // %entry
671- ; CHECK-GI-NEXT: rev64 v0.4h, v0.4h
672- ; CHECK-GI-NEXT: fmov s1, w0
673- ; CHECK-GI-NEXT: fmov s2, w1
674- ; CHECK-GI-NEXT: sqrdmlah v1.4h, v2.4h, v0.4h
675- ; CHECK-GI-NEXT: umov w0, v1.h[0]
676- ; CHECK-GI-NEXT: ret
660+ ; CHECK-LABEL: test_vqrdmlahh_lane_s16:
661+ ; CHECK: // %bb.0: // %entry
662+ ; CHECK-NEXT: fmov s1, w0
663+ ; CHECK-NEXT: fmov s2, w1
664+ ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
665+ ; CHECK-NEXT: sqrdmlah v1.4h, v2.4h, v0.h[3]
666+ ; CHECK-NEXT: umov w0, v1.h[0]
667+ ; CHECK-NEXT: ret
677668entry:
678669 %0 = insertelement <4 x i16 > undef , i16 %a , i64 0
679670 %1 = insertelement <4 x i16 > undef , i16 %b , i64 0
@@ -719,7 +710,7 @@ define i16 @test_vqrdmlahh_laneq_s16(i16 %a, i16 %b, <8 x i16> %c) {
719710;
720711; CHECK-GI-LABEL: test_vqrdmlahh_laneq_s16:
721712; CHECK-GI: // %bb.0: // %entry
722- ; CHECK-GI-NEXT: ext v0.16b , v0.16b, v0.16b, #14
713+ ; CHECK-GI-NEXT: dup v0.8h , v0.h[7]
723714; CHECK-GI-NEXT: fmov s1, w0
724715; CHECK-GI-NEXT: fmov s2, w1
725716; CHECK-GI-NEXT: sqrdmlah v1.4h, v2.4h, v0.4h
@@ -837,23 +828,14 @@ entry:
837828}
838829
839830define i16 @test_vqrdmlshh_lane_s16 (i16 %a , i16 %b , <4 x i16 > %c ) {
840- ; CHECK-SD-LABEL: test_vqrdmlshh_lane_s16:
841- ; CHECK-SD: // %bb.0: // %entry
842- ; CHECK-SD-NEXT: fmov s1, w0
843- ; CHECK-SD-NEXT: fmov s2, w1
844- ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0
845- ; CHECK-SD-NEXT: sqrdmlsh v1.4h, v2.4h, v0.h[3]
846- ; CHECK-SD-NEXT: umov w0, v1.h[0]
847- ; CHECK-SD-NEXT: ret
848- ;
849- ; CHECK-GI-LABEL: test_vqrdmlshh_lane_s16:
850- ; CHECK-GI: // %bb.0: // %entry
851- ; CHECK-GI-NEXT: rev64 v0.4h, v0.4h
852- ; CHECK-GI-NEXT: fmov s1, w0
853- ; CHECK-GI-NEXT: fmov s2, w1
854- ; CHECK-GI-NEXT: sqrdmlsh v1.4h, v2.4h, v0.4h
855- ; CHECK-GI-NEXT: umov w0, v1.h[0]
856- ; CHECK-GI-NEXT: ret
831+ ; CHECK-LABEL: test_vqrdmlshh_lane_s16:
832+ ; CHECK: // %bb.0: // %entry
833+ ; CHECK-NEXT: fmov s1, w0
834+ ; CHECK-NEXT: fmov s2, w1
835+ ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
836+ ; CHECK-NEXT: sqrdmlsh v1.4h, v2.4h, v0.h[3]
837+ ; CHECK-NEXT: umov w0, v1.h[0]
838+ ; CHECK-NEXT: ret
857839entry:
858840 %0 = insertelement <4 x i16 > undef , i16 %a , i64 0
859841 %1 = insertelement <4 x i16 > undef , i16 %b , i64 0
@@ -899,7 +881,7 @@ define i16 @test_vqrdmlshh_laneq_s16(i16 %a, i16 %b, <8 x i16> %c) {
899881;
900882; CHECK-GI-LABEL: test_vqrdmlshh_laneq_s16:
901883; CHECK-GI: // %bb.0: // %entry
902- ; CHECK-GI-NEXT: ext v0.16b , v0.16b, v0.16b, #14
884+ ; CHECK-GI-NEXT: dup v0.8h , v0.h[7]
903885; CHECK-GI-NEXT: fmov s1, w0
904886; CHECK-GI-NEXT: fmov s2, w1
905887; CHECK-GI-NEXT: sqrdmlsh v1.4h, v2.4h, v0.4h
0 commit comments