@@ -152,11 +152,31 @@ bb0:
152152 // CHECK: [[TMP:%.*]] = call swiftcc %swift.metadata_response @"$S18static_initializer16TestArrayStorageCMa"(i64 0)
153153 // CHECK: [[MD:%[0-9]+]] = extractvalue %swift.metadata_response [[TMP]], 0
154154 // CHECK: [[O:%[0-9a-z]+]] = call %swift.refcounted* @swift_initStaticObject(%swift.type* [[MD]], %swift.refcounted* getelementptr inbounds (%T18static_initializer16TestArrayStorageC_tailelems0c, %T18static_initializer16TestArrayStorageC_tailelems0c* @static_array, i32 0, i32 1, i32 0))
155- // CHECK: [[R:%[0-9]+]] = bitcast %swift.refcounted* [[O]] to %T18static_initializer16TestArrayStorageC_tailelems0*
156- // CHECK: [[R2:%[0-9]+]] = bitcast %T18static_initializer16TestArrayStorageC_tailelems0* [[R]] to %T18static_initializer16TestArrayStorageC*
157- // CHECK: ret %T18static_initializer16TestArrayStorageC* [[R2]]
155+ // CHECK: [[R:%[0-9]+]] = bitcast %swift.refcounted* [[O]] to %T18static_initializer16TestArrayStorageC*
156+ // CHECK: ret %T18static_initializer16TestArrayStorageC* [[R]]
158157 %0 = global_value @static_array : $TestArrayStorage
159158 %1 = struct $TestArray (%0 : $TestArrayStorage)
160159 return %1 : $TestArray
161160}
162161
162+ // CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc %T18static_initializer16TestArrayStorageC* @phi_nodes(i1, %T18static_initializer16TestArrayStorageC*)
163+ // CHECK: [[T0:%.*]] = call %swift.refcounted* @swift_initStaticObject
164+ // CHECK: [[T1:%.*]] = bitcast %swift.refcounted* [[T0]] to %T18static_initializer16TestArrayStorageC*
165+ // CHECK: br
166+ // CHECK: br
167+ // CHECK: [[T3:%.*]] = phi %T18static_initializer16TestArrayStorageC* [ %1, {{.*}} ], [ [[T1]], {{.*}} ]
168+ // CHECK: ret %T18static_initializer16TestArrayStorageC* [[T3]]
169+ sil @phi_nodes : $@convention(thin) (Builtin.Int1, TestArrayStorage) -> TestArrayStorage {
170+ bb0(%0 : $Builtin.Int1, %1 : $TestArrayStorage):
171+ cond_br %0, bb1, bb2
172+
173+ bb1:
174+ %2 = global_value @static_array : $TestArrayStorage
175+ br bb3(%2 : $TestArrayStorage)
176+
177+ bb2:
178+ br bb3(%1 : $TestArrayStorage)
179+
180+ bb3(%3 : $TestArrayStorage):
181+ return %3 : $TestArrayStorage
182+ }
0 commit comments