@@ -21,10 +21,7 @@ define internal void @vfu1(ptr byval(%struct.MYstr) align 4 %u) nounwind {
2121; CHECK-NEXT: [[U_PRIV_B4:%.*]] = getelementptr i8, ptr [[U_PRIV]], i64 4
2222; CHECK-NEXT: store i32 [[TMP1]], ptr [[U_PRIV_B4]], align 4
2323; CHECK-NEXT: [[TMP2:%.*]] = getelementptr [[STRUCT_MYSTR]], ptr [[U_PRIV]], i32 0, i32 1
24- ; CHECK-NEXT: store i32 99, ptr [[TMP2]], align 4
25- ; CHECK-NEXT: store i8 97, ptr [[U_PRIV]], align 8
26- ; CHECK-NEXT: [[L:%.*]] = load i8, ptr [[U_PRIV]], align 8
27- ; CHECK-NEXT: call void @use(i8 [[L]])
24+ ; CHECK-NEXT: call void @use(i8 noundef 97)
2825; CHECK-NEXT: br label [[RETURN:%.*]]
2926; CHECK: return:
3027; CHECK-NEXT: ret void
@@ -74,12 +71,12 @@ define i32 @unions() nounwind {
7471; TUNIT-SAME: () #[[ATTR2:[0-9]+]] {
7572; TUNIT-NEXT: entry:
7673; TUNIT-NEXT: [[TMP0:%.*]] = load i8, ptr @mystr, align 8
77- ; TUNIT-NEXT: [[MYSTR_B41 :%.*]] = getelementptr i8, ptr @mystr, i64 4
78- ; TUNIT-NEXT: [[TMP1:%.*]] = load i32, ptr [[MYSTR_B41 ]], align 8
74+ ; TUNIT-NEXT: [[MYSTR_B4 :%.*]] = getelementptr i8, ptr @mystr, i64 4
75+ ; TUNIT-NEXT: [[TMP1:%.*]] = load i32, ptr [[MYSTR_B4 ]], align 8
7976; TUNIT-NEXT: call void @vfu1(i8 [[TMP0]], i32 [[TMP1]]) #[[ATTR2]]
8077; TUNIT-NEXT: [[TMP2:%.*]] = load i8, ptr @mystr, align 8
81- ; TUNIT-NEXT: [[MYSTR_B4 :%.*]] = getelementptr i8, ptr @mystr, i64 4
82- ; TUNIT-NEXT: [[TMP3:%.*]] = load i32, ptr [[MYSTR_B4 ]], align 8
78+ ; TUNIT-NEXT: [[MYSTR_B41 :%.*]] = getelementptr i8, ptr @mystr, i64 4
79+ ; TUNIT-NEXT: [[TMP3:%.*]] = load i32, ptr [[MYSTR_B41 ]], align 8
8380; TUNIT-NEXT: [[RESULT:%.*]] = call i32 @vfu2(i8 [[TMP2]], i32 [[TMP3]]) #[[ATTR3:[0-9]+]]
8481; TUNIT-NEXT: ret i32 [[RESULT]]
8582;
@@ -113,13 +110,10 @@ define internal i32 @vfu2_v2(ptr byval(%struct.MYstr) align 4 %u) nounwind reado
113110; CHECK-NEXT: [[U_PRIV_B4:%.*]] = getelementptr i8, ptr [[U_PRIV]], i64 4
114111; CHECK-NEXT: store i32 [[TMP1]], ptr [[U_PRIV_B4]], align 4
115112; CHECK-NEXT: [[Z:%.*]] = getelementptr [[STRUCT_MYSTR]], ptr [[U_PRIV]], i32 0, i32 1
116- ; CHECK-NEXT: store i32 99, ptr [[Z]], align 4
117- ; CHECK-NEXT: [[TMP2:%.*]] = getelementptr [[STRUCT_MYSTR]], ptr [[U_PRIV]], i32 0, i32 1
118- ; CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[TMP2]], align 4
119- ; CHECK-NEXT: [[TMP4:%.*]] = load i8, ptr [[U_PRIV]], align 8
120- ; CHECK-NEXT: [[TMP5:%.*]] = zext i8 [[TMP4]] to i32
121- ; CHECK-NEXT: [[TMP6:%.*]] = add i32 [[TMP5]], [[TMP3]]
122- ; CHECK-NEXT: ret i32 [[TMP6]]
113+ ; CHECK-NEXT: [[TMP2:%.*]] = load i8, ptr [[U_PRIV]], align 8
114+ ; CHECK-NEXT: [[TMP3:%.*]] = zext i8 [[TMP2]] to i32
115+ ; CHECK-NEXT: [[TMP4:%.*]] = add i32 [[TMP3]], 99
116+ ; CHECK-NEXT: ret i32 [[TMP4]]
123117;
124118entry:
125119 %z = getelementptr %struct.MYstr , ptr %u , i32 0 , i32 1
@@ -139,12 +133,12 @@ define i32 @unions_v2() nounwind {
139133; TUNIT-SAME: () #[[ATTR2]] {
140134; TUNIT-NEXT: entry:
141135; TUNIT-NEXT: [[TMP0:%.*]] = load i8, ptr @mystr, align 8
142- ; TUNIT-NEXT: [[MYSTR_B41 :%.*]] = getelementptr i8, ptr @mystr, i64 4
143- ; TUNIT-NEXT: [[TMP1:%.*]] = load i32, ptr [[MYSTR_B41 ]], align 8
136+ ; TUNIT-NEXT: [[MYSTR_B4 :%.*]] = getelementptr i8, ptr @mystr, i64 4
137+ ; TUNIT-NEXT: [[TMP1:%.*]] = load i32, ptr [[MYSTR_B4 ]], align 8
144138; TUNIT-NEXT: call void @vfu1(i8 [[TMP0]], i32 [[TMP1]]) #[[ATTR2]]
145139; TUNIT-NEXT: [[TMP2:%.*]] = load i8, ptr @mystr, align 8
146- ; TUNIT-NEXT: [[MYSTR_B4 :%.*]] = getelementptr i8, ptr @mystr, i64 4
147- ; TUNIT-NEXT: [[TMP3:%.*]] = load i32, ptr [[MYSTR_B4 ]], align 8
140+ ; TUNIT-NEXT: [[MYSTR_B41 :%.*]] = getelementptr i8, ptr @mystr, i64 4
141+ ; TUNIT-NEXT: [[TMP3:%.*]] = load i32, ptr [[MYSTR_B41 ]], align 8
148142; TUNIT-NEXT: [[RESULT:%.*]] = call i32 @vfu2_v2(i8 [[TMP2]], i32 [[TMP3]]) #[[ATTR3]]
149143; TUNIT-NEXT: ret i32 [[RESULT]]
150144;
0 commit comments