blob: d26823220ff85c405bfe4b77b75c35949429b41c [file] [log] [blame]
Tanya Lattner632e88a2008-02-21 07:42:26 +00001; RUN: llvm-as < %s | llc -march=x86 | \
Dan Gohman8c89a502007-08-15 13:36:28 +00002; RUN: grep {s\[ah\]\[rl\]l} | count 1
Dan Gohmanf17a25c2007-07-18 16:29:46 +00003
Tanya Lattner632e88a2008-02-21 07:42:26 +00004define i32* @test1(i32* %P, i32 %X) {
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
Dan Gohmanf17a25c2007-07-18 16:29:46 +00009}
10
Tanya Lattner632e88a2008-02-21 07:42:26 +000011define i32* @test2(i32* %P, i32 %X) {
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
Dan Gohmanf17a25c2007-07-18 16:29:46 +000016}
17
Tanya Lattner632e88a2008-02-21 07:42:26 +000018define i32* @test3(i32* %P, i32 %X) {
19 %Y = ashr i32 %X, 2 ; <i32> [#uses=1]
20 %P2 = getelementptr i32* %P, i32 %Y ; <i32*> [#uses=1]
21 ret i32* %P2
Dan Gohmanf17a25c2007-07-18 16:29:46 +000022}
Tanya Lattner632e88a2008-02-21 07:42:26 +000023