[llvm-branch-commits] [llvm] DAG: Skip poison elements in BUILD_VECTOR computeKnownBits (PR #213326)

Simon Pilgrim via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Aug 10 03:51:07 PDT 2026


================
@@ -536,34 +537,36 @@ define <5 x i64> @test_v5i64(<5 x i64> %x, <5 x i64> %y, <5 x i64> %z) {
 ; AVXIFMA-NEXT:    vmovq %rsi, %xmm2
 ; AVXIFMA-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
 ; AVXIFMA-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0
-; AVXIFMA-NEXT:    vmovdqu {{[0-9]+}}(%rsp), %ymm1
-; AVXIFMA-NEXT:    vpbroadcastq {{.*#+}} ymm2 = [67108863,67108863,67108863,67108863]
-; AVXIFMA-NEXT:    vpand %ymm2, %ymm0, %ymm0
+; AVXIFMA-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
+; AVXIFMA-NEXT:    vmovq %r9, %xmm2
+; AVXIFMA-NEXT:    vmovdqu {{[0-9]+}}(%rsp), %ymm3
+; AVXIFMA-NEXT:    vpbroadcastq {{.*#+}} ymm4 = [67108863,67108863,67108863,67108863]
+; AVXIFMA-NEXT:    vpand %ymm4, %ymm0, %ymm0
 ; AVXIFMA-NEXT:    movl $67108863, %ecx # imm = 0x3FFFFFF
-; AVXIFMA-NEXT:    vmovq %rcx, %xmm2
-; AVXIFMA-NEXT:    vmovq %r9, %xmm3
-; AVXIFMA-NEXT:    vpand %xmm2, %xmm3, %xmm2
-; AVXIFMA-NEXT:    vpmuludq %xmm2, %xmm2, %xmm2
-; AVXIFMA-NEXT:    {vex} vpmadd52luq %ymm0, %ymm0, %ymm1
-; AVXIFMA-NEXT:    vmovq %xmm2, %rcx
-; AVXIFMA-NEXT:    addq {{[0-9]+}}(%rsp), %rcx
-; AVXIFMA-NEXT:    movq %rcx, 32(%rdi)
-; AVXIFMA-NEXT:    vmovdqa %ymm1, (%rdi)
+; AVXIFMA-NEXT:    vmovq %rcx, %xmm4
+; AVXIFMA-NEXT:    vpand %xmm4, %xmm2, %xmm2
+; AVXIFMA-NEXT:    {vex} vpmadd52luq %ymm0, %ymm0, %ymm3
+; AVXIFMA-NEXT:    {vex} vpmadd52luq %ymm2, %ymm2, %ymm1
+; AVXIFMA-NEXT:    vmovq %xmm1, 32(%rdi)
+; AVXIFMA-NEXT:    vmovdqa %ymm3, (%rdi)
 ; AVXIFMA-NEXT:    vzeroupper
 ; AVXIFMA-NEXT:    retq
 ;
 ; AVX512-LABEL: test_v5i64:
 ; AVX512:       # %bb.0:
 ; AVX512-NEXT:    vpandq {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %zmm0, %zmm0
-; AVX512-NEXT:    vpmuludq %zmm0, %zmm0, %zmm0
-; AVX512-NEXT:    vpaddq %zmm2, %zmm0, %zmm0
+; AVX512-NEXT:    vpmadd52luq %zmm0, %zmm0, %zmm2
+; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm0
 ; AVX512-NEXT:    retq
 ;
 ; AVX512-NOIFMA-LABEL: test_v5i64:
 ; AVX512-NOIFMA:       # %bb.0:
 ; AVX512-NOIFMA-NEXT:    vpandq {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %zmm0, %zmm0
-; AVX512-NOIFMA-NEXT:    vpmuludq %zmm0, %zmm0, %zmm0
-; AVX512-NOIFMA-NEXT:    vpaddq %zmm2, %zmm0, %zmm0
+; AVX512-NOIFMA-NEXT:    vextracti64x4 $1, %zmm2, %ymm1
+; AVX512-NOIFMA-NEXT:    vextracti64x4 $1, %zmm0, %ymm3
+; AVX512-NOIFMA-NEXT:    {vex} vpmadd52luq %ymm3, %ymm3, %ymm1
+; AVX512-NOIFMA-NEXT:    {vex} vpmadd52luq %ymm0, %ymm0, %ymm2
+; AVX512-NOIFMA-NEXT:    vinserti64x4 $1, %ymm1, %zmm2, %zmm0
----------------
RKSimon wrote:

I'll handle this regression in a followup

https://github.com/llvm/llvm-project/pull/213326


More information about the llvm-branch-commits mailing list