Chris Lattner | 3a8b0c7 | 2007-03-05 00:01:38 +0000 | [diff] [blame] | 1 | ; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \ |
| 2 | ; RUN: grep -v OK | not grep add |
| 3 | |
Chris Lattner | 2940c5c | 2008-01-08 07:23:51 +0000 | [diff] [blame] | 4 | ;; Target triple for gep raising case below. |
| 5 | target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" |
| 6 | target triple = "i686-apple-darwin8" |
| 7 | |
Chris Lattner | 3a8b0c7 | 2007-03-05 00:01:38 +0000 | [diff] [blame] | 8 | define i64 @test1(i64 %A, i32 %B) { |
| 9 | %tmp12 = zext i32 %B to i64 |
| 10 | %tmp3 = shl i64 %tmp12, 32 |
| 11 | %tmp5 = add i64 %tmp3, %A |
| 12 | %tmp6 = and i64 %tmp5, 123 |
| 13 | ret i64 %tmp6 |
| 14 | } |
| 15 | |
Chris Lattner | 2940c5c | 2008-01-08 07:23:51 +0000 | [diff] [blame] | 16 | ; PR1795 |
| 17 | define void @test2(i32 %.val24) { |
| 18 | EntryBlock: |
| 19 | add i32 %.val24, -12 |
| 20 | inttoptr i32 %0 to i32* |
| 21 | store i32 1, i32* %1 |
| 22 | add i32 %.val24, -16 |
| 23 | inttoptr i32 %2 to i32* |
| 24 | getelementptr i32* %3, i32 1 |
| 25 | load i32* %4 |
| 26 | tail call i32 @callee( i32 %5 ) |
| 27 | ret void |
| 28 | } |
| 29 | |
| 30 | declare i32 @callee(i32) |
| 31 | |