[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