77class agg_float_class { float a; };
88class agg_float_class pass_agg_float_class (class agg_float_class arg) { return arg; }
99// CHECK-LABEL: define{{.*}} void @_Z20pass_agg_float_class15agg_float_class(ptr dead_on_unwind noalias writable sret(%class.agg_float_class) align 4 %{{.*}}, float %{{.*}})
10- // SOFT-FLOAT-LABEL: define{{.*}} void @_Z20pass_agg_float_class15agg_float_class(ptr dead_on_unwind noalias writable sret(%class.agg_float_class) align 4 %{{.*}}, i32 %{{.*}})
11- // SOFT-FLOAT-LABEL: define{{.*}} void @_Z20pass_agg_float_class15agg_float_class(ptr noalias sret(%class.agg_float_class) align 4 %{{.*}}, i32 noext%{{.*}})
10+ // SOFT-FLOAT-LABEL: define{{.*}} void @_Z20pass_agg_float_class15agg_float_class(ptr dead_on_unwind noalias writable sret(%class.agg_float_class) align 4 %{{.*}}, i32 noext %{{.*}})
1211
1312class agg_double_class { double a; };
1413class agg_double_class pass_agg_double_class (class agg_double_class arg) { return arg; }
@@ -19,9 +18,8 @@ class agg_double_class pass_agg_double_class(class agg_double_class arg) { retur
1918// This structure is passed in a GPR in C++ (and C, checked in systemz-abi.c).
2019struct agg_float_cpp { float a; int : 0 ; };
2120struct agg_float_cpp pass_agg_float_cpp (struct agg_float_cpp arg) { return arg; }
22- // CHECK-LABEL: define{{.*}} void @_Z18pass_agg_float_cpp13agg_float_cpp(ptr dead_on_unwind noalias writable sret(%struct.agg_float_cpp) align 4 %{{.*}}, i32 %{{.*}})
23- // SOFT-FLOAT-LABEL: define{{.*}} void @_Z18pass_agg_float_cpp13agg_float_cpp(ptr dead_on_unwind noalias writable sret(%struct.agg_float_cpp) align 4 %{{.*}}, i32 %{{.*}})
24- // SOFT-FLOAT-LABEL: define{{.*}} void @_Z18pass_agg_float_cpp13agg_float_cpp(ptr noalias sret(%struct.agg_float_cpp) align 4 %{{.*}}, i32 noext %{{.*}})
21+ // CHECK-LABEL: define{{.*}} void @_Z18pass_agg_float_cpp13agg_float_cpp(ptr dead_on_unwind noalias writable sret(%struct.agg_float_cpp) align 4 %{{.*}}, i32 noext %{{.*}})
22+ // SOFT-FLOAT-LABEL: define{{.*}} void @_Z18pass_agg_float_cpp13agg_float_cpp(ptr dead_on_unwind noalias writable sret(%struct.agg_float_cpp) align 4 %{{.*}}, i32 noext %{{.*}})
2523
2624
2725// A field member of empty class type in C++ makes the record nonhomogeneous,
@@ -34,8 +32,7 @@ struct agg_nofloat_empty pass_agg_nofloat_empty(struct agg_nofloat_empty arg) {
3432struct agg_float_empty { float a; [[no_unique_address]] empty dummy; };
3533struct agg_float_empty pass_agg_float_empty (struct agg_float_empty arg) { return arg; }
3634// CHECK-LABEL: define{{.*}} void @_Z20pass_agg_float_empty15agg_float_empty(ptr dead_on_unwind noalias writable sret(%struct.agg_float_empty) align 4 %{{.*}}, float %{{.*}})
37- // SOFT-FLOAT-LABEL: define{{.*}} void @_Z20pass_agg_float_empty15agg_float_empty(ptr dead_on_unwind noalias writable sret(%struct.agg_float_empty) align 4 %{{.*}}, i32 %{{.*}})
38- // SOFT-FLOAT-LABEL: define{{.*}} void @_Z20pass_agg_float_empty15agg_float_empty(ptr noalias sret(%struct.agg_float_empty) align 4 %{{.*}}, i32 noext %{{.*}})
35+ // SOFT-FLOAT-LABEL: define{{.*}} void @_Z20pass_agg_float_empty15agg_float_empty(ptr dead_on_unwind noalias writable sret(%struct.agg_float_empty) align 4 %{{.*}}, i32 noext %{{.*}})
3936struct agg_nofloat_emptyarray { float a; [[no_unique_address]] empty dummy[3 ]; };
4037struct agg_nofloat_emptyarray pass_agg_nofloat_emptyarray (struct agg_nofloat_emptyarray arg) { return arg; }
4138// CHECK-LABEL: define{{.*}} void @_Z27pass_agg_nofloat_emptyarray22agg_nofloat_emptyarray(ptr dead_on_unwind noalias writable sret(%struct.agg_nofloat_emptyarray) align 4 %{{.*}}, i64 %{{.*}})
@@ -51,8 +48,7 @@ struct emptybase { [[no_unique_address]] empty dummy; };
5148struct agg_float_emptybase : emptybase { float a; };
5249struct agg_float_emptybase pass_agg_float_emptybase (struct agg_float_emptybase arg) { return arg; }
5350// CHECK-LABEL: define{{.*}} void @_Z24pass_agg_float_emptybase19agg_float_emptybase(ptr dead_on_unwind noalias writable sret(%struct.agg_float_emptybase) align 4 %{{.*}}, float %{{.*}})
54- // SOFT-FLOAT-LABEL: define{{.*}} void @_Z24pass_agg_float_emptybase19agg_float_emptybase(ptr dead_on_unwind noalias writable sret(%struct.agg_float_emptybase) align 4 %{{.*}}, i32 %{{.*}})
55- // SOFT-FLOAT-LABEL: define{{.*}} void @_Z24pass_agg_float_emptybase19agg_float_emptybase(ptr noalias sret(%struct.agg_float_emptybase) align 4 %{{.*}}, i32 noext %{{.*}})
51+ // SOFT-FLOAT-LABEL: define{{.*}} void @_Z24pass_agg_float_emptybase19agg_float_emptybase(ptr dead_on_unwind noalias writable sret(%struct.agg_float_emptybase) align 4 %{{.*}}, i32 noext %{{.*}})
5652struct noemptybasearray { [[no_unique_address]] empty dummy[3 ]; };
5753struct agg_nofloat_emptybasearray : noemptybasearray { float a; };
5854struct agg_nofloat_emptybasearray pass_agg_nofloat_emptybasearray (struct agg_nofloat_emptybasearray arg) { return arg; }
0 commit comments