[llvm] 1ebe5ca - [DAG] SimplifyDemandedBits - add DemandedElts handling to ISD::SIGN_EXTEND_INREG simplification
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 19 07:35:44 PDT 2022
Author: Simon Pilgrim
Date: 2022-06-19T15:35:29+01:00
New Revision: 1ebe5cac46cdd2f93b62af5f41dc7b8626d48a6c
URL: https://github.com/llvm/llvm-project/commit/1ebe5cac46cdd2f93b62af5f41dc7b8626d48a6c
DIFF: https://github.com/llvm/llvm-project/commit/1ebe5cac46cdd2f93b62af5f41dc7b8626d48a6c.diff
LOG: [DAG] SimplifyDemandedBits - add DemandedElts handling to ISD::SIGN_EXTEND_INREG simplification
Added:
Modified:
llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
llvm/test/CodeGen/AArch64/dag-numsignbits.ll
llvm/test/CodeGen/X86/vsplit-and.ll
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index 2957976bcc240..20deb39885c1a 100644
--- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -2078,7 +2078,8 @@ bool TargetLowering::SimplifyDemandedBits(
// bit is demanded.
InputDemandedBits.setBit(ExVTBits - 1);
- if (SimplifyDemandedBits(Op0, InputDemandedBits, Known, TLO, Depth + 1))
+ if (SimplifyDemandedBits(Op0, InputDemandedBits, DemandedElts, Known, TLO,
+ Depth + 1))
return true;
assert(!Known.hasConflict() && "Bits known to be one AND zero?");
diff --git a/llvm/test/CodeGen/AArch64/dag-numsignbits.ll b/llvm/test/CodeGen/AArch64/dag-numsignbits.ll
index 3ac8a18772721..802df9d116049 100644
--- a/llvm/test/CodeGen/AArch64/dag-numsignbits.ll
+++ b/llvm/test/CodeGen/AArch64/dag-numsignbits.ll
@@ -13,13 +13,8 @@ define void @signbits_vXi1(<4 x i16> %a1) {
; CHECK-NEXT: mov w1, wzr
; CHECK-NEXT: mov w2, wzr
; CHECK-NEXT: ldr d1, [x8, :lo12:.LCPI0_0]
-; CHECK-NEXT: adrp x8, .LCPI0_1
; CHECK-NEXT: add v0.4h, v0.4h, v1.4h
-; CHECK-NEXT: ldr d1, [x8, :lo12:.LCPI0_1]
; CHECK-NEXT: cmgt v0.4h, v2.4h, v0.4h
-; CHECK-NEXT: and v0.8b, v0.8b, v1.8b
-; CHECK-NEXT: shl v0.4h, v0.4h, #15
-; CHECK-NEXT: cmlt v0.4h, v0.4h, #0
; CHECK-NEXT: umov w0, v0.h[0]
; CHECK-NEXT: umov w3, v0.h[3]
; CHECK-NEXT: b foo
diff --git a/llvm/test/CodeGen/X86/vsplit-and.ll b/llvm/test/CodeGen/X86/vsplit-and.ll
index e1a99d209acf9..2c623d960f283 100644
--- a/llvm/test/CodeGen/X86/vsplit-and.ll
+++ b/llvm/test/CodeGen/X86/vsplit-and.ll
@@ -41,7 +41,7 @@ define void @t2(<3 x i64>* %dst, <3 x i64> %src1, <3 x i64> %src2) nounwind read
; CHECK-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,2],xmm3[0,2]
; CHECK-NEXT: xorps %xmm0, %xmm1
; CHECK-NEXT: andnps %xmm1, %xmm2
-; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm2[2,2,3,3]
+; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm2[2,3,2,3]
; CHECK-NEXT: psllq $63, %xmm0
; CHECK-NEXT: psrad $31, %xmm0
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
More information about the llvm-commits
mailing list