1 ; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 ; RUN: llc -O0 -mtriple=mipsel-linux-gnu -global-isel -stop-after=irtranslator -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32
5 define signext i8 @sext_arg_i8(i8 signext %a) {
6 ; MIPS32-LABEL: name: sext_arg_i8
9 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
10 ; MIPS32: [[ASSERT_SEXT:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[COPY]], 8
11 ; MIPS32: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_SEXT]](s32)
12 ; MIPS32: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC]](s8)
13 ; MIPS32: $v0 = COPY [[SEXT]](s32)
14 ; MIPS32: RetRA implicit $v0
19 define zeroext i8 @zext_arg_i8(i8 zeroext %a) {
20 ; MIPS32-LABEL: name: zext_arg_i8
22 ; MIPS32: liveins: $a0
23 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
24 ; MIPS32: [[ASSERT_ZEXT:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[COPY]], 8
25 ; MIPS32: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_ZEXT]](s32)
26 ; MIPS32: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC]](s8)
27 ; MIPS32: $v0 = COPY [[ZEXT]](s32)
28 ; MIPS32: RetRA implicit $v0
33 define i8 @aext_arg_i8(i8 %a) {
34 ; MIPS32-LABEL: name: aext_arg_i8
36 ; MIPS32: liveins: $a0
37 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
38 ; MIPS32: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)
39 ; MIPS32: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8)
40 ; MIPS32: $v0 = COPY [[ANYEXT]](s32)
41 ; MIPS32: RetRA implicit $v0
46 declare signext i8 @sext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 %a)
47 declare zeroext i8 @zext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 %a)
48 declare i8 @aext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 %a)
50 define signext i8 @call_sext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 signext %a) {
51 ; MIPS32-LABEL: name: call_sext_stack_arg_i8
53 ; MIPS32: liveins: $a0, $a1, $a2, $a3
54 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
55 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
56 ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
57 ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
58 ; MIPS32: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0
59 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)
60 ; MIPS32: [[ASSERT_SEXT:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[LOAD]], 8
61 ; MIPS32: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_SEXT]](s32)
62 ; MIPS32: ADJCALLSTACKDOWN 24, 0, implicit-def $sp, implicit $sp
63 ; MIPS32: $a0 = COPY [[COPY]](s32)
64 ; MIPS32: $a1 = COPY [[COPY1]](s32)
65 ; MIPS32: $a2 = COPY [[COPY2]](s32)
66 ; MIPS32: $a3 = COPY [[COPY3]](s32)
67 ; MIPS32: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC]](s8)
68 ; MIPS32: [[COPY4:%[0-9]+]]:_(p0) = COPY $sp
69 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
70 ; MIPS32: [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY4]], [[C]](s32)
71 ; MIPS32: G_STORE [[SEXT]](s32), [[PTR_ADD]](p0) :: (store (s32) into stack + 16, align 8)
72 ; MIPS32: JAL @sext_stack_arg_i8, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
73 ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v0
74 ; MIPS32: [[ASSERT_SEXT1:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[COPY5]], 8
75 ; MIPS32: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_SEXT1]](s32)
76 ; MIPS32: ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp
77 ; MIPS32: [[SEXT1:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC1]](s8)
78 ; MIPS32: $v0 = COPY [[SEXT1]](s32)
79 ; MIPS32: RetRA implicit $v0
81 %call = call signext i8 @sext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 signext %a)
85 define zeroext i8 @call_zext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 zeroext %a) {
86 ; MIPS32-LABEL: name: call_zext_stack_arg_i8
88 ; MIPS32: liveins: $a0, $a1, $a2, $a3
89 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
90 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
91 ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
92 ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
93 ; MIPS32: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0
94 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)
95 ; MIPS32: [[ASSERT_ZEXT:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[LOAD]], 8
96 ; MIPS32: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_ZEXT]](s32)
97 ; MIPS32: ADJCALLSTACKDOWN 24, 0, implicit-def $sp, implicit $sp
98 ; MIPS32: $a0 = COPY [[COPY]](s32)
99 ; MIPS32: $a1 = COPY [[COPY1]](s32)
100 ; MIPS32: $a2 = COPY [[COPY2]](s32)
101 ; MIPS32: $a3 = COPY [[COPY3]](s32)
102 ; MIPS32: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC]](s8)
103 ; MIPS32: [[COPY4:%[0-9]+]]:_(p0) = COPY $sp
104 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
105 ; MIPS32: [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY4]], [[C]](s32)
106 ; MIPS32: G_STORE [[ZEXT]](s32), [[PTR_ADD]](p0) :: (store (s32) into stack + 16, align 8)
107 ; MIPS32: JAL @zext_stack_arg_i8, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
108 ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v0
109 ; MIPS32: [[ASSERT_ZEXT1:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[COPY5]], 8
110 ; MIPS32: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_ZEXT1]](s32)
111 ; MIPS32: ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp
112 ; MIPS32: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC1]](s8)
113 ; MIPS32: $v0 = COPY [[ZEXT1]](s32)
114 ; MIPS32: RetRA implicit $v0
116 %call = call zeroext i8 @zext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 zeroext %a)
120 define i8 @call_aext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 %a) {
121 ; MIPS32-LABEL: name: call_aext_stack_arg_i8
122 ; MIPS32: bb.1.entry:
123 ; MIPS32: liveins: $a0, $a1, $a2, $a3
124 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
125 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
126 ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
127 ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
128 ; MIPS32: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0
129 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)
130 ; MIPS32: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[LOAD]](s32)
131 ; MIPS32: ADJCALLSTACKDOWN 24, 0, implicit-def $sp, implicit $sp
132 ; MIPS32: $a0 = COPY [[COPY]](s32)
133 ; MIPS32: $a1 = COPY [[COPY1]](s32)
134 ; MIPS32: $a2 = COPY [[COPY2]](s32)
135 ; MIPS32: $a3 = COPY [[COPY3]](s32)
136 ; MIPS32: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8)
137 ; MIPS32: [[COPY4:%[0-9]+]]:_(p0) = COPY $sp
138 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
139 ; MIPS32: [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY4]], [[C]](s32)
140 ; MIPS32: G_STORE [[ANYEXT]](s32), [[PTR_ADD]](p0) :: (store (s32) into stack + 16, align 8)
141 ; MIPS32: JAL @aext_stack_arg_i8, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
142 ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v0
143 ; MIPS32: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[COPY5]](s32)
144 ; MIPS32: ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp
145 ; MIPS32: [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC1]](s8)
146 ; MIPS32: $v0 = COPY [[ANYEXT1]](s32)
147 ; MIPS32: RetRA implicit $v0
149 %call = call i8 @aext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 %a)
154 define signext i16 @sext_arg_i16(i16 signext %a) {
155 ; MIPS32-LABEL: name: sext_arg_i16
156 ; MIPS32: bb.1.entry:
157 ; MIPS32: liveins: $a0
158 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
159 ; MIPS32: [[ASSERT_SEXT:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[COPY]], 16
160 ; MIPS32: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_SEXT]](s32)
161 ; MIPS32: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC]](s16)
162 ; MIPS32: $v0 = COPY [[SEXT]](s32)
163 ; MIPS32: RetRA implicit $v0
168 define zeroext i16 @zext_arg_i16(i16 zeroext %a) {
169 ; MIPS32-LABEL: name: zext_arg_i16
170 ; MIPS32: bb.1.entry:
171 ; MIPS32: liveins: $a0
172 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
173 ; MIPS32: [[ASSERT_ZEXT:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[COPY]], 16
174 ; MIPS32: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_ZEXT]](s32)
175 ; MIPS32: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC]](s16)
176 ; MIPS32: $v0 = COPY [[ZEXT]](s32)
177 ; MIPS32: RetRA implicit $v0
182 define i16 @aext_arg_i16(i16 %a) {
183 ; MIPS32-LABEL: name: aext_arg_i16
184 ; MIPS32: bb.1.entry:
185 ; MIPS32: liveins: $a0
186 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
187 ; MIPS32: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)
188 ; MIPS32: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s16)
189 ; MIPS32: $v0 = COPY [[ANYEXT]](s32)
190 ; MIPS32: RetRA implicit $v0
195 declare signext i16 @sext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 %a)
196 declare zeroext i16 @zext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 %a)
197 declare i16 @aext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 %a)
199 define signext i16 @call_sext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 signext %a) {
200 ; MIPS32-LABEL: name: call_sext_stack_arg_i16
201 ; MIPS32: bb.1.entry:
202 ; MIPS32: liveins: $a0, $a1, $a2, $a3
203 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
204 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
205 ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
206 ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
207 ; MIPS32: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0
208 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)
209 ; MIPS32: [[ASSERT_SEXT:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[LOAD]], 16
210 ; MIPS32: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_SEXT]](s32)
211 ; MIPS32: ADJCALLSTACKDOWN 24, 0, implicit-def $sp, implicit $sp
212 ; MIPS32: $a0 = COPY [[COPY]](s32)
213 ; MIPS32: $a1 = COPY [[COPY1]](s32)
214 ; MIPS32: $a2 = COPY [[COPY2]](s32)
215 ; MIPS32: $a3 = COPY [[COPY3]](s32)
216 ; MIPS32: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC]](s16)
217 ; MIPS32: [[COPY4:%[0-9]+]]:_(p0) = COPY $sp
218 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
219 ; MIPS32: [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY4]], [[C]](s32)
220 ; MIPS32: G_STORE [[SEXT]](s32), [[PTR_ADD]](p0) :: (store (s32) into stack + 16, align 8)
221 ; MIPS32: JAL @sext_stack_arg_i16, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
222 ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v0
223 ; MIPS32: [[ASSERT_SEXT1:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[COPY5]], 16
224 ; MIPS32: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_SEXT1]](s32)
225 ; MIPS32: ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp
226 ; MIPS32: [[SEXT1:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC1]](s16)
227 ; MIPS32: $v0 = COPY [[SEXT1]](s32)
228 ; MIPS32: RetRA implicit $v0
230 %call = call signext i16 @sext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 signext %a)
234 define zeroext i16 @call_zext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 zeroext %a) {
235 ; MIPS32-LABEL: name: call_zext_stack_arg_i16
236 ; MIPS32: bb.1.entry:
237 ; MIPS32: liveins: $a0, $a1, $a2, $a3
238 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
239 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
240 ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
241 ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
242 ; MIPS32: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0
243 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)
244 ; MIPS32: [[ASSERT_ZEXT:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[LOAD]], 16
245 ; MIPS32: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_ZEXT]](s32)
246 ; MIPS32: ADJCALLSTACKDOWN 24, 0, implicit-def $sp, implicit $sp
247 ; MIPS32: $a0 = COPY [[COPY]](s32)
248 ; MIPS32: $a1 = COPY [[COPY1]](s32)
249 ; MIPS32: $a2 = COPY [[COPY2]](s32)
250 ; MIPS32: $a3 = COPY [[COPY3]](s32)
251 ; MIPS32: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC]](s16)
252 ; MIPS32: [[COPY4:%[0-9]+]]:_(p0) = COPY $sp
253 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
254 ; MIPS32: [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY4]], [[C]](s32)
255 ; MIPS32: G_STORE [[ZEXT]](s32), [[PTR_ADD]](p0) :: (store (s32) into stack + 16, align 8)
256 ; MIPS32: JAL @zext_stack_arg_i16, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
257 ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v0
258 ; MIPS32: [[ASSERT_ZEXT1:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[COPY5]], 16
259 ; MIPS32: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_ZEXT1]](s32)
260 ; MIPS32: ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp
261 ; MIPS32: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC1]](s16)
262 ; MIPS32: $v0 = COPY [[ZEXT1]](s32)
263 ; MIPS32: RetRA implicit $v0
265 %call = call zeroext i16 @zext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 zeroext %a)
269 define i16 @call_aext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 %a) {
270 ; MIPS32-LABEL: name: call_aext_stack_arg_i16
271 ; MIPS32: bb.1.entry:
272 ; MIPS32: liveins: $a0, $a1, $a2, $a3
273 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
274 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
275 ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
276 ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
277 ; MIPS32: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0
278 ; MIPS32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)
279 ; MIPS32: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
280 ; MIPS32: ADJCALLSTACKDOWN 24, 0, implicit-def $sp, implicit $sp
281 ; MIPS32: $a0 = COPY [[COPY]](s32)
282 ; MIPS32: $a1 = COPY [[COPY1]](s32)
283 ; MIPS32: $a2 = COPY [[COPY2]](s32)
284 ; MIPS32: $a3 = COPY [[COPY3]](s32)
285 ; MIPS32: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s16)
286 ; MIPS32: [[COPY4:%[0-9]+]]:_(p0) = COPY $sp
287 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
288 ; MIPS32: [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY4]], [[C]](s32)
289 ; MIPS32: G_STORE [[ANYEXT]](s32), [[PTR_ADD]](p0) :: (store (s32) into stack + 16, align 8)
290 ; MIPS32: JAL @aext_stack_arg_i16, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
291 ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v0
292 ; MIPS32: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY5]](s32)
293 ; MIPS32: ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp
294 ; MIPS32: [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC1]](s16)
295 ; MIPS32: $v0 = COPY [[ANYEXT1]](s32)
296 ; MIPS32: RetRA implicit $v0
298 %call = call i16 @aext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 %a)