@@ -2282,14 +2282,14 @@ define <2 x i64> @asr(<2 x i64> %a, <2 x i64> %b) {
22822282; CHECK-GI: // %bb.0:
22832283; CHECK-GI-NEXT: sshr v0.2d, v0.2d, #32
22842284; CHECK-GI-NEXT: sshr v1.2d, v1.2d, #32
2285- ; CHECK-GI-NEXT: fmov x8, d0
2286- ; CHECK-GI-NEXT: fmov x9, d1
2287- ; CHECK-GI-NEXT: mov x10, v0.d[1]
2288- ; CHECK-GI-NEXT: mov x11, v1.d[1]
2285+ ; CHECK-GI-NEXT: fmov x10, d0
2286+ ; CHECK-GI-NEXT: fmov x11, d1
2287+ ; CHECK-GI-NEXT: mov x8, v0.d[1]
2288+ ; CHECK-GI-NEXT: mov x9, v1.d[1]
2289+ ; CHECK-GI-NEXT: mul x10, x10, x11
22892290; CHECK-GI-NEXT: mul x8, x8, x9
2290- ; CHECK-GI-NEXT: mul x9, x10, x11
2291- ; CHECK-GI-NEXT: mov v0.d[0], x8
2292- ; CHECK-GI-NEXT: mov v0.d[1], x9
2291+ ; CHECK-GI-NEXT: fmov d0, x10
2292+ ; CHECK-GI-NEXT: mov v0.d[1], x8
22932293; CHECK-GI-NEXT: ret
22942294 %x = ashr <2 x i64 > %a , <i64 32 , i64 32 >
22952295 %y = ashr <2 x i64 > %b , <i64 32 , i64 32 >
@@ -2317,14 +2317,14 @@ define <2 x i64> @asr_const(<2 x i64> %a, <2 x i64> %b) {
23172317; CHECK-GI-NEXT: adrp x8, .LCPI81_0
23182318; CHECK-GI-NEXT: sshr v0.2d, v0.2d, #32
23192319; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI81_0]
2320- ; CHECK-GI-NEXT: fmov x8, d0
2321- ; CHECK-GI-NEXT: fmov x9, d1
2322- ; CHECK-GI-NEXT: mov x10, v0.d[1]
2323- ; CHECK-GI-NEXT: mov x11, v1.d[1]
2320+ ; CHECK-GI-NEXT: fmov x10, d0
2321+ ; CHECK-GI-NEXT: fmov x11, d1
2322+ ; CHECK-GI-NEXT: mov x8, v0.d[1]
2323+ ; CHECK-GI-NEXT: mov x9, v1.d[1]
2324+ ; CHECK-GI-NEXT: mul x10, x10, x11
23242325; CHECK-GI-NEXT: mul x8, x8, x9
2325- ; CHECK-GI-NEXT: mul x9, x10, x11
2326- ; CHECK-GI-NEXT: mov v0.d[0], x8
2327- ; CHECK-GI-NEXT: mov v0.d[1], x9
2326+ ; CHECK-GI-NEXT: fmov d0, x10
2327+ ; CHECK-GI-NEXT: mov v0.d[1], x8
23282328; CHECK-GI-NEXT: ret
23292329 %x = ashr <2 x i64 > %a , <i64 32 , i64 32 >
23302330 %z = mul nsw <2 x i64 > %x , <i64 31 , i64 31 >
@@ -2799,14 +2799,14 @@ define <2 x i64> @sdistribute_v2i32(<2 x i32> %src1, <2 x i32> %src2, <2 x i32>
27992799; CHECK-GI: // %bb.0: // %entry
28002800; CHECK-GI-NEXT: sshll v2.2d, v2.2s, #0
28012801; CHECK-GI-NEXT: saddl v0.2d, v0.2s, v1.2s
2802- ; CHECK-GI-NEXT: fmov x8, d0
2803- ; CHECK-GI-NEXT: fmov x9, d2
2804- ; CHECK-GI-NEXT: mov x10, v0.d[1]
2805- ; CHECK-GI-NEXT: mov x11, v2.d[1]
2802+ ; CHECK-GI-NEXT: fmov x10, d0
2803+ ; CHECK-GI-NEXT: fmov x11, d2
2804+ ; CHECK-GI-NEXT: mov x8, v0.d[1]
2805+ ; CHECK-GI-NEXT: mov x9, v2.d[1]
2806+ ; CHECK-GI-NEXT: mul x10, x10, x11
28062807; CHECK-GI-NEXT: mul x8, x8, x9
2807- ; CHECK-GI-NEXT: mul x9, x10, x11
2808- ; CHECK-GI-NEXT: mov v0.d[0], x8
2809- ; CHECK-GI-NEXT: mov v0.d[1], x9
2808+ ; CHECK-GI-NEXT: fmov d0, x10
2809+ ; CHECK-GI-NEXT: mov v0.d[1], x8
28102810; CHECK-GI-NEXT: ret
28112811entry:
28122812 %4 = sext <2 x i32 > %src1 to <2 x i64 >
@@ -2838,14 +2838,14 @@ define <2 x i64> @sdistribute_const1_v2i32(<2 x i32> %src1, <2 x i32> %mul) {
28382838; CHECK-GI-NEXT: sshll v1.2d, v1.2s, #0
28392839; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI101_0]
28402840; CHECK-GI-NEXT: saddw v0.2d, v2.2d, v0.2s
2841- ; CHECK-GI-NEXT: fmov x9, d1
2842- ; CHECK-GI-NEXT: mov x11, v1.d[1]
2843- ; CHECK-GI-NEXT: fmov x8, d0
2844- ; CHECK-GI-NEXT: mov x10, v0.d[1]
2841+ ; CHECK-GI-NEXT: fmov x11, d1
2842+ ; CHECK-GI-NEXT: mov x9, v1.d[1]
2843+ ; CHECK-GI-NEXT: fmov x10, d0
2844+ ; CHECK-GI-NEXT: mov x8, v0.d[1]
2845+ ; CHECK-GI-NEXT: mul x10, x10, x11
28452846; CHECK-GI-NEXT: mul x8, x8, x9
2846- ; CHECK-GI-NEXT: mul x9, x10, x11
2847- ; CHECK-GI-NEXT: mov v0.d[0], x8
2848- ; CHECK-GI-NEXT: mov v0.d[1], x9
2847+ ; CHECK-GI-NEXT: fmov d0, x10
2848+ ; CHECK-GI-NEXT: mov v0.d[1], x8
28492849; CHECK-GI-NEXT: ret
28502850entry:
28512851 %4 = sext <2 x i32 > %src1 to <2 x i64 >
@@ -2875,14 +2875,14 @@ define <2 x i64> @sdistribute_const2_v2i32(<2 x i32> %src1, <2 x i32> %src2) {
28752875; CHECK-GI-NEXT: adrp x8, .LCPI102_0
28762876; CHECK-GI-NEXT: saddl v0.2d, v0.2s, v1.2s
28772877; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI102_0]
2878- ; CHECK-GI-NEXT: fmov x8, d0
2879- ; CHECK-GI-NEXT: fmov x9, d1
2880- ; CHECK-GI-NEXT: mov x10, v0.d[1]
2881- ; CHECK-GI-NEXT: mov x11, v1.d[1]
2878+ ; CHECK-GI-NEXT: fmov x10, d0
2879+ ; CHECK-GI-NEXT: fmov x11, d1
2880+ ; CHECK-GI-NEXT: mov x8, v0.d[1]
2881+ ; CHECK-GI-NEXT: mov x9, v1.d[1]
2882+ ; CHECK-GI-NEXT: mul x10, x10, x11
28822883; CHECK-GI-NEXT: mul x8, x8, x9
2883- ; CHECK-GI-NEXT: mul x9, x10, x11
2884- ; CHECK-GI-NEXT: mov v0.d[0], x8
2885- ; CHECK-GI-NEXT: mov v0.d[1], x9
2884+ ; CHECK-GI-NEXT: fmov d0, x10
2885+ ; CHECK-GI-NEXT: mov v0.d[1], x8
28862886; CHECK-GI-NEXT: ret
28872887entry:
28882888 %4 = sext <2 x i32 > %src1 to <2 x i64 >
@@ -2909,14 +2909,14 @@ define <2 x i64> @udistribute_v2i32(<2 x i32> %src1, <2 x i32> %src2, <2 x i32>
29092909; CHECK-GI: // %bb.0: // %entry
29102910; CHECK-GI-NEXT: ushll v2.2d, v2.2s, #0
29112911; CHECK-GI-NEXT: uaddl v0.2d, v0.2s, v1.2s
2912- ; CHECK-GI-NEXT: fmov x8, d0
2913- ; CHECK-GI-NEXT: fmov x9, d2
2914- ; CHECK-GI-NEXT: mov x10, v0.d[1]
2915- ; CHECK-GI-NEXT: mov x11, v2.d[1]
2912+ ; CHECK-GI-NEXT: fmov x10, d0
2913+ ; CHECK-GI-NEXT: fmov x11, d2
2914+ ; CHECK-GI-NEXT: mov x8, v0.d[1]
2915+ ; CHECK-GI-NEXT: mov x9, v2.d[1]
2916+ ; CHECK-GI-NEXT: mul x10, x10, x11
29162917; CHECK-GI-NEXT: mul x8, x8, x9
2917- ; CHECK-GI-NEXT: mul x9, x10, x11
2918- ; CHECK-GI-NEXT: mov v0.d[0], x8
2919- ; CHECK-GI-NEXT: mov v0.d[1], x9
2918+ ; CHECK-GI-NEXT: fmov d0, x10
2919+ ; CHECK-GI-NEXT: mov v0.d[1], x8
29202920; CHECK-GI-NEXT: ret
29212921entry:
29222922 %4 = zext <2 x i32 > %src1 to <2 x i64 >
@@ -2948,14 +2948,14 @@ define <2 x i64> @udistribute_const1_v2i32(<2 x i32> %src1, <2 x i32> %mul) {
29482948; CHECK-GI-NEXT: ushll v1.2d, v1.2s, #0
29492949; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI104_0]
29502950; CHECK-GI-NEXT: uaddw v0.2d, v2.2d, v0.2s
2951- ; CHECK-GI-NEXT: fmov x9, d1
2952- ; CHECK-GI-NEXT: mov x11, v1.d[1]
2953- ; CHECK-GI-NEXT: fmov x8, d0
2954- ; CHECK-GI-NEXT: mov x10, v0.d[1]
2951+ ; CHECK-GI-NEXT: fmov x11, d1
2952+ ; CHECK-GI-NEXT: mov x9, v1.d[1]
2953+ ; CHECK-GI-NEXT: fmov x10, d0
2954+ ; CHECK-GI-NEXT: mov x8, v0.d[1]
2955+ ; CHECK-GI-NEXT: mul x10, x10, x11
29552956; CHECK-GI-NEXT: mul x8, x8, x9
2956- ; CHECK-GI-NEXT: mul x9, x10, x11
2957- ; CHECK-GI-NEXT: mov v0.d[0], x8
2958- ; CHECK-GI-NEXT: mov v0.d[1], x9
2957+ ; CHECK-GI-NEXT: fmov d0, x10
2958+ ; CHECK-GI-NEXT: mov v0.d[1], x8
29592959; CHECK-GI-NEXT: ret
29602960entry:
29612961 %4 = zext <2 x i32 > %src1 to <2 x i64 >
@@ -2985,14 +2985,14 @@ define <2 x i64> @udistribute_const2_v2i32(<2 x i32> %src1, <2 x i32> %src2) {
29852985; CHECK-GI-NEXT: adrp x8, .LCPI105_0
29862986; CHECK-GI-NEXT: uaddl v0.2d, v0.2s, v1.2s
29872987; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI105_0]
2988- ; CHECK-GI-NEXT: fmov x8, d0
2989- ; CHECK-GI-NEXT: fmov x9, d1
2990- ; CHECK-GI-NEXT: mov x10, v0.d[1]
2991- ; CHECK-GI-NEXT: mov x11, v1.d[1]
2988+ ; CHECK-GI-NEXT: fmov x10, d0
2989+ ; CHECK-GI-NEXT: fmov x11, d1
2990+ ; CHECK-GI-NEXT: mov x8, v0.d[1]
2991+ ; CHECK-GI-NEXT: mov x9, v1.d[1]
2992+ ; CHECK-GI-NEXT: mul x10, x10, x11
29922993; CHECK-GI-NEXT: mul x8, x8, x9
2993- ; CHECK-GI-NEXT: mul x9, x10, x11
2994- ; CHECK-GI-NEXT: mov v0.d[0], x8
2995- ; CHECK-GI-NEXT: mov v0.d[1], x9
2994+ ; CHECK-GI-NEXT: fmov d0, x10
2995+ ; CHECK-GI-NEXT: mov v0.d[1], x8
29962996; CHECK-GI-NEXT: ret
29972997entry:
29982998 %4 = zext <2 x i32 > %src1 to <2 x i64 >
0 commit comments