Skip to content

Commit d04c736

Browse files
committed
[rebranch] Fix test/IRGen/async/class_resilience.swift on Windows
Less/no constant folding is happening.
1 parent db24179 commit d04c736

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

test/IRGen/async/class_resilience.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,13 @@ open class MyBaseClass<T> {
4343

4444
// CHECK-LABEL: define {{(dllexport )?}}{{(protected )?}}swift{{(tail)?}}cc void @"$s16class_resilience14callsAwaitableyx010resilient_A09BaseClassCyxGYalF"(ptr noalias %0, ptr swiftasync %1{{.*}})
4545
// CHECK-DIRECT: ptr @"$s15resilient_class9BaseClassC4waitxyYaFTjTu"
46-
// CHECK-INDIRECT: [[LOAD:%[0-9]+]] = load ptr, ptr inttoptr (i64 and (i64 add (i64 ptrtoint (ptr @"\01__imp_$s15resilient_class9BaseClassC4waitxyYaFTjTu" to i64), i64 1), i64 -2) to ptr), align {{4|8}}
47-
// CHECK-INDIRECT-NEXT: select i1 icmp eq (i64 and (i64 add (i64 ptrtoint (ptr @"\01__imp_$s15resilient_class9BaseClassC4waitxyYaFTjTu" to i64), i64 1), i64 1), i64 0),
48-
// CHECK-INDIRECT-SAME: ptr inttoptr (i64 add (i64 ptrtoint (ptr @"\01__imp_$s15resilient_class9BaseClassC4waitxyYaFTjTu" to i64), i64 1) to ptr),
49-
// CHECK-INDIRECT-SAME: ptr [[LOAD]]
46+
47+
// CHECK-INDIRECT:[[T0:%.*]] = and i64 add (i64 ptrtoint (ptr @"\01__imp_$s15resilient_class9BaseClassC4waitxyYaFTjTu" to i64), i64 1), 1
48+
// CHECK-INDIRECT:[[T1:%.*]] = icmp eq i64 [[T0]], 0
49+
// CHECK-INDIRECT:[[T2:%.*]] = and i64 add (i64 ptrtoint (ptr @"\01__imp_$s15resilient_class9BaseClassC4waitxyYaFTjTu" to i64), i64 1), -2
50+
// CHECK-INDIRECT:[[T3:%.*]] = inttoptr i64 [[T2]] to ptr
51+
// CHECK-INDIRECT:[[T4:%.*]] = load ptr, ptr [[T3]]
52+
// CHECK-INDIRECT:[[T5:%.*]] = select i1 [[T1]], ptr inttoptr (i64 add (i64 ptrtoint (ptr @"\01__imp_$s15resilient_class9BaseClassC4waitxyYaFTjTu" to i64), i64 1) to ptr), ptr [[T4]]
5053
// CHECK: ret void
5154
public func callsAwaitable<T>(_ c: BaseClass<T>) async -> T {
5255
return await c.wait()

0 commit comments

Comments
 (0)