Correct assertion condition

llvm-svn: 178484
This commit is contained in:
Shuxin Yang 2013-04-01 18:13:05 +00:00
parent 6752366ed7
commit 6662fd0f15
2 changed files with 16 additions and 1 deletions

View File

@ -199,7 +199,7 @@ namespace {
} }
XorOpnd::XorOpnd(Value *V) { XorOpnd::XorOpnd(Value *V) {
assert(!isa<Constant>(V) && "No constant"); assert(!isa<ConstantInt>(V) && "No ConstantInt");
OrigVal = V; OrigVal = V;
Instruction *I = dyn_cast<Instruction>(V); Instruction *I = dyn_cast<Instruction>(V);
SymbolicRank = 0; SymbolicRank = 0;

View File

@ -149,3 +149,18 @@ define i32 @xor_ra_size2(i32 %x) {
;CHECK: %or1 = or i32 %x, 456 ;CHECK: %or1 = or i32 %x, 456
;CHECK: %xor = xor i32 %or, %or1 ;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
}