@@ -38,6 +38,8 @@ void t2(int param1, int param2, int param3) {
3838// CHECK-NEXT: [[TMP1:%.*]] = alloca i32, align 4
3939// CHECK-NEXT: [[TMP2:%.*]] = alloca i32, align 4
4040// CHECK-NEXT: store i32 [[TMP0:%.*]], ptr [[TMP1:%.*]], align 4
41+ // CHECK-NEXT: [[FREEZE1:%.+]] = freeze i32 poison
42+ // CHECK-NEXT: store i32 [[FREEZE1]], ptr [[TMP2]], align 4
4143// CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[TMP1:%.*]], align 4
4244// CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[TMP2:%.*]], align 4
4345// CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr [[TMP2:%.*]], align 4
@@ -56,6 +58,8 @@ void TestVariadicFunction(int x, ...) {
5658// CHECK: define{{.*}} void @other()
5759// CHECK-NEXT: entry:
5860// CHECK-NEXT: [[TMP1:%.*]] = alloca i32, align 4
61+ // CHECK-NEXT: [[FREEZE1:%.+]] = freeze i32 poison
62+ // CHECK-NEXT: store i32 [[FREEZE1]], ptr [[TMP1]], align 4
5963// CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[TMP1:%.*]], align 4
6064// CHECK-NEXT: call void @func(i32 noundef [[TMP2:%.*]])
6165// CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[TMP1:%.*]], align 4
@@ -96,6 +100,8 @@ void func1(int param) {}
96100// CHECK: define{{.*}} void @bar()
97101// CHECK-NEXT: entry:
98102// CHECK-NEXT: [[TMP1:%.*]] = alloca i32, align 4
103+ // CHECK-NEXT: [[FREEZE1:%.+]] = freeze i32 poison
104+ // CHECK-NEXT: store i32 [[FREEZE1]], ptr [[TMP1]], align 4
99105// CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[TMP1:%.*]], align 4
100106// CHECK-NEXT: call void @foo(i32 noundef [[TMP2:%.*]])
101107// CHECK-NEXT: ret void
0 commit comments