Mercurial > hg > CbC > CbC_llvm
diff test/Transforms/InstCombine/cast_ptr.ll @ 83:60c9769439b8 LLVM3.7
LLVM 3.7
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 18 Feb 2015 14:55:36 +0900 |
parents | 95c75e76d11b |
children | afa8332a0e37 |
line wrap: on
line diff
--- a/test/Transforms/InstCombine/cast_ptr.ll Mon Sep 08 22:07:30 2014 +0900 +++ b/test/Transforms/InstCombine/cast_ptr.ll Wed Feb 18 14:55:36 2015 +0900 @@ -3,6 +3,8 @@ target datalayout = "p:32:32-p1:32:32-p2:16:16" +@global = global i8 0 + ; This shouldn't convert to getelementptr because the relationship ; between the arithmetic and the layout of allocated memory is ; entirely unknown. @@ -47,10 +49,29 @@ ret i1 %r } +; These casts should not be folded away. +; CHECK-LABEL: @test2_diff_as +; CHECK: icmp sge i32 %i0, %i1 +define i1 @test2_diff_as(i8* %p, i8 addrspace(1)* %q) { + %i0 = ptrtoint i8* %p to i32 + %i1 = ptrtoint i8 addrspace(1)* %q to i32 + %r0 = icmp sge i32 %i0, %i1 + ret i1 %r0 +} + +; These casts should not be folded away. +; CHECK-LABEL: @test2_diff_as_global +; CHECK: icmp sge i32 %i1 +define i1 @test2_diff_as_global(i8 addrspace(1)* %q) { + %i0 = ptrtoint i8* @global to i32 + %i1 = ptrtoint i8 addrspace(1)* %q to i32 + %r0 = icmp sge i32 %i1, %i0 + ret i1 %r0 +} + ; These casts should also be folded away. ; CHECK-LABEL: @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)