[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / Analysis / TypeBasedAliasAnalysis / argument-promotion.ll
bloba9932ef6141e7562675166ce6e9e8e446120ad91
1 ; RUN: opt < %s -passes=argpromotion,mem2reg -S | FileCheck %s
3 target datalayout = "E-p:64:64:64"
5 ; CHECK: test
6 ; CHECK-NOT: alloca
7 define internal i32 @test(ptr %X, ptr %Y, ptr %Q) {
8   store i32 77, ptr %Q, !tbaa !2
9   %A = load i32, ptr %X, !tbaa !1
10   %B = load i32, ptr %Y, !tbaa !1
11   %C = add i32 %A, %B
12   ret i32 %C
15 ; CHECK: caller
16 ; CHECK-NOT: alloca
17 define internal i32 @caller(ptr %B, ptr %Q) {
18   %A = alloca i32
19   store i32 78, ptr %Q, !tbaa !2
20   store i32 1, ptr %A, !tbaa !1
21   %C = call i32 @test(ptr %A, ptr %B, ptr %Q)
22   ret i32 %C
25 ; CHECK: callercaller
26 ; CHECK-NOT: alloca
27 define i32 @callercaller(ptr %Q) {
28   %B = alloca i32
29   store i32 2, ptr %B, !tbaa !1
30   store i32 79, ptr %Q, !tbaa !2
31   %X = call i32 @caller(ptr %B, ptr %Q)
32   ret i32 %X
35 !0 = !{!"test"}
36 !1 = !{!3, !3, i64 0}
37 !2 = !{!4, !4, i64 0}
38 !3 = !{!"green", !0}
39 !4 = !{!"blue", !0}