@@ -12,9 +12,9 @@ struct HugeAlignment {
12
12
}
13
13
14
14
// TODO: could be the context param
15
- // CHECK-LABEL-64 : define{{( protected)?}} swiftcc void @huge_method(%T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}))
16
- // CHECK-LABEL-32: define{{( protected)?}} swiftcc void @huge_method(%T17indirect_argument4HugeV* noalias nocapture swiftself dereferenceable({{.*}}))
17
- // CHECK: call swiftcc void @huge_method(%T17indirect_argument4HugeV* noalias nocapture swiftself dereferenceable({{.*}})
15
+ // CHECK-LABEL: define{{( protected)?}} swiftcc void @huge_method(%T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}))
16
+ // CHECK: [[TMP:%.*]] = alloca
17
+ // CHECK: call swiftcc void @huge_method(%T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}) [[TMP]] )
18
18
sil @huge_method : $@convention(method) Huge -> () {
19
19
entry(%x : $Huge):
20
20
%f = function_ref @huge_method : $@convention(method) Huge -> ()
@@ -23,7 +23,8 @@ entry(%x : $Huge):
23
23
}
24
24
25
25
// CHECK-LABEL: define{{( protected)?}} swiftcc void @huge_param(%T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}))
26
- // CHECK: call swiftcc void @huge_param(%T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}) %0)
26
+ // CHECK: [[TMP:%.*]] = alloca
27
+ // CHECK: call swiftcc void @huge_param(%T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}) [[TMP]])
27
28
sil @huge_param : $@convention(thin) Huge -> () {
28
29
entry(%x : $Huge):
29
30
%f = function_ref @huge_param : $@convention(thin) Huge -> ()
@@ -32,7 +33,8 @@ entry(%x : $Huge):
32
33
}
33
34
34
35
// CHECK-LABEL: define{{( protected)?}} swiftcc void @huge_alignment_param(%T17indirect_argument13HugeAlignmentV* noalias nocapture dereferenceable({{.*}}))
35
- // CHECK: call swiftcc void @huge_alignment_param(%T17indirect_argument13HugeAlignmentV* noalias nocapture dereferenceable({{.*}}) %0)
36
+ // CHECK: [[TMP:%.*]] = alloca
37
+ // CHECK: call swiftcc void @huge_alignment_param(%T17indirect_argument13HugeAlignmentV* noalias nocapture dereferenceable({{.*}}) [[TMP]])
36
38
sil @huge_alignment_param : $@convention(thin) HugeAlignment -> () {
37
39
entry(%x : $HugeAlignment):
38
40
%f = function_ref @huge_alignment_param : $@convention(thin) HugeAlignment -> ()
@@ -41,8 +43,9 @@ entry(%x : $HugeAlignment):
41
43
}
42
44
43
45
// CHECK-LABEL: define{{( protected)?}} swiftcc void @huge_param_and_return(%T17indirect_argument4HugeV* noalias nocapture sret, %T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}))
44
- // CHECK: [[TMP:%.*]] = alloca
45
- // CHECK: call swiftcc void @huge_param_and_return(%T17indirect_argument4HugeV* noalias nocapture sret [[TMP]], %T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}) %1)
46
+ // CHECK: [[TMP_ARG:%.*]] = alloca
47
+ // CHECK: [[TMP_RET:%.*]] = alloca
48
+ // CHECK: call swiftcc void @huge_param_and_return(%T17indirect_argument4HugeV* noalias nocapture sret [[TMP_RET]], %T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}) [[TMP_ARG]])
46
49
sil @huge_param_and_return : $@convention(thin) Huge -> Huge {
47
50
entry(%x : $Huge):
48
51
%f = function_ref @huge_param_and_return : $@convention(thin) Huge -> Huge
@@ -51,7 +54,8 @@ entry(%x : $Huge):
51
54
}
52
55
53
56
// CHECK-LABEL: define{{( protected)?}} swiftcc void @huge_param_and_indirect_return(%T17indirect_argument4HugeV* noalias nocapture sret, %T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}))
54
- // CHECK: call swiftcc void @huge_param_and_indirect_return(%T17indirect_argument4HugeV* noalias nocapture sret %0, %T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}) %1)
57
+ // CHECK: [[TMP_ARG:%.*]] = alloca
58
+ // CHECK: call swiftcc void @huge_param_and_indirect_return(%T17indirect_argument4HugeV* noalias nocapture sret %0, %T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}) [[TMP_ARG]])
55
59
sil @huge_param_and_indirect_return : $@convention(thin) (Huge) -> @out Huge {
56
60
entry(%o : $*Huge, %x : $Huge):
57
61
%f = function_ref @huge_param_and_indirect_return : $@convention(thin) (Huge) -> @out Huge
@@ -60,12 +64,10 @@ entry(%o : $*Huge, %x : $Huge):
60
64
}
61
65
62
66
// CHECK-LABEL: define{{( protected)?}} swiftcc void @huge_partial_application(%T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}), %T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}))
63
- // CHECK-32 : [[CLOSURE :%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject
64
- // CHECK-64 : [[CLOSURE:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject
67
+ // CHECK: [[TMP_ARG :%.*]] = alloca
68
+ // CHECK: [[CLOSURE:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject
65
69
// CHECK: bitcast %swift.refcounted* [[CLOSURE]] to <{ %swift.refcounted, %T17indirect_argument4HugeV }>*
66
- // CHECK: call void @llvm.memcpy
67
- // CHECK-64: call swiftcc void @_T024huge_partial_applicationTA(%T17indirect_argument4HugeV* noalias nocapture dereferenceable(40) %0, %swift.refcounted* swiftself [[CLOSURE]])
68
- // CHECK-32: call swiftcc void @_T024huge_partial_applicationTA(%T17indirect_argument4HugeV* noalias nocapture dereferenceable(20) %0, %swift.refcounted* swiftself [[CLOSURE]])
70
+ // CHECK: call swiftcc void @_T024huge_partial_applicationTA(%T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}) [[TMP_ARG]], %swift.refcounted* swiftself [[CLOSURE]])
69
71
// CHECK: define internal swiftcc void @_T024huge_partial_applicationTA(%T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}), %swift.refcounted* swiftself)
70
72
// CHECK: [[TMP_ARG:%.*]] = alloca
71
73
// CHECK-NOT: tail
@@ -79,10 +81,11 @@ entry(%x : $Huge, %y : $Huge):
79
81
}
80
82
81
83
// CHECK-LABEL: define{{( protected)?}} swiftcc void @huge_partial_application_stret(%T17indirect_argument4HugeV* noalias nocapture sret, %T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}), %T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}))
82
- // CHECK: [[TMP:%.*]] = alloca
84
+ // CHECK: [[TMP_ARG:%.*]] = alloca
85
+ // CHECK: [[TMP_RET:%.*]] = alloca
83
86
// CHECK: [[CLOSURE:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject
84
87
// CHECK: bitcast %swift.refcounted* [[CLOSURE]] to <{ %swift.refcounted, %T17indirect_argument4HugeV }>*
85
- // CHECK: call swiftcc void @_T030huge_partial_application_stretTA(%T17indirect_argument4HugeV* noalias nocapture sret [[TMP ]], %T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}) %1 , %swift.refcounted* swiftself [[CLOSURE]])
88
+ // CHECK: call swiftcc void @_T030huge_partial_application_stretTA(%T17indirect_argument4HugeV* noalias nocapture sret [[TMP_RET ]], %T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}) [[TMP_ARG]] , %swift.refcounted* swiftself [[CLOSURE]])
86
89
// CHECK: define internal swiftcc void @_T030huge_partial_application_stretTA(%T17indirect_argument4HugeV* noalias nocapture sret, %T17indirect_argument4HugeV* noalias nocapture dereferenceable({{.*}}), %swift.refcounted* swiftself)
87
90
// CHECK: [[TMP_ARG:%.*]] = alloca
88
91
// CHECK-NOT: tail
0 commit comments