blob: 89888bbc98a72d68f60478546779a4245c1d66a7 [file] [log] [blame]
Reid Klecknercdb4e642014-06-30 20:44:28 +00001; RUN: opt < %s -basicaa -argpromotion -mem2reg -S | FileCheck %s
Kenneth Uildriks90fedc62009-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"
Reid Klecknercdb4e642014-06-30 20:44:28 +00003
Tanya Lattner5640bd12008-03-01 09:15:35 +00004define internal i32 @test(i32* %X, i32* %Y) {
Reid Klecknercdb4e642014-06-30 20:44:28 +00005; CHECK-LABEL: define internal i32 @test(i32 %X.val, i32 %Y.val)
David Blaikiea79ac142015-02-27 21:17:42 +00006 %A = load i32, i32* %X
7 %B = load i32, i32* %Y
Reid Klecknercdb4e642014-06-30 20:44:28 +00008 %C = add i32 %A, %B
9 ret i32 %C
Chris Lattnerf2b86922004-03-07 21:28:54 +000010}
11
Tanya Lattner5640bd12008-03-01 09:15:35 +000012define internal i32 @caller(i32* %B) {
Reid Klecknercdb4e642014-06-30 20:44:28 +000013; CHECK-LABEL: define internal i32 @caller(i32 %B.val1)
14 %A = alloca i32
15 store i32 1, i32* %A
16 %C = call i32 @test(i32* %A, i32* %B)
17; CHECK: call i32 @test(i32 1, i32 %B.val1)
18 ret i32 %C
Chris Lattnerf2b86922004-03-07 21:28:54 +000019}
20
Tanya Lattner5640bd12008-03-01 09:15:35 +000021define i32 @callercaller() {
Reid Klecknercdb4e642014-06-30 20:44:28 +000022; CHECK-LABEL: define i32 @callercaller()
23 %B = alloca i32
24 store i32 2, i32* %B
25 %X = call i32 @caller(i32* %B)
26; CHECK: call i32 @caller(i32 2)
27 ret i32 %X
Chris Lattnerf2b86922004-03-07 21:28:54 +000028}
Tanya Lattner5640bd12008-03-01 09:15:35 +000029