John Bauman | 66b8ab2 | 2014-05-06 15:57:45 -0400 | [diff] [blame] | 1 | ; RUN: llc < %s -march=x86 | \
|
| 2 | ; RUN: grep {s\[ah\]\[rl\]l} | count 1
|
| 3 |
|
| 4 | define i32* @test1(i32* %P, i32 %X) nounwind {
|
| 5 | %Y = lshr i32 %X, 2 ; <i32> [#uses=1]
|
| 6 | %gep.upgrd.1 = zext i32 %Y to i64 ; <i64> [#uses=1]
|
| 7 | %P2 = getelementptr i32* %P, i64 %gep.upgrd.1 ; <i32*> [#uses=1]
|
| 8 | ret i32* %P2
|
| 9 | }
|
| 10 |
|
| 11 | define i32* @test2(i32* %P, i32 %X) nounwind {
|
| 12 | %Y = shl i32 %X, 2 ; <i32> [#uses=1]
|
| 13 | %gep.upgrd.2 = zext i32 %Y to i64 ; <i64> [#uses=1]
|
| 14 | %P2 = getelementptr i32* %P, i64 %gep.upgrd.2 ; <i32*> [#uses=1]
|
| 15 | ret i32* %P2
|
| 16 | }
|
| 17 |
|
| 18 | define i32* @test3(i32* %P, i32 %X) nounwind {
|
| 19 | %Y = ashr i32 %X, 2 ; <i32> [#uses=1]
|
| 20 | %P2 = getelementptr i32* %P, i32 %Y ; <i32*> [#uses=1]
|
| 21 | ret i32* %P2
|
| 22 | }
|
| 23 |
|
| 24 | define fastcc i32 @test4(i32* %d) nounwind {
|
| 25 | %tmp4 = load i32* %d
|
| 26 | %tmp512 = lshr i32 %tmp4, 24
|
| 27 | ret i32 %tmp512
|
| 28 | }
|