blob: d3d21fcabee1c9858485f9c28827f5f8b8977994 [file] [log] [blame]
Dan Gohmanc1be92f2010-10-18 18:04:47 +00001; RUN: opt < %s -basicaa -argpromotion -mem2reg -S | not grep alloca
Kenneth Uildriksb908f8a2009-11-03 15:29:06 +00002target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
Tanya Lattnerec9a35a2008-03-01 09:15:35 +00003define internal i32 @test(i32* %X, i32* %Y) {
4 %A = load i32* %X ; <i32> [#uses=1]
5 %B = load i32* %Y ; <i32> [#uses=1]
6 %C = add i32 %A, %B ; <i32> [#uses=1]
7 ret i32 %C
Chris Lattnerb9f266a2004-03-07 21:28:54 +00008}
9
Tanya Lattnerec9a35a2008-03-01 09:15:35 +000010define internal i32 @caller(i32* %B) {
11 %A = alloca i32 ; <i32*> [#uses=2]
12 store i32 1, i32* %A
13 %C = call i32 @test( i32* %A, i32* %B ) ; <i32> [#uses=1]
14 ret i32 %C
Chris Lattnerb9f266a2004-03-07 21:28:54 +000015}
16
Tanya Lattnerec9a35a2008-03-01 09:15:35 +000017define i32 @callercaller() {
18 %B = alloca i32 ; <i32*> [#uses=2]
19 store i32 2, i32* %B
20 %X = call i32 @caller( i32* %B ) ; <i32> [#uses=1]
21 ret i32 %X
Chris Lattnerb9f266a2004-03-07 21:28:54 +000022}
Tanya Lattnerec9a35a2008-03-01 09:15:35 +000023