mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-02 00:35:27 +00:00
Make the ptrtoint comparison simplification work if one side is a global.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91624 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
73ebbd8aac
commit
8e4b197e0b
@ -6452,7 +6452,7 @@ Instruction *InstCombiner::visitICmpInst(ICmpInst &I) {
|
||||
// if (X) ...
|
||||
// For generality, we handle any zero-extension of any operand comparison
|
||||
// with a constant or another cast from the same type.
|
||||
if (isa<ConstantInt>(Op1) || isa<CastInst>(Op1))
|
||||
if (isa<Constant>(Op1) || isa<CastInst>(Op1))
|
||||
if (Instruction *R = visitICmpInstWithCastAndCast(I))
|
||||
return R;
|
||||
}
|
||||
|
@ -27,3 +27,12 @@ define i1 @test2(i8* %a, i8* %b) {
|
||||
ret i1 %r
|
||||
}
|
||||
|
||||
; These casts should also be folded away.
|
||||
; CHECK: @test3
|
||||
; CHECK: icmp eq i8* %a, @global
|
||||
@global = global i8 0
|
||||
define i1 @test3(i8* %a) {
|
||||
%tmpa = ptrtoint i8* %a to i32
|
||||
%r = icmp eq i32 %tmpa, ptrtoint (i8* @global to i32)
|
||||
ret i1 %r
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user