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