Change tests from "opt %s" to "opt < %s" so that opt doesn't see the
[llvm/avr.git] / test / Transforms / InstCombine / cast_ptr.ll
blob6544e7d735a44d1bef7b8cd57f4f32effc6cee0a
1 ; Tests to make sure elimination of casts is working correctly
2 ; RUN: opt < %s -instcombine -S | FileCheck %s
4 target datalayout = "p:32:32"
6 ; This shouldn't convert to getelementptr because the relationship
7 ; between the arithmetic and the layout of allocated memory is
8 ; entirely unknown.
9 ; CHECK: @test1
10 ; CHECK: ptrtoint
11 ; CHECK: add
12 ; CHECK: inttoptr
13 define i8* @test1(i8* %t) {
14         %tmpc = ptrtoint i8* %t to i32          ; <i32> [#uses=1]
15         %tmpa = add i32 %tmpc, 32               ; <i32> [#uses=1]
16         %tv = inttoptr i32 %tmpa to i8*         ; <i8*> [#uses=1]
17         ret i8* %tv
20 ; These casts should be folded away.
21 ; CHECK: @test2
22 ; CHECK: icmp eq i8* %a, %b
23 define i1 @test2(i8* %a, i8* %b) {
24         %tmpa = ptrtoint i8* %a to i32          ; <i32> [#uses=1]
25         %tmpb = ptrtoint i8* %b to i32          ; <i32> [#uses=1]
26         %r = icmp eq i32 %tmpa, %tmpb           ; <i1> [#uses=1]
27         ret i1 %r