1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=mipsel-linux-gnu -mcpu=mips32r5 -mattr=+msa,+fp64,+nan2008 -run-pass=regbankselect -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=P5600
5 define void @sdiv_v16i8(ptr %a, ptr %b, ptr %c) { entry: ret void }
6 define void @sdiv_v8i16(ptr %a, ptr %b, ptr %c) { entry: ret void }
7 define void @sdiv_v4i32(ptr %a, ptr %b, ptr %c) { entry: ret void }
8 define void @sdiv_v2i64(ptr %a, ptr %b, ptr %c) { entry: ret void }
10 define void @srem_v16i8(ptr %a, ptr %b, ptr %c) { entry: ret void }
11 define void @srem_v8i16(ptr %a, ptr %b, ptr %c) { entry: ret void }
12 define void @srem_v4i32(ptr %a, ptr %b, ptr %c) { entry: ret void }
13 define void @srem_v2i64(ptr %a, ptr %b, ptr %c) { entry: ret void }
15 define void @udiv_v16u8(ptr %a, ptr %b, ptr %c) { entry: ret void }
16 define void @udiv_v8u16(ptr %a, ptr %b, ptr %c) { entry: ret void }
17 define void @udiv_v4u32(ptr %a, ptr %b, ptr %c) { entry: ret void }
18 define void @udiv_v2u64(ptr %a, ptr %b, ptr %c) { entry: ret void }
20 define void @urem_v16u8(ptr %a, ptr %b, ptr %c) { entry: ret void }
21 define void @urem_v8u16(ptr %a, ptr %b, ptr %c) { entry: ret void }
22 define void @urem_v4u32(ptr %a, ptr %b, ptr %c) { entry: ret void }
23 define void @urem_v2u64(ptr %a, ptr %b, ptr %c) { entry: ret void }
30 tracksRegLiveness: true
33 liveins: $a0, $a1, $a2
35 ; P5600-LABEL: name: sdiv_v16i8
36 ; P5600: liveins: $a0, $a1, $a2
37 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
38 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
39 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
40 ; P5600: [[LOAD:%[0-9]+]]:fprb(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a)
41 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b)
42 ; P5600: [[SDIV:%[0-9]+]]:fprb(<16 x s8>) = G_SDIV [[LOAD]], [[LOAD1]]
43 ; P5600: G_STORE [[SDIV]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c)
48 %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a)
49 %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b)
50 %5:_(<16 x s8>) = G_SDIV %3, %4
51 G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c)
59 tracksRegLiveness: true
62 liveins: $a0, $a1, $a2
64 ; P5600-LABEL: name: sdiv_v8i16
65 ; P5600: liveins: $a0, $a1, $a2
66 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
67 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
68 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
69 ; P5600: [[LOAD:%[0-9]+]]:fprb(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a)
70 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b)
71 ; P5600: [[SDIV:%[0-9]+]]:fprb(<8 x s16>) = G_SDIV [[LOAD]], [[LOAD1]]
72 ; P5600: G_STORE [[SDIV]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c)
77 %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a)
78 %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b)
79 %5:_(<8 x s16>) = G_SDIV %3, %4
80 G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c)
88 tracksRegLiveness: true
91 liveins: $a0, $a1, $a2
93 ; P5600-LABEL: name: sdiv_v4i32
94 ; P5600: liveins: $a0, $a1, $a2
95 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
96 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
97 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
98 ; P5600: [[LOAD:%[0-9]+]]:fprb(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a)
99 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b)
100 ; P5600: [[SDIV:%[0-9]+]]:fprb(<4 x s32>) = G_SDIV [[LOAD]], [[LOAD1]]
101 ; P5600: G_STORE [[SDIV]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c)
106 %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a)
107 %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b)
108 %5:_(<4 x s32>) = G_SDIV %3, %4
109 G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c)
117 tracksRegLiveness: true
120 liveins: $a0, $a1, $a2
122 ; P5600-LABEL: name: sdiv_v2i64
123 ; P5600: liveins: $a0, $a1, $a2
124 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
125 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
126 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
127 ; P5600: [[LOAD:%[0-9]+]]:fprb(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a)
128 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b)
129 ; P5600: [[SDIV:%[0-9]+]]:fprb(<2 x s64>) = G_SDIV [[LOAD]], [[LOAD1]]
130 ; P5600: G_STORE [[SDIV]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c)
135 %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a)
136 %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b)
137 %5:_(<2 x s64>) = G_SDIV %3, %4
138 G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c)
146 tracksRegLiveness: true
149 liveins: $a0, $a1, $a2
151 ; P5600-LABEL: name: srem_v16i8
152 ; P5600: liveins: $a0, $a1, $a2
153 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
154 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
155 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
156 ; P5600: [[LOAD:%[0-9]+]]:fprb(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a)
157 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b)
158 ; P5600: [[SREM:%[0-9]+]]:fprb(<16 x s8>) = G_SREM [[LOAD]], [[LOAD1]]
159 ; P5600: G_STORE [[SREM]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c)
164 %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a)
165 %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b)
166 %5:_(<16 x s8>) = G_SREM %3, %4
167 G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c)
175 tracksRegLiveness: true
178 liveins: $a0, $a1, $a2
180 ; P5600-LABEL: name: srem_v8i16
181 ; P5600: liveins: $a0, $a1, $a2
182 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
183 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
184 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
185 ; P5600: [[LOAD:%[0-9]+]]:fprb(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a)
186 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b)
187 ; P5600: [[SREM:%[0-9]+]]:fprb(<8 x s16>) = G_SREM [[LOAD]], [[LOAD1]]
188 ; P5600: G_STORE [[SREM]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c)
193 %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a)
194 %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b)
195 %5:_(<8 x s16>) = G_SREM %3, %4
196 G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c)
204 tracksRegLiveness: true
207 liveins: $a0, $a1, $a2
209 ; P5600-LABEL: name: srem_v4i32
210 ; P5600: liveins: $a0, $a1, $a2
211 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
212 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
213 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
214 ; P5600: [[LOAD:%[0-9]+]]:fprb(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a)
215 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b)
216 ; P5600: [[SREM:%[0-9]+]]:fprb(<4 x s32>) = G_SREM [[LOAD]], [[LOAD1]]
217 ; P5600: G_STORE [[SREM]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c)
222 %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a)
223 %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b)
224 %5:_(<4 x s32>) = G_SREM %3, %4
225 G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c)
233 tracksRegLiveness: true
236 liveins: $a0, $a1, $a2
238 ; P5600-LABEL: name: srem_v2i64
239 ; P5600: liveins: $a0, $a1, $a2
240 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
241 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
242 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
243 ; P5600: [[LOAD:%[0-9]+]]:fprb(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a)
244 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b)
245 ; P5600: [[SREM:%[0-9]+]]:fprb(<2 x s64>) = G_SREM [[LOAD]], [[LOAD1]]
246 ; P5600: G_STORE [[SREM]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c)
251 %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a)
252 %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b)
253 %5:_(<2 x s64>) = G_SREM %3, %4
254 G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c)
262 tracksRegLiveness: true
265 liveins: $a0, $a1, $a2
267 ; P5600-LABEL: name: udiv_v16u8
268 ; P5600: liveins: $a0, $a1, $a2
269 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
270 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
271 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
272 ; P5600: [[LOAD:%[0-9]+]]:fprb(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a)
273 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b)
274 ; P5600: [[UDIV:%[0-9]+]]:fprb(<16 x s8>) = G_UDIV [[LOAD]], [[LOAD1]]
275 ; P5600: G_STORE [[UDIV]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c)
280 %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a)
281 %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b)
282 %5:_(<16 x s8>) = G_UDIV %3, %4
283 G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c)
291 tracksRegLiveness: true
294 liveins: $a0, $a1, $a2
296 ; P5600-LABEL: name: udiv_v8u16
297 ; P5600: liveins: $a0, $a1, $a2
298 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
299 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
300 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
301 ; P5600: [[LOAD:%[0-9]+]]:fprb(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a)
302 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b)
303 ; P5600: [[UDIV:%[0-9]+]]:fprb(<8 x s16>) = G_UDIV [[LOAD]], [[LOAD1]]
304 ; P5600: G_STORE [[UDIV]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c)
309 %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a)
310 %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b)
311 %5:_(<8 x s16>) = G_UDIV %3, %4
312 G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c)
320 tracksRegLiveness: true
323 liveins: $a0, $a1, $a2
325 ; P5600-LABEL: name: udiv_v4u32
326 ; P5600: liveins: $a0, $a1, $a2
327 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
328 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
329 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
330 ; P5600: [[LOAD:%[0-9]+]]:fprb(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a)
331 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b)
332 ; P5600: [[UDIV:%[0-9]+]]:fprb(<4 x s32>) = G_UDIV [[LOAD]], [[LOAD1]]
333 ; P5600: G_STORE [[UDIV]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c)
338 %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a)
339 %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b)
340 %5:_(<4 x s32>) = G_UDIV %3, %4
341 G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c)
349 tracksRegLiveness: true
352 liveins: $a0, $a1, $a2
354 ; P5600-LABEL: name: udiv_v2u64
355 ; P5600: liveins: $a0, $a1, $a2
356 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
357 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
358 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
359 ; P5600: [[LOAD:%[0-9]+]]:fprb(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a)
360 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b)
361 ; P5600: [[UDIV:%[0-9]+]]:fprb(<2 x s64>) = G_UDIV [[LOAD]], [[LOAD1]]
362 ; P5600: G_STORE [[UDIV]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c)
367 %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a)
368 %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b)
369 %5:_(<2 x s64>) = G_UDIV %3, %4
370 G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c)
378 tracksRegLiveness: true
381 liveins: $a0, $a1, $a2
383 ; P5600-LABEL: name: urem_v16u8
384 ; P5600: liveins: $a0, $a1, $a2
385 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
386 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
387 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
388 ; P5600: [[LOAD:%[0-9]+]]:fprb(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a)
389 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b)
390 ; P5600: [[UREM:%[0-9]+]]:fprb(<16 x s8>) = G_UREM [[LOAD]], [[LOAD1]]
391 ; P5600: G_STORE [[UREM]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c)
396 %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a)
397 %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b)
398 %5:_(<16 x s8>) = G_UREM %3, %4
399 G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c)
407 tracksRegLiveness: true
410 liveins: $a0, $a1, $a2
412 ; P5600-LABEL: name: urem_v8u16
413 ; P5600: liveins: $a0, $a1, $a2
414 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
415 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
416 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
417 ; P5600: [[LOAD:%[0-9]+]]:fprb(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a)
418 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b)
419 ; P5600: [[UREM:%[0-9]+]]:fprb(<8 x s16>) = G_UREM [[LOAD]], [[LOAD1]]
420 ; P5600: G_STORE [[UREM]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c)
425 %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a)
426 %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b)
427 %5:_(<8 x s16>) = G_UREM %3, %4
428 G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c)
436 tracksRegLiveness: true
439 liveins: $a0, $a1, $a2
441 ; P5600-LABEL: name: urem_v4u32
442 ; P5600: liveins: $a0, $a1, $a2
443 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
444 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
445 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
446 ; P5600: [[LOAD:%[0-9]+]]:fprb(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a)
447 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b)
448 ; P5600: [[UREM:%[0-9]+]]:fprb(<4 x s32>) = G_UREM [[LOAD]], [[LOAD1]]
449 ; P5600: G_STORE [[UREM]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c)
454 %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a)
455 %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b)
456 %5:_(<4 x s32>) = G_UREM %3, %4
457 G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c)
465 tracksRegLiveness: true
468 liveins: $a0, $a1, $a2
470 ; P5600-LABEL: name: urem_v2u64
471 ; P5600: liveins: $a0, $a1, $a2
472 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0
473 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1
474 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2
475 ; P5600: [[LOAD:%[0-9]+]]:fprb(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a)
476 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b)
477 ; P5600: [[UREM:%[0-9]+]]:fprb(<2 x s64>) = G_UREM [[LOAD]], [[LOAD1]]
478 ; P5600: G_STORE [[UREM]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c)
483 %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a)
484 %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b)
485 %5:_(<2 x s64>) = G_UREM %3, %4
486 G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c)