aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShuxin Yang <shuxin.llvm@gmail.com>2013-04-01 18:13:05 +0000
committerShuxin Yang <shuxin.llvm@gmail.com>2013-04-01 18:13:05 +0000
commitad26993e1a9b147c3ca4b170ab2eba260f89a1ac (patch)
treeb3d65702ef7fa712ed88ab6840977dc172e4521a
parentf28a29b776b7dc2b97d09c75d69494f862c216b3 (diff)
Correct assertion condition
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178484 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Transforms/Scalar/Reassociate.cpp2
-rw-r--r--test/Transforms/Reassociate/xor_reassoc.ll15
2 files changed, 16 insertions, 1 deletions
diff --git a/lib/Transforms/Scalar/Reassociate.cpp b/lib/Transforms/Scalar/Reassociate.cpp
index 493930b388..1f343136e5 100644
--- a/lib/Transforms/Scalar/Reassociate.cpp
+++ b/lib/Transforms/Scalar/Reassociate.cpp
@@ -199,7 +199,7 @@ namespace {
}
XorOpnd::XorOpnd(Value *V) {
- assert(!isa<Constant>(V) && "No constant");
+ assert(!isa<ConstantInt>(V) && "No ConstantInt");
OrigVal = V;
Instruction *I = dyn_cast<Instruction>(V);
SymbolicRank = 0;
diff --git a/test/Transforms/Reassociate/xor_reassoc.ll b/test/Transforms/Reassociate/xor_reassoc.ll
index 380eba562c..d371a9b5b6 100644
--- a/test/Transforms/Reassociate/xor_reassoc.ll
+++ b/test/Transforms/Reassociate/xor_reassoc.ll
@@ -149,3 +149,18 @@ define i32 @xor_ra_size2(i32 %x) {
;CHECK: %or1 = or i32 %x, 456
;CHECK: %xor = xor i32 %or, %or1
}
+
+
+; ==========================================================================
+;
+; Xor reassociation bugs
+;
+; ==========================================================================
+
+@xor_bug1_data = external global <{}>, align 4
+define void @xor_bug1() {
+ %1 = ptrtoint i32* undef to i64
+ %2 = xor i64 %1, ptrtoint (<{}>* @xor_bug1_data to i64)
+ %3 = and i64 undef, %2
+ ret void
+}