1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32
5 define void @sdiv_i8() {entry: ret void}
6 define void @sdiv_i16() {entry: ret void}
7 define void @sdiv_i32() {entry: ret void}
8 define void @sdiv_i64() {entry: ret void}
9 define void @srem_i8() {entry: ret void}
10 define void @srem_i16() {entry: ret void}
11 define void @srem_i32() {entry: ret void}
12 define void @srem_i64() {entry: ret void}
13 define void @udiv_i8() {entry: ret void}
14 define void @udiv_i16() {entry: ret void}
15 define void @udiv_i32() {entry: ret void}
16 define void @udiv_i64() {entry: ret void}
17 define void @urem_i8() {entry: ret void}
18 define void @urem_i16() {entry: ret void}
19 define void @urem_i32() {entry: ret void}
20 define void @urem_i64() {entry: ret void}
26 tracksRegLiveness: true
31 ; MIPS32-LABEL: name: sdiv_i8
32 ; MIPS32: liveins: $a0, $a1
33 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
34 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
35 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
36 ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)
37 ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
38 ; MIPS32: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)
39 ; MIPS32: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)
40 ; MIPS32: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[ASHR]], [[ASHR1]]
41 ; MIPS32: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[SDIV]], [[C]](s32)
42 ; MIPS32: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SHL2]], [[C]](s32)
43 ; MIPS32: $v0 = COPY [[ASHR2]](s32)
44 ; MIPS32: RetRA implicit $v0
46 %0:_(s8) = G_TRUNC %2(s32)
48 %1:_(s8) = G_TRUNC %3(s32)
49 %4:_(s8) = G_SDIV %1, %0
50 %5:_(s32) = G_SEXT %4(s8)
58 tracksRegLiveness: true
63 ; MIPS32-LABEL: name: sdiv_i16
64 ; MIPS32: liveins: $a0, $a1
65 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
66 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
67 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
68 ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)
69 ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
70 ; MIPS32: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)
71 ; MIPS32: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)
72 ; MIPS32: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[ASHR]], [[ASHR1]]
73 ; MIPS32: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[SDIV]], [[C]](s32)
74 ; MIPS32: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SHL2]], [[C]](s32)
75 ; MIPS32: $v0 = COPY [[ASHR2]](s32)
76 ; MIPS32: RetRA implicit $v0
78 %0:_(s16) = G_TRUNC %2(s32)
80 %1:_(s16) = G_TRUNC %3(s32)
81 %4:_(s16) = G_SDIV %1, %0
82 %5:_(s32) = G_SEXT %4(s16)
90 tracksRegLiveness: true
95 ; MIPS32-LABEL: name: sdiv_i32
96 ; MIPS32: liveins: $a0, $a1
97 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
98 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
99 ; MIPS32: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[COPY1]], [[COPY]]
100 ; MIPS32: $v0 = COPY [[SDIV]](s32)
101 ; MIPS32: RetRA implicit $v0
104 %2:_(s32) = G_SDIV %1, %0
112 tracksRegLiveness: true
115 liveins: $a0, $a1, $a2, $a3
117 ; MIPS32-LABEL: name: sdiv_i64
118 ; MIPS32: liveins: $a0, $a1, $a2, $a3
119 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
120 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
121 ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
122 ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
123 ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
124 ; MIPS32: $a0 = COPY [[COPY2]](s32)
125 ; MIPS32: $a1 = COPY [[COPY3]](s32)
126 ; MIPS32: $a2 = COPY [[COPY]](s32)
127 ; MIPS32: $a3 = COPY [[COPY1]](s32)
128 ; MIPS32: JAL &__divdi3, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1
129 ; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
130 ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v1
131 ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
132 ; MIPS32: $v0 = COPY [[COPY4]](s32)
133 ; MIPS32: $v1 = COPY [[COPY5]](s32)
134 ; MIPS32: RetRA implicit $v0, implicit $v1
137 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
140 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
141 %6:_(s64) = G_SDIV %1, %0
142 %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)
145 RetRA implicit $v0, implicit $v1
151 tracksRegLiveness: true
156 ; MIPS32-LABEL: name: srem_i8
157 ; MIPS32: liveins: $a0, $a1
158 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
159 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
160 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
161 ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)
162 ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
163 ; MIPS32: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)
164 ; MIPS32: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)
165 ; MIPS32: [[SREM:%[0-9]+]]:_(s32) = G_SREM [[ASHR]], [[ASHR1]]
166 ; MIPS32: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[SREM]], [[C]](s32)
167 ; MIPS32: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SHL2]], [[C]](s32)
168 ; MIPS32: $v0 = COPY [[ASHR2]](s32)
169 ; MIPS32: RetRA implicit $v0
171 %0:_(s8) = G_TRUNC %2(s32)
173 %1:_(s8) = G_TRUNC %3(s32)
174 %4:_(s8) = G_SREM %1, %0
175 %5:_(s32) = G_SEXT %4(s8)
183 tracksRegLiveness: true
188 ; MIPS32-LABEL: name: srem_i16
189 ; MIPS32: liveins: $a0, $a1
190 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
191 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
192 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
193 ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)
194 ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
195 ; MIPS32: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)
196 ; MIPS32: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)
197 ; MIPS32: [[SREM:%[0-9]+]]:_(s32) = G_SREM [[ASHR]], [[ASHR1]]
198 ; MIPS32: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[SREM]], [[C]](s32)
199 ; MIPS32: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SHL2]], [[C]](s32)
200 ; MIPS32: $v0 = COPY [[ASHR2]](s32)
201 ; MIPS32: RetRA implicit $v0
203 %0:_(s16) = G_TRUNC %2(s32)
205 %1:_(s16) = G_TRUNC %3(s32)
206 %4:_(s16) = G_SREM %1, %0
207 %5:_(s32) = G_SEXT %4(s16)
215 tracksRegLiveness: true
220 ; MIPS32-LABEL: name: srem_i32
221 ; MIPS32: liveins: $a0, $a1
222 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
223 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
224 ; MIPS32: [[SREM:%[0-9]+]]:_(s32) = G_SREM [[COPY1]], [[COPY]]
225 ; MIPS32: $v0 = COPY [[SREM]](s32)
226 ; MIPS32: RetRA implicit $v0
229 %2:_(s32) = G_SREM %1, %0
237 tracksRegLiveness: true
240 liveins: $a0, $a1, $a2, $a3
242 ; MIPS32-LABEL: name: srem_i64
243 ; MIPS32: liveins: $a0, $a1, $a2, $a3
244 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
245 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
246 ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
247 ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
248 ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
249 ; MIPS32: $a0 = COPY [[COPY2]](s32)
250 ; MIPS32: $a1 = COPY [[COPY3]](s32)
251 ; MIPS32: $a2 = COPY [[COPY]](s32)
252 ; MIPS32: $a3 = COPY [[COPY1]](s32)
253 ; MIPS32: JAL &__moddi3, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1
254 ; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
255 ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v1
256 ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
257 ; MIPS32: $v0 = COPY [[COPY4]](s32)
258 ; MIPS32: $v1 = COPY [[COPY5]](s32)
259 ; MIPS32: RetRA implicit $v0, implicit $v1
262 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
265 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
266 %6:_(s64) = G_SREM %1, %0
267 %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)
270 RetRA implicit $v0, implicit $v1
276 tracksRegLiveness: true
281 ; MIPS32-LABEL: name: udiv_i8
282 ; MIPS32: liveins: $a0, $a1
283 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
284 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
285 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
286 ; MIPS32: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
287 ; MIPS32: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
288 ; MIPS32: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[AND]], [[AND1]]
289 ; MIPS32: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
290 ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[UDIV]], [[C1]](s32)
291 ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C1]](s32)
292 ; MIPS32: $v0 = COPY [[ASHR]](s32)
293 ; MIPS32: RetRA implicit $v0
295 %0:_(s8) = G_TRUNC %2(s32)
297 %1:_(s8) = G_TRUNC %3(s32)
298 %4:_(s8) = G_UDIV %1, %0
299 %5:_(s32) = G_SEXT %4(s8)
307 tracksRegLiveness: true
312 ; MIPS32-LABEL: name: udiv_i16
313 ; MIPS32: liveins: $a0, $a1
314 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
315 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
316 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
317 ; MIPS32: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
318 ; MIPS32: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
319 ; MIPS32: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[AND]], [[AND1]]
320 ; MIPS32: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
321 ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[UDIV]], [[C1]](s32)
322 ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C1]](s32)
323 ; MIPS32: $v0 = COPY [[ASHR]](s32)
324 ; MIPS32: RetRA implicit $v0
326 %0:_(s16) = G_TRUNC %2(s32)
328 %1:_(s16) = G_TRUNC %3(s32)
329 %4:_(s16) = G_UDIV %1, %0
330 %5:_(s32) = G_SEXT %4(s16)
338 tracksRegLiveness: true
343 ; MIPS32-LABEL: name: udiv_i32
344 ; MIPS32: liveins: $a0, $a1
345 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
346 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
347 ; MIPS32: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[COPY1]], [[COPY]]
348 ; MIPS32: $v0 = COPY [[UDIV]](s32)
349 ; MIPS32: RetRA implicit $v0
352 %2:_(s32) = G_UDIV %1, %0
360 tracksRegLiveness: true
363 liveins: $a0, $a1, $a2, $a3
365 ; MIPS32-LABEL: name: udiv_i64
366 ; MIPS32: liveins: $a0, $a1, $a2, $a3
367 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
368 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
369 ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
370 ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
371 ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
372 ; MIPS32: $a0 = COPY [[COPY2]](s32)
373 ; MIPS32: $a1 = COPY [[COPY3]](s32)
374 ; MIPS32: $a2 = COPY [[COPY]](s32)
375 ; MIPS32: $a3 = COPY [[COPY1]](s32)
376 ; MIPS32: JAL &__udivdi3, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1
377 ; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
378 ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v1
379 ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
380 ; MIPS32: $v0 = COPY [[COPY4]](s32)
381 ; MIPS32: $v1 = COPY [[COPY5]](s32)
382 ; MIPS32: RetRA implicit $v0, implicit $v1
385 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
388 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
389 %6:_(s64) = G_UDIV %1, %0
390 %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)
393 RetRA implicit $v0, implicit $v1
399 tracksRegLiveness: true
404 ; MIPS32-LABEL: name: urem_i8
405 ; MIPS32: liveins: $a0, $a1
406 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
407 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
408 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
409 ; MIPS32: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
410 ; MIPS32: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
411 ; MIPS32: [[UREM:%[0-9]+]]:_(s32) = G_UREM [[AND]], [[AND1]]
412 ; MIPS32: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
413 ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[UREM]], [[C1]](s32)
414 ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C1]](s32)
415 ; MIPS32: $v0 = COPY [[ASHR]](s32)
416 ; MIPS32: RetRA implicit $v0
418 %0:_(s8) = G_TRUNC %2(s32)
420 %1:_(s8) = G_TRUNC %3(s32)
421 %4:_(s8) = G_UREM %1, %0
422 %5:_(s32) = G_SEXT %4(s8)
430 tracksRegLiveness: true
435 ; MIPS32-LABEL: name: urem_i16
436 ; MIPS32: liveins: $a0, $a1
437 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
438 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
439 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
440 ; MIPS32: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
441 ; MIPS32: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
442 ; MIPS32: [[UREM:%[0-9]+]]:_(s32) = G_UREM [[AND]], [[AND1]]
443 ; MIPS32: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
444 ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[UREM]], [[C1]](s32)
445 ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C1]](s32)
446 ; MIPS32: $v0 = COPY [[ASHR]](s32)
447 ; MIPS32: RetRA implicit $v0
449 %0:_(s16) = G_TRUNC %2(s32)
451 %1:_(s16) = G_TRUNC %3(s32)
452 %4:_(s16) = G_UREM %1, %0
453 %5:_(s32) = G_SEXT %4(s16)
461 tracksRegLiveness: true
466 ; MIPS32-LABEL: name: urem_i32
467 ; MIPS32: liveins: $a0, $a1
468 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
469 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
470 ; MIPS32: [[UREM:%[0-9]+]]:_(s32) = G_UREM [[COPY1]], [[COPY]]
471 ; MIPS32: $v0 = COPY [[UREM]](s32)
472 ; MIPS32: RetRA implicit $v0
475 %2:_(s32) = G_UREM %1, %0
483 tracksRegLiveness: true
486 liveins: $a0, $a1, $a2, $a3
488 ; MIPS32-LABEL: name: urem_i64
489 ; MIPS32: liveins: $a0, $a1, $a2, $a3
490 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
491 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
492 ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
493 ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
494 ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
495 ; MIPS32: $a0 = COPY [[COPY2]](s32)
496 ; MIPS32: $a1 = COPY [[COPY3]](s32)
497 ; MIPS32: $a2 = COPY [[COPY]](s32)
498 ; MIPS32: $a3 = COPY [[COPY1]](s32)
499 ; MIPS32: JAL &__umoddi3, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1
500 ; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
501 ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v1
502 ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
503 ; MIPS32: $v0 = COPY [[COPY4]](s32)
504 ; MIPS32: $v1 = COPY [[COPY5]](s32)
505 ; MIPS32: RetRA implicit $v0, implicit $v1
508 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
511 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
512 %6:_(s64) = G_UREM %1, %0
513 %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)
516 RetRA implicit $v0, implicit $v1