@@ -157,23 +157,23 @@ define void @partial_promotion_of_alloca() {
157157
158158define void @launder_in_loop () {
159159; CHECK-LABEL: @launder_in_loop(
160- ; CHECK-NEXT: br label %[[HEADER:.*]]
160+ ; CHECK-NEXT: br label [[HEADER:%.*]]
161+ ; CHECK: header:
162+ ; CHECK-NEXT: br i1 true, label [[BODY:%.*]], label [[EXIT:%.*]]
163+ ; CHECK: body:
164+ ; CHECK-NEXT: [[STRUCT:%.*]] = call [[T:%.*]] @[[MAKE_T:[a-zA-Z0-9_$\"\\.-]*[a-zA-Z_$\"\\.-][a-zA-Z0-9_$\"\\.-]*]]()
165+ ; CHECK-NEXT: [[STRUCT_FCA_0_EXTRACT:%.*]] = extractvalue [[T]] [[STRUCT]], 0
166+ ; CHECK-NEXT: [[STRUCT_FCA_1_EXTRACT:%.*]] = extractvalue [[T]] [[STRUCT]], 1
167+ ; CHECK-NEXT: br label [[HEADER]]
168+ ; CHECK: exit:
169+ ; CHECK-NEXT: ret void
161170;
162171 %struct_ptr = alloca %t , i64 1 , align 4
163172 br label %header
164173
165- ; CHECK: [[HEADER]]:
166- ; CHECK-NEXT: br i1 true, label %[[BODY:.*]], label %[[EXIT:.*]]
167- ;
168174header:
169175 br i1 true , label %body , label %exit
170176
171- ; CHECK: [[BODY]]:
172- ; CHECK-NEXT: [[STRUCT:%.*]] = call %t @make_t()
173- ; CHECK-NEXT: [[FIRST:%.*]] = extractvalue %t [[STRUCT]], 0
174- ; CHECK-NEXT: [[SECOND:%.*]] = extractvalue %t [[STRUCT]], 1
175- ; CHECK-NEXT: br label %[[HEADER]]
176- ;
177177body: ; preds = %6
178178 %struct_ptr_fresh = call ptr @llvm.launder.invariant.group.p0 (ptr %struct_ptr )
179179 %struct = call %t @make_t ()
@@ -184,9 +184,6 @@ body: ; preds = %6
184184 %second = load i32 , ptr %second_ptr , align 4
185185 br label %header
186186
187- ; CHECK: [[EXIT]]:
188- ; CHECK-NEXT: ret void
189- ;
190187exit:
191188 ret void
192189}
0 commit comments