[X86][AVX10.2] Fix unexpected larger scope (#130767) · llvm/llvm-project@0fda7e6 (original) (raw)

2 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -6121,8 +6121,9 @@ let Predicates = [HasAVX, NoAVX10_2] in {
6121 6121 v8i16, VR128, load, i128mem, 0,
6122 6122 SchedWriteMPSAD.XMM>, VEX, VVVV, WIG;
6123 6123 }
6124 +}
6124 6125
6125 -let Uses = [MXCSR], mayRaiseFPException = 1 in {
6126 +let Predicates = [HasAVX], Uses = [MXCSR], mayRaiseFPException = 1 in {
6126 6127 let ExeDomain = SSEPackedSingle in
6127 6128 defm VDPPS : SS41I_binop_rmi_int<0x40, "vdpps", int_x86_sse41_dpps,
6128 6129 VR128, load, f128mem, 0,
@@ -6136,7 +6137,6 @@ let Uses = [MXCSR], mayRaiseFPException = 1 in {
6136 6137 VR256, load, i256mem, 0,
6137 6138 SchedWriteDPPS.YMM>, VEX, VVVV, VEX_L, WIG;
6138 6139 }
6139 -}
6140 6140
6141 6141 let Predicates = [HasAVX2, NoAVX10_2] in {
6142 6142 let isCommutable = 0 in {
Original file line number Diff line number Diff line change
@@ -422,3 +422,14 @@ define { <32 x i16>, <32 x i16>, <32 x i16> } @test_mm512_mask_mpsadbw(<64 x i8>
422 422 }
423 423
424 424 declare <32 x i16> @llvm.x86.avx10.vmpsadbw.512(<64 x i8>, <64 x i8>, i8)
425 +
426 +; Regression test
427 +
428 +define <8 x float> @avx_dp_ps(<8 x float> %a, <8 x float> %b) {
429 +; CHECK-LABEL: avx_dp_ps:
430 +; CHECK: # %bb.0:
431 +; CHECK-NEXT: vdpps $255, %ymm1, %ymm0, %ymm0 # encoding: [0xc4,0xe3,0x7d,0x40,0xc1,0xff]
432 +; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
433 +%r = tail call <8 x float> @llvm.x86.avx.dp.ps.256(<8 x float> %a, <8 x float> %b, i8 -1)
434 +ret <8 x float> %r
435 +}