@@ -12,9 +12,8 @@ extern "C" float expf(float);
12
12
// CHECK-NEXT: [[ENTRY:.*:]]
13
13
// CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i8, ptr [[NUM]], i64 40
14
14
// CHECK-NEXT: [[TMP0:%.*]] = load float, ptr [[ARRAYIDX]], align 4, !tbaa [[TBAA2:![0-9]+]]
15
- // CHECK-NEXT: [[CALL:%.*]] = tail call float @expf(float noundef [[TMP0]]) #[[ATTR2:[0-9]+]]
16
- // CHECK-NEXT: [[TMP1:%.*]] = load float, ptr [[ARRAYIDX]], align 4, !tbaa [[TBAA2]]
17
- // CHECK-NEXT: [[MUL:%.*]] = fmul float [[CALL]], [[TMP1]]
15
+ // CHECK-NEXT: [[CALL:%.*]] = tail call float @expf(float noundef [[TMP0]]) #[[ATTR2:[0-9]+]], !tbaa [[TBAA6:![0-9]+]]
16
+ // CHECK-NEXT: [[MUL:%.*]] = fmul float [[TMP0]], [[CALL]]
18
17
// CHECK-NEXT: ret float [[MUL]]
19
18
//
20
19
extern " C" float foo (float num[], float r2inv, int n) {
@@ -27,11 +26,15 @@ extern "C" float foo (float num[], float r2inv, int n) {
27
26
// NoNewStructPathTBAA: [[META3]] = !{!"float", [[META4:![0-9]+]], i64 0}
28
27
// NoNewStructPathTBAA: [[META4]] = !{!"omnipotent char", [[META5:![0-9]+]], i64 0}
29
28
// NoNewStructPathTBAA: [[META5]] = !{!"Simple C++ TBAA"}
29
+ // NoNewStructPathTBAA: [[TBAA6]] = !{[[META7:![0-9]+]], [[META7]], i64 0}
30
+ // NoNewStructPathTBAA: [[META7]] = !{!"int", [[META4]], i64 0}
30
31
// .
31
32
// NewStructPathTBAA: [[TBAA2]] = !{[[META3:![0-9]+]], [[META3]], i64 0, i64 4}
32
33
// NewStructPathTBAA: [[META3]] = !{[[META4:![0-9]+]], i64 4, !"float"}
33
34
// NewStructPathTBAA: [[META4]] = !{[[META5:![0-9]+]], i64 1, !"omnipotent char"}
34
35
// NewStructPathTBAA: [[META5]] = !{!"Simple C++ TBAA"}
36
+ // NewStructPathTBAA: [[TBAA6]] = !{[[META7:![0-9]+]], [[META7]], i64 0, i64 4}
37
+ // NewStructPathTBAA: [[META7]] = !{[[META4]], i64 4, !"int"}
35
38
// .
36
39
// // NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
37
40
// NewStructPathTBAA: {{.*}}
0 commit comments