@@ -13,18 +13,16 @@ define i64 @test0() {
13
13
; CHECK: .functype test0 () -> (i64)
14
14
; CHECK-NEXT: # %bb.0:
15
15
; CHECK-NEXT: global.get $push0=, __stack_pointer
16
- ; CHECK-NEXT: i32.const $push1=, 80
17
- ; CHECK-NEXT: i32.sub $push7=, $pop0, $pop1
18
- ; CHECK-NEXT: local.tee $push6=, $1=, $pop7
19
- ; CHECK-NEXT: global.set __stack_pointer, $pop6
20
- ; CHECK-NEXT: i32.const $push4=, 8
21
- ; CHECK-NEXT: i32.add $push5=, $1, $pop4
22
- ; CHECK-NEXT: call return_multi_multi, $pop5
23
- ; CHECK-NEXT: i64.load $0=, 8($1)
24
- ; CHECK-NEXT: i32.const $push2=, 80
16
+ ; CHECK-NEXT: i32.const $push1=, 96
17
+ ; CHECK-NEXT: i32.sub $push5=, $pop0, $pop1
18
+ ; CHECK-NEXT: local.tee $push4=, $1=, $pop5
19
+ ; CHECK-NEXT: global.set __stack_pointer, $pop4
20
+ ; CHECK-NEXT: call return_multi_multi, $1
21
+ ; CHECK-NEXT: i64.load $0=, 0($1)
22
+ ; CHECK-NEXT: i32.const $push2=, 96
25
23
; CHECK-NEXT: i32.add $push3=, $1, $pop2
26
24
; CHECK-NEXT: global.set __stack_pointer, $pop3
27
- ; CHECK-NEXT: local.copy $push8 =, $0
25
+ ; CHECK-NEXT: local.copy $push6 =, $0
28
26
; CHECK-NEXT: # fallthrough-return
29
27
%t0 = call { i64 , i128 , i192 , i128 , i64 } @return_multi_multi ()
30
28
%t1 = extractvalue { i64 , i128 , i192 , i128 , i64 } %t0 , 0
@@ -36,18 +34,16 @@ define i128 @test1() {
36
34
; CHECK: .functype test1 (i32) -> ()
37
35
; CHECK-NEXT: # %bb.0:
38
36
; CHECK-NEXT: global.get $push1=, __stack_pointer
39
- ; CHECK-NEXT: i32.const $push2=, 80
40
- ; CHECK-NEXT: i32.sub $push8=, $pop1, $pop2
41
- ; CHECK-NEXT: local.tee $push7=, $2=, $pop8
42
- ; CHECK-NEXT: global.set __stack_pointer, $pop7
43
- ; CHECK-NEXT: i32.const $push5=, 8
44
- ; CHECK-NEXT: i32.add $push6=, $2, $pop5
45
- ; CHECK-NEXT: call return_multi_multi, $pop6
46
- ; CHECK-NEXT: i64.load $1=, 16($2)
47
- ; CHECK-NEXT: i64.load $push0=, 24($2)
48
- ; CHECK-NEXT: i64.store 8($0), $pop0
49
- ; CHECK-NEXT: i64.store 0($0), $1
50
- ; CHECK-NEXT: i32.const $push3=, 80
37
+ ; CHECK-NEXT: i32.const $push2=, 96
38
+ ; CHECK-NEXT: i32.sub $push6=, $pop1, $pop2
39
+ ; CHECK-NEXT: local.tee $push5=, $2=, $pop6
40
+ ; CHECK-NEXT: global.set __stack_pointer, $pop5
41
+ ; CHECK-NEXT: call return_multi_multi, $2
42
+ ; CHECK-NEXT: i64.load $1=, 24($2)
43
+ ; CHECK-NEXT: i64.load $push0=, 16($2)
44
+ ; CHECK-NEXT: i64.store 0($0), $pop0
45
+ ; CHECK-NEXT: i64.store 8($0), $1
46
+ ; CHECK-NEXT: i32.const $push3=, 96
51
47
; CHECK-NEXT: i32.add $push4=, $2, $pop3
52
48
; CHECK-NEXT: global.set __stack_pointer, $pop4
53
49
; CHECK-NEXT: # fallthrough-return
@@ -61,13 +57,11 @@ define i192 @test2() {
61
57
; CHECK: .functype test2 (i32) -> ()
62
58
; CHECK-NEXT: # %bb.0:
63
59
; CHECK-NEXT: global.get $push3=, __stack_pointer
64
- ; CHECK-NEXT: i32.const $push4=, 80
65
- ; CHECK-NEXT: i32.sub $push10=, $pop3, $pop4
66
- ; CHECK-NEXT: local.tee $push9=, $3=, $pop10
67
- ; CHECK-NEXT: global.set __stack_pointer, $pop9
68
- ; CHECK-NEXT: i32.const $push7=, 8
69
- ; CHECK-NEXT: i32.add $push8=, $3, $pop7
70
- ; CHECK-NEXT: call return_multi_multi, $pop8
60
+ ; CHECK-NEXT: i32.const $push4=, 96
61
+ ; CHECK-NEXT: i32.sub $push8=, $pop3, $pop4
62
+ ; CHECK-NEXT: local.tee $push7=, $3=, $pop8
63
+ ; CHECK-NEXT: global.set __stack_pointer, $pop7
64
+ ; CHECK-NEXT: call return_multi_multi, $3
71
65
; CHECK-NEXT: i64.load $1=, 40($3)
72
66
; CHECK-NEXT: i64.load $2=, 32($3)
73
67
; CHECK-NEXT: i32.const $push0=, 48
@@ -76,7 +70,7 @@ define i192 @test2() {
76
70
; CHECK-NEXT: i64.store 16($0), $pop2
77
71
; CHECK-NEXT: i64.store 0($0), $2
78
72
; CHECK-NEXT: i64.store 8($0), $1
79
- ; CHECK-NEXT: i32.const $push5=, 80
73
+ ; CHECK-NEXT: i32.const $push5=, 96
80
74
; CHECK-NEXT: i32.add $push6=, $3, $pop5
81
75
; CHECK-NEXT: global.set __stack_pointer, $pop6
82
76
; CHECK-NEXT: # fallthrough-return
@@ -90,18 +84,16 @@ define i128 @test3() {
90
84
; CHECK: .functype test3 (i32) -> ()
91
85
; CHECK-NEXT: # %bb.0:
92
86
; CHECK-NEXT: global.get $push1=, __stack_pointer
93
- ; CHECK-NEXT: i32.const $push2=, 80
94
- ; CHECK-NEXT: i32.sub $push8=, $pop1, $pop2
95
- ; CHECK-NEXT: local.tee $push7=, $2=, $pop8
96
- ; CHECK-NEXT: global.set __stack_pointer, $pop7
97
- ; CHECK-NEXT: i32.const $push5=, 8
98
- ; CHECK-NEXT: i32.add $push6=, $2, $pop5
99
- ; CHECK-NEXT: call return_multi_multi, $pop6
100
- ; CHECK-NEXT: i64.load $1=, 56($2)
87
+ ; CHECK-NEXT: i32.const $push2=, 96
88
+ ; CHECK-NEXT: i32.sub $push6=, $pop1, $pop2
89
+ ; CHECK-NEXT: local.tee $push5=, $2=, $pop6
90
+ ; CHECK-NEXT: global.set __stack_pointer, $pop5
91
+ ; CHECK-NEXT: call return_multi_multi, $2
92
+ ; CHECK-NEXT: i64.load $1=, 72($2)
101
93
; CHECK-NEXT: i64.load $push0=, 64($2)
102
- ; CHECK-NEXT: i64.store 8 ($0), $pop0
103
- ; CHECK-NEXT: i64.store 0 ($0), $1
104
- ; CHECK-NEXT: i32.const $push3=, 80
94
+ ; CHECK-NEXT: i64.store 0 ($0), $pop0
95
+ ; CHECK-NEXT: i64.store 8 ($0), $1
96
+ ; CHECK-NEXT: i32.const $push3=, 96
105
97
; CHECK-NEXT: i32.add $push4=, $2, $pop3
106
98
; CHECK-NEXT: global.set __stack_pointer, $pop4
107
99
; CHECK-NEXT: # fallthrough-return
@@ -115,18 +107,16 @@ define i64 @test4() {
115
107
; CHECK: .functype test4 () -> (i64)
116
108
; CHECK-NEXT: # %bb.0:
117
109
; CHECK-NEXT: global.get $push0=, __stack_pointer
118
- ; CHECK-NEXT: i32.const $push1=, 80
119
- ; CHECK-NEXT: i32.sub $push7=, $pop0, $pop1
120
- ; CHECK-NEXT: local.tee $push6=, $1=, $pop7
121
- ; CHECK-NEXT: global.set __stack_pointer, $pop6
122
- ; CHECK-NEXT: i32.const $push4=, 8
123
- ; CHECK-NEXT: i32.add $push5=, $1, $pop4
124
- ; CHECK-NEXT: call return_multi_multi, $pop5
125
- ; CHECK-NEXT: i64.load $0=, 72($1)
126
- ; CHECK-NEXT: i32.const $push2=, 80
110
+ ; CHECK-NEXT: i32.const $push1=, 96
111
+ ; CHECK-NEXT: i32.sub $push5=, $pop0, $pop1
112
+ ; CHECK-NEXT: local.tee $push4=, $1=, $pop5
113
+ ; CHECK-NEXT: global.set __stack_pointer, $pop4
114
+ ; CHECK-NEXT: call return_multi_multi, $1
115
+ ; CHECK-NEXT: i64.load $0=, 80($1)
116
+ ; CHECK-NEXT: i32.const $push2=, 96
127
117
; CHECK-NEXT: i32.add $push3=, $1, $pop2
128
118
; CHECK-NEXT: global.set __stack_pointer, $pop3
129
- ; CHECK-NEXT: local.copy $push8 =, $0
119
+ ; CHECK-NEXT: local.copy $push6 =, $0
130
120
; CHECK-NEXT: # fallthrough-return
131
121
%t0 = call { i64 , i128 , i192 , i128 , i64 } @return_multi_multi ()
132
122
%t1 = extractvalue { i64 , i128 , i192 , i128 , i64 } %t0 , 4
@@ -140,20 +130,18 @@ define { i64, i128 } @test5() {
140
130
; CHECK: .functype test5 (i32) -> ()
141
131
; CHECK-NEXT: # %bb.0:
142
132
; CHECK-NEXT: global.get $push1=, __stack_pointer
143
- ; CHECK-NEXT: i32.const $push2=, 80
144
- ; CHECK-NEXT: i32.sub $push8=, $pop1, $pop2
145
- ; CHECK-NEXT: local.tee $push7=, $3=, $pop8
146
- ; CHECK-NEXT: global.set __stack_pointer, $pop7
147
- ; CHECK-NEXT: i32.const $push5=, 8
148
- ; CHECK-NEXT: i32.add $push6=, $3, $pop5
149
- ; CHECK-NEXT: call return_multi_multi, $pop6
150
- ; CHECK-NEXT: i64.load $1=, 8($3)
151
- ; CHECK-NEXT: i64.load $2=, 24($3)
152
- ; CHECK-NEXT: i64.load $push0=, 16($3)
153
- ; CHECK-NEXT: i64.store 8($0), $pop0
133
+ ; CHECK-NEXT: i32.const $push2=, 96
134
+ ; CHECK-NEXT: i32.sub $push6=, $pop1, $pop2
135
+ ; CHECK-NEXT: local.tee $push5=, $3=, $pop6
136
+ ; CHECK-NEXT: global.set __stack_pointer, $pop5
137
+ ; CHECK-NEXT: call return_multi_multi, $3
138
+ ; CHECK-NEXT: i64.load $1=, 24($3)
139
+ ; CHECK-NEXT: i64.load $2=, 16($3)
140
+ ; CHECK-NEXT: i64.load $push0=, 0($3)
141
+ ; CHECK-NEXT: i64.store 0($0), $pop0
154
142
; CHECK-NEXT: i64.store 16($0), $2
155
- ; CHECK-NEXT: i64.store 0 ($0), $1
156
- ; CHECK-NEXT: i32.const $push3=, 80
143
+ ; CHECK-NEXT: i64.store 24 ($0), $1
144
+ ; CHECK-NEXT: i32.const $push3=, 96
157
145
; CHECK-NEXT: i32.add $push4=, $3, $pop3
158
146
; CHECK-NEXT: global.set __stack_pointer, $pop4
159
147
; CHECK-NEXT: # fallthrough-return
@@ -170,22 +158,20 @@ define { i128, i128 } @test6() {
170
158
; CHECK: .functype test6 (i32) -> ()
171
159
; CHECK-NEXT: # %bb.0:
172
160
; CHECK-NEXT: global.get $push1=, __stack_pointer
173
- ; CHECK-NEXT: i32.const $push2=, 80
174
- ; CHECK-NEXT: i32.sub $push8=, $pop1, $pop2
175
- ; CHECK-NEXT: local.tee $push7=, $4=, $pop8
176
- ; CHECK-NEXT: global.set __stack_pointer, $pop7
177
- ; CHECK-NEXT: i32.const $push5=, 8
178
- ; CHECK-NEXT: i32.add $push6=, $4, $pop5
179
- ; CHECK-NEXT: call return_multi_multi, $pop6
161
+ ; CHECK-NEXT: i32.const $push2=, 96
162
+ ; CHECK-NEXT: i32.sub $push6=, $pop1, $pop2
163
+ ; CHECK-NEXT: local.tee $push5=, $4=, $pop6
164
+ ; CHECK-NEXT: global.set __stack_pointer, $pop5
165
+ ; CHECK-NEXT: call return_multi_multi, $4
180
166
; CHECK-NEXT: i64.load $1=, 24($4)
181
167
; CHECK-NEXT: i64.load $2=, 16($4)
182
- ; CHECK-NEXT: i64.load $3=, 64 ($4)
183
- ; CHECK-NEXT: i64.load $push0=, 56 ($4)
168
+ ; CHECK-NEXT: i64.load $3=, 72 ($4)
169
+ ; CHECK-NEXT: i64.load $push0=, 64 ($4)
184
170
; CHECK-NEXT: i64.store 16($0), $pop0
185
171
; CHECK-NEXT: i64.store 24($0), $3
186
172
; CHECK-NEXT: i64.store 0($0), $2
187
173
; CHECK-NEXT: i64.store 8($0), $1
188
- ; CHECK-NEXT: i32.const $push3=, 80
174
+ ; CHECK-NEXT: i32.const $push3=, 96
189
175
; CHECK-NEXT: i32.add $push4=, $4, $pop3
190
176
; CHECK-NEXT: global.set __stack_pointer, $pop4
191
177
; CHECK-NEXT: # fallthrough-return
@@ -202,24 +188,22 @@ define { i64, i192 } @test7() {
202
188
; CHECK: .functype test7 (i32) -> ()
203
189
; CHECK-NEXT: # %bb.0:
204
190
; CHECK-NEXT: global.get $push3=, __stack_pointer
205
- ; CHECK-NEXT: i32.const $push4=, 80
206
- ; CHECK-NEXT: i32.sub $push10=, $pop3, $pop4
207
- ; CHECK-NEXT: local.tee $push9=, $4=, $pop10
208
- ; CHECK-NEXT: global.set __stack_pointer, $pop9
209
- ; CHECK-NEXT: i32.const $push7=, 8
210
- ; CHECK-NEXT: i32.add $push8=, $4, $pop7
211
- ; CHECK-NEXT: call return_multi_multi, $pop8
212
- ; CHECK-NEXT: i64.load $1=, 8($4)
213
- ; CHECK-NEXT: i64.load $2=, 40($4)
214
- ; CHECK-NEXT: i64.load $3=, 32($4)
191
+ ; CHECK-NEXT: i32.const $push4=, 96
192
+ ; CHECK-NEXT: i32.sub $push8=, $pop3, $pop4
193
+ ; CHECK-NEXT: local.tee $push7=, $4=, $pop8
194
+ ; CHECK-NEXT: global.set __stack_pointer, $pop7
195
+ ; CHECK-NEXT: call return_multi_multi, $4
215
196
; CHECK-NEXT: i32.const $push0=, 48
216
197
; CHECK-NEXT: i32.add $push1=, $4, $pop0
217
- ; CHECK-NEXT: i64.load $push2=, 0($pop1)
218
- ; CHECK-NEXT: i64.store 24($0), $pop2
219
- ; CHECK-NEXT: i64.store 8($0), $3
220
- ; CHECK-NEXT: i64.store 16($0), $2
221
- ; CHECK-NEXT: i64.store 0($0), $1
222
- ; CHECK-NEXT: i32.const $push5=, 80
198
+ ; CHECK-NEXT: i64.load $1=, 0($pop1)
199
+ ; CHECK-NEXT: i64.load $2=, 40($4)
200
+ ; CHECK-NEXT: i64.load $3=, 32($4)
201
+ ; CHECK-NEXT: i64.load $push2=, 0($4)
202
+ ; CHECK-NEXT: i64.store 0($0), $pop2
203
+ ; CHECK-NEXT: i64.store 32($0), $1
204
+ ; CHECK-NEXT: i64.store 16($0), $3
205
+ ; CHECK-NEXT: i64.store 24($0), $2
206
+ ; CHECK-NEXT: i32.const $push5=, 96
223
207
; CHECK-NEXT: i32.add $push6=, $4, $pop5
224
208
; CHECK-NEXT: global.set __stack_pointer, $pop6
225
209
; CHECK-NEXT: # fallthrough-return
@@ -236,32 +220,30 @@ define { i128, i192, i128, i64 } @test8() {
236
220
; CHECK: .functype test8 (i32) -> ()
237
221
; CHECK-NEXT: # %bb.0:
238
222
; CHECK-NEXT: global.get $push3=, __stack_pointer
239
- ; CHECK-NEXT: i32.const $push4=, 80
240
- ; CHECK-NEXT: i32.sub $push10=, $pop3, $pop4
241
- ; CHECK-NEXT: local.tee $push9=, $8=, $pop10
242
- ; CHECK-NEXT: global.set __stack_pointer, $pop9
243
- ; CHECK-NEXT: i32.const $push7=, 8
244
- ; CHECK-NEXT: i32.add $push8=, $8, $pop7
245
- ; CHECK-NEXT: call return_multi_multi, $pop8
223
+ ; CHECK-NEXT: i32.const $push4=, 96
224
+ ; CHECK-NEXT: i32.sub $push8=, $pop3, $pop4
225
+ ; CHECK-NEXT: local.tee $push7=, $8=, $pop8
226
+ ; CHECK-NEXT: global.set __stack_pointer, $pop7
227
+ ; CHECK-NEXT: call return_multi_multi, $8
246
228
; CHECK-NEXT: i32.const $push0=, 48
247
229
; CHECK-NEXT: i32.add $push1=, $8, $pop0
248
230
; CHECK-NEXT: i64.load $1=, 0($pop1)
249
- ; CHECK-NEXT: i64.load $2=, 8 ($8)
231
+ ; CHECK-NEXT: i64.load $2=, 72 ($8)
250
232
; CHECK-NEXT: i64.load $3=, 64($8)
251
- ; CHECK-NEXT: i64.load $4=, 56 ($8)
252
- ; CHECK-NEXT: i64.load $5=, 40 ($8)
253
- ; CHECK-NEXT: i64.load $6=, 32 ($8)
254
- ; CHECK-NEXT: i64.load $7=, 24 ($8)
255
- ; CHECK-NEXT: i64.load $push2=, 16 ($8)
256
- ; CHECK-NEXT: i64.store 40 ($0), $pop2
233
+ ; CHECK-NEXT: i64.load $4=, 40 ($8)
234
+ ; CHECK-NEXT: i64.load $5=, 32 ($8)
235
+ ; CHECK-NEXT: i64.load $6=, 24 ($8)
236
+ ; CHECK-NEXT: i64.load $7=, 16 ($8)
237
+ ; CHECK-NEXT: i64.load $push2=, 0 ($8)
238
+ ; CHECK-NEXT: i64.store 64 ($0), $pop2
257
239
; CHECK-NEXT: i64.store 48($0), $7
240
+ ; CHECK-NEXT: i64.store 56($0), $6
258
241
; CHECK-NEXT: i64.store 32($0), $1
259
- ; CHECK-NEXT: i64.store 16($0), $6
260
- ; CHECK-NEXT: i64.store 24($0), $5
261
- ; CHECK-NEXT: i64.store 0($0), $4
262
- ; CHECK-NEXT: i64.store 8($0), $3
263
- ; CHECK-NEXT: i64.store 56($0), $2
264
- ; CHECK-NEXT: i32.const $push5=, 80
242
+ ; CHECK-NEXT: i64.store 16($0), $5
243
+ ; CHECK-NEXT: i64.store 24($0), $4
244
+ ; CHECK-NEXT: i64.store 0($0), $3
245
+ ; CHECK-NEXT: i64.store 8($0), $2
246
+ ; CHECK-NEXT: i32.const $push5=, 96
265
247
; CHECK-NEXT: i32.add $push6=, $8, $pop5
266
248
; CHECK-NEXT: global.set __stack_pointer, $pop6
267
249
; CHECK-NEXT: # fallthrough-return
0 commit comments