summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp2
-rw-r--r--llvm/test/CodeGen/X86/fold-vector-shl-crash.ll9
2 files changed, 1 insertions, 10 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
index 80a1b5b3be7..bc2e5f13d43 100644
--- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -4275,7 +4275,7 @@ SDValue DAGCombiner::visitSHL(SDNode *N) {
if (isNullConstant(N0))
return N0;
// fold (shl x, c >= size(x)) -> undef
- if (N1C && N1C->getAPIntValue().uge(OpSizeInBits))
+ if (N1C && N1C->getZExtValue() >= OpSizeInBits)
return DAG.getUNDEF(VT);
// fold (shl x, 0) -> x
if (N1C && N1C->isNullValue())
diff --git a/llvm/test/CodeGen/X86/fold-vector-shl-crash.ll b/llvm/test/CodeGen/X86/fold-vector-shl-crash.ll
deleted file mode 100644
index 9f81e44074f..00000000000
--- a/llvm/test/CodeGen/X86/fold-vector-shl-crash.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llc < %s -march=x86-64 | FileCheck %s
-; RUN: llc < %s -march=x86 | FileCheck %s
-
-;CHECK-LABEL: test
-define <2 x i256> @test() {
- %S = shufflevector <2 x i256> zeroinitializer, <2 x i256> <i256 -1, i256 -1>, <2 x i32> <i32 0, i32 2>
- %B = shl <2 x i256> %S, <i256 -1, i256 -1> ; DAG Combiner crashes here
- ret <2 x i256> %B
-}
OpenPOWER on IntegriCloud