@@ -5,12 +5,11 @@ struct Sp {
5
5
int *x;
6
6
};
7
7
// CHECK-LABEL: define dso_local void @_Z2Tp2Sp(
8
- // CHECK-SAME: i64 [[S_COERCE:%.*]]) #[[ATTR0:[0-9]+]] {
8
+ // CHECK-SAME: ptr [[S_COERCE:%.*]]) #[[ATTR0:[0-9]+]] {
9
9
// CHECK-NEXT: [[ENTRY:.*:]]
10
10
// CHECK-NEXT: [[S:%.*]] = alloca [[STRUCT_SP:%.*]], align 8
11
11
// CHECK-NEXT: [[COERCE_DIVE:%.*]] = getelementptr inbounds nuw [[STRUCT_SP]], ptr [[S]], i32 0, i32 0
12
- // CHECK-NEXT: [[COERCE_VAL_IP:%.*]] = inttoptr i64 [[S_COERCE]] to ptr
13
- // CHECK-NEXT: store ptr [[COERCE_VAL_IP]], ptr [[COERCE_DIVE]], align 8
12
+ // CHECK-NEXT: store ptr [[S_COERCE]], ptr [[COERCE_DIVE]], align 8
14
13
// CHECK-NEXT: [[X:%.*]] = getelementptr inbounds nuw [[STRUCT_SP]], ptr [[S]], i32 0, i32 0
15
14
// CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[X]], align 8
16
15
// CHECK-NEXT: store i32 1, ptr [[TMP0]], align 4
@@ -22,10 +21,10 @@ struct Spp {
22
21
int *x, *y;
23
22
};
24
23
// CHECK-LABEL: define dso_local void @_Z3Tpp3Spp(
25
- // CHECK-SAME: [2 x i64 ] [[S_COERCE:%.*]]) #[[ATTR0]] {
24
+ // CHECK-SAME: [2 x ptr ] [[S_COERCE:%.*]]) #[[ATTR0]] {
26
25
// CHECK-NEXT: [[ENTRY:.*:]]
27
26
// CHECK-NEXT: [[S:%.*]] = alloca [[STRUCT_SPP:%.*]], align 8
28
- // CHECK-NEXT: store [2 x i64 ] [[S_COERCE]], ptr [[S]], align 8
27
+ // CHECK-NEXT: store [2 x ptr ] [[S_COERCE]], ptr [[S]], align 8
29
28
// CHECK-NEXT: [[X:%.*]] = getelementptr inbounds nuw [[STRUCT_SPP]], ptr [[S]], i32 0, i32 0
30
29
// CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[X]], align 8
31
30
// CHECK-NEXT: store i32 1, ptr [[TMP0]], align 4
@@ -67,10 +66,10 @@ struct Srp {
67
66
int &x, *y;
68
67
};
69
68
// CHECK-LABEL: define dso_local void @_Z3Trp3Srp(
70
- // CHECK-SAME: [2 x i64 ] [[S_COERCE:%.*]]) #[[ATTR0]] {
69
+ // CHECK-SAME: [2 x ptr ] [[S_COERCE:%.*]]) #[[ATTR0]] {
71
70
// CHECK-NEXT: [[ENTRY:.*:]]
72
71
// CHECK-NEXT: [[S:%.*]] = alloca [[STRUCT_SRP:%.*]], align 8
73
- // CHECK-NEXT: store [2 x i64 ] [[S_COERCE]], ptr [[S]], align 8
72
+ // CHECK-NEXT: store [2 x ptr ] [[S_COERCE]], ptr [[S]], align 8
74
73
// CHECK-NEXT: [[X:%.*]] = getelementptr inbounds nuw [[STRUCT_SRP]], ptr [[S]], i32 0, i32 0
75
74
// CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[X]], align 8
76
75
// CHECK-NEXT: store i32 1, ptr [[TMP0]], align 4
@@ -82,10 +81,10 @@ struct __attribute__((__packed__)) Spp_packed {
82
81
int *x, *y;
83
82
};
84
83
// CHECK-LABEL: define dso_local void @_Z10Tpp_packed10Spp_packed(
85
- // CHECK-SAME: [2 x i64 ] [[S_COERCE:%.*]]) #[[ATTR0]] {
84
+ // CHECK-SAME: [2 x ptr ] [[S_COERCE:%.*]]) #[[ATTR0]] {
86
85
// CHECK-NEXT: [[ENTRY:.*:]]
87
86
// CHECK-NEXT: [[S:%.*]] = alloca [[STRUCT_SPP_PACKED:%.*]], align 1
88
- // CHECK-NEXT: store [2 x i64 ] [[S_COERCE]], ptr [[S]], align 1
87
+ // CHECK-NEXT: store [2 x ptr ] [[S_COERCE]], ptr [[S]], align 1
89
88
// CHECK-NEXT: [[X:%.*]] = getelementptr inbounds nuw [[STRUCT_SPP_PACKED]], ptr [[S]], i32 0, i32 0
90
89
// CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[X]], align 1
91
90
// CHECK-NEXT: store i32 1, ptr [[TMP0]], align 4
0 commit comments