|
1 |
| -// RUN: %target-swift-frontend -enable-experimental-concurrency -enable-objc-interop -primary-file %s -emit-ir -sil-verify-all -disable-llvm-optzns -disable-swift-specific-llvm-optzns | %FileCheck %s |
| 1 | +// RUN: %target-swift-frontend -enable-experimental-concurrency -enable-objc-interop -primary-file %s -emit-ir -sil-verify-all -disable-llvm-optzns -disable-swift-specific-llvm-optzns | %FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-%target-cpu |
2 | 2 | // RUN: %target-swift-frontend -enable-experimental-concurrency -enable-objc-interop -primary-file %s -emit-ir -sil-verify-all
|
3 | 3 |
|
4 | 4 | // REQUIRES: concurrency
|
|
41 | 41 | // CHECK: [[continuation_fn:%.*]] = call i8* @llvm.coro.async.resume()
|
42 | 42 | // CHECK: store i8* [[continuation_fn]], i8** [[task_continuation_fn_addr]]
|
43 | 43 | // CHECK: [[task_resume_context_addr:%.*]] = getelementptr inbounds %swift.task, %swift.task* [[tsk]], i32 0, i32 5
|
44 |
| -// CHECK: [[cont_context2:%.*]] = bitcast %swift.async_continuation_context* [[cont_context]] to %swift.context* |
45 |
| -// CHECK: store %swift.context* [[cont_context2]], %swift.context** [[task_resume_context_addr]] |
| 44 | +// CHECK: [[task_resume_context:%.*]] = bitcast %swift.async_continuation_context* [[cont_context]] to %swift.context* |
| 45 | + |
| 46 | +// CHECK-arm64e: [[task_resume_context_addr_int:%[0-9]+]] = ptrtoint %swift.context** [[task_resume_context_addr]] to i64 |
| 47 | +// CHECK-arm64e: [[ptrauth_blend:%[0-9]+]] = call i64 @llvm.ptrauth.blend.i64(i64 [[task_resume_context_addr_int]], i64 30010) |
| 48 | +// CHECK-arm64e: [[task_resume_context_int:%[0-9]+]] = ptrtoint %swift.context* [[task_resume_context]] to i64 |
| 49 | +// CHECK-arm64e: [[signed_int:%[0-9]+]] = call i64 @llvm.ptrauth.sign.i64(i64 [[task_resume_context_int]], i32 2, i64 [[ptrauth_blend]]) |
| 50 | +// CHECK-arm64e: [[signed_task_resume_context:%[0-9]+]] = inttoptr i64 [[signed_int]] to %swift.context* |
| 51 | +// CHECK-arm64e: store %swift.context* [[signed_task_resume_context]], %swift.context** [[task_resume_context_addr]] |
| 52 | +// CHECK-x86_64: store %swift.context* [[task_resume_context]], %swift.context** [[task_resume_context_addr]] |
| 53 | + |
46 | 54 | // Initialize the synchronization variable.
|
47 | 55 | // CHECK: [[synchronization_addr:%.*]] = getelementptr inbounds %swift.async_continuation_context, %swift.async_continuation_context* [[cont_context]], i32 0, i32 1
|
48 | 56 | // CHECK: store atomic {{(i64|i32)}} 0, {{(i64|i32)}}* [[synchronization_addr]] release
|
|
0 commit comments