<div dir="ltr">LGTM.<div><br></div><div>-Eli</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Sep 27, 2013 at 3:46 PM, Matt Arsenault <span dir="ltr"><<a href="mailto:Matthew.Arsenault@amd.com" target="_blank">Matthew.Arsenault@amd.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><a href="http://llvm-reviews.chandlerc.com/D1777" target="_blank">http://llvm-reviews.chandlerc.com/D1777</a><br>
<br>
Files:<br>
  lib/Transforms/InstCombine/InstCombineCompares.cpp<br>
  test/Transforms/InstCombine/cast_ptr.ll<br>
<br>
Index: lib/Transforms/InstCombine/InstCombineCompares.cpp<br>
===================================================================<br>
--- lib/Transforms/InstCombine/InstCombineCompares.cpp<br>
+++ lib/Transforms/InstCombine/InstCombineCompares.cpp<br>
@@ -1786,7 +1786,7 @@<br>
   // Turn icmp (ptrtoint x), (ptrtoint/c) into a compare of the input if the<br>
   // integer type is the same size as the pointer type.<br>
   if (TD && LHSCI->getOpcode() == Instruction::PtrToInt &&<br>
-      TD->getPointerSizeInBits() == DestTy->getIntegerBitWidth()) {<br>
+      TD->getPointerTypeSizeInBits(SrcTy) == DestTy->getIntegerBitWidth()) {<br>
     Value *RHSOp = 0;<br>
     if (Constant *RHSC = dyn_cast<Constant>(ICI.getOperand(1))) {<br>
       RHSOp = ConstantExpr::getIntToPtr(RHSC, SrcTy);<br>
Index: test/Transforms/InstCombine/cast_ptr.ll<br>
===================================================================<br>
--- test/Transforms/InstCombine/cast_ptr.ll<br>
+++ test/Transforms/InstCombine/cast_ptr.ll<br>
@@ -27,6 +27,26 @@<br>
         ret i1 %r<br>
 }<br>
<br>
+; These casts should be folded away.<br>
+; CHECK-LABEL: @test2_as2_same_int(<br>
+; CHECK: icmp eq i8 addrspace(2)* %a, %b<br>
+define i1 @test2_as2_same_int(i8 addrspace(2)* %a, i8 addrspace(2)* %b) {<br>
+  %tmpa = ptrtoint i8 addrspace(2)* %a to i16<br>
+  %tmpb = ptrtoint i8 addrspace(2)* %b to i16<br>
+  %r = icmp eq i16 %tmpa, %tmpb<br>
+  ret i1 %r<br>
+}<br>
+<br>
+; These casts should be folded away.<br>
+; CHECK-LABEL: @test2_as2_larger(<br>
+; CHECK: icmp eq i8 addrspace(2)* %a, %b<br>
+define i1 @test2_as2_larger(i8 addrspace(2)* %a, i8 addrspace(2)* %b) {<br>
+  %tmpa = ptrtoint i8 addrspace(2)* %a to i32<br>
+  %tmpb = ptrtoint i8 addrspace(2)* %b to i32<br>
+  %r = icmp eq i32 %tmpa, %tmpb<br>
+  ret i1 %r<br>
+}<br>
+<br>
 ; These casts should also be folded away.<br>
 ; CHECK-LABEL: @test3(<br>
 ; CHECK: icmp eq i8* %a, @global<br>
<br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>