@@ -2265,68 +2265,25 @@ define <2 x i64> @lsr_const(<2 x i64> %a, <2 x i64> %b) {
22652265}
22662266
22672267define <2 x i64 > @asr (<2 x i64 > %a , <2 x i64 > %b ) {
2268- ; CHECK-NEON-LABEL: asr:
2269- ; CHECK-NEON: // %bb.0:
2270- ; CHECK-NEON-NEXT: shrn v0.2s, v0.2d, #32
2271- ; CHECK-NEON-NEXT: shrn v1.2s, v1.2d, #32
2272- ; CHECK-NEON-NEXT: smull v0.2d, v0.2s, v1.2s
2273- ; CHECK-NEON-NEXT: ret
2274- ;
2275- ; CHECK-SVE-LABEL: asr:
2276- ; CHECK-SVE: // %bb.0:
2277- ; CHECK-SVE-NEXT: shrn v0.2s, v0.2d, #32
2278- ; CHECK-SVE-NEXT: shrn v1.2s, v1.2d, #32
2279- ; CHECK-SVE-NEXT: smull v0.2d, v0.2s, v1.2s
2280- ; CHECK-SVE-NEXT: ret
2281- ;
2282- ; CHECK-GI-LABEL: asr:
2283- ; CHECK-GI: // %bb.0:
2284- ; CHECK-GI-NEXT: sshr v0.2d, v0.2d, #32
2285- ; CHECK-GI-NEXT: sshr v1.2d, v1.2d, #32
2286- ; CHECK-GI-NEXT: fmov x8, d0
2287- ; CHECK-GI-NEXT: fmov x9, d1
2288- ; CHECK-GI-NEXT: mov x10, v0.d[1]
2289- ; CHECK-GI-NEXT: mov x11, v1.d[1]
2290- ; CHECK-GI-NEXT: mul x8, x8, x9
2291- ; CHECK-GI-NEXT: mul x9, x10, x11
2292- ; CHECK-GI-NEXT: mov v0.d[0], x8
2293- ; CHECK-GI-NEXT: mov v0.d[1], x9
2294- ; CHECK-GI-NEXT: ret
2268+ ; CHECK-LABEL: asr:
2269+ ; CHECK: // %bb.0:
2270+ ; CHECK-NEXT: shrn v0.2s, v0.2d, #32
2271+ ; CHECK-NEXT: shrn v1.2s, v1.2d, #32
2272+ ; CHECK-NEXT: smull v0.2d, v0.2s, v1.2s
2273+ ; CHECK-NEXT: ret
22952274 %x = ashr <2 x i64 > %a , <i64 32 , i64 32 >
22962275 %y = ashr <2 x i64 > %b , <i64 32 , i64 32 >
22972276 %z = mul nsw <2 x i64 > %x , %y
22982277 ret <2 x i64 > %z
22992278}
23002279
23012280define <2 x i64 > @asr_const (<2 x i64 > %a , <2 x i64 > %b ) {
2302- ; CHECK-NEON-LABEL: asr_const:
2303- ; CHECK-NEON: // %bb.0:
2304- ; CHECK-NEON-NEXT: movi v1.2s, #31
2305- ; CHECK-NEON-NEXT: shrn v0.2s, v0.2d, #32
2306- ; CHECK-NEON-NEXT: smull v0.2d, v0.2s, v1.2s
2307- ; CHECK-NEON-NEXT: ret
2308- ;
2309- ; CHECK-SVE-LABEL: asr_const:
2310- ; CHECK-SVE: // %bb.0:
2311- ; CHECK-SVE-NEXT: movi v1.2s, #31
2312- ; CHECK-SVE-NEXT: shrn v0.2s, v0.2d, #32
2313- ; CHECK-SVE-NEXT: smull v0.2d, v0.2s, v1.2s
2314- ; CHECK-SVE-NEXT: ret
2315- ;
2316- ; CHECK-GI-LABEL: asr_const:
2317- ; CHECK-GI: // %bb.0:
2318- ; CHECK-GI-NEXT: adrp x8, .LCPI81_0
2319- ; CHECK-GI-NEXT: sshr v0.2d, v0.2d, #32
2320- ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI81_0]
2321- ; CHECK-GI-NEXT: fmov x8, d0
2322- ; CHECK-GI-NEXT: fmov x9, d1
2323- ; CHECK-GI-NEXT: mov x10, v0.d[1]
2324- ; CHECK-GI-NEXT: mov x11, v1.d[1]
2325- ; CHECK-GI-NEXT: mul x8, x8, x9
2326- ; CHECK-GI-NEXT: mul x9, x10, x11
2327- ; CHECK-GI-NEXT: mov v0.d[0], x8
2328- ; CHECK-GI-NEXT: mov v0.d[1], x9
2329- ; CHECK-GI-NEXT: ret
2281+ ; CHECK-LABEL: asr_const:
2282+ ; CHECK: // %bb.0:
2283+ ; CHECK-NEXT: movi v1.2s, #31
2284+ ; CHECK-NEXT: shrn v0.2s, v0.2d, #32
2285+ ; CHECK-NEXT: smull v0.2d, v0.2s, v1.2s
2286+ ; CHECK-NEXT: ret
23302287 %x = ashr <2 x i64 > %a , <i64 32 , i64 32 >
23312288 %z = mul nsw <2 x i64 > %x , <i64 31 , i64 31 >
23322289 ret <2 x i64 > %z
0 commit comments