Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / Mips / GlobalISel / legalizer / rem_and_div_vec.mir
blob7d58e1ad132b42f3aae0aa5e1b9b3e524a903954
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=legalizer -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=P5600
3 --- |
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 }
25 ...
26 ---
27 name:            sdiv_v16i8
28 alignment:       4
29 tracksRegLiveness: true
30 body:             |
31   bb.1.entry:
32     liveins: $a0, $a1, $a2
34     ; P5600-LABEL: name: sdiv_v16i8
35     ; P5600: liveins: $a0, $a1, $a2
36     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
37     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
38     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
39     ; P5600: [[LOAD:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a)
40     ; P5600: [[LOAD1:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b)
41     ; P5600: [[SDIV:%[0-9]+]]:_(<16 x s8>) = G_SDIV [[LOAD]], [[LOAD1]]
42     ; P5600: G_STORE [[SDIV]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c)
43     ; P5600: RetRA
44     %0:_(p0) = COPY $a0
45     %1:_(p0) = COPY $a1
46     %2:_(p0) = COPY $a2
47     %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a)
48     %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b)
49     %5:_(<16 x s8>) = G_SDIV %3, %4
50     G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c)
51     RetRA
53 ...
54 ---
55 name:            sdiv_v8i16
56 alignment:       4
57 tracksRegLiveness: true
58 body:             |
59   bb.1.entry:
60     liveins: $a0, $a1, $a2
62     ; P5600-LABEL: name: sdiv_v8i16
63     ; P5600: liveins: $a0, $a1, $a2
64     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
65     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
66     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
67     ; P5600: [[LOAD:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a)
68     ; P5600: [[LOAD1:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b)
69     ; P5600: [[SDIV:%[0-9]+]]:_(<8 x s16>) = G_SDIV [[LOAD]], [[LOAD1]]
70     ; P5600: G_STORE [[SDIV]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c)
71     ; P5600: RetRA
72     %0:_(p0) = COPY $a0
73     %1:_(p0) = COPY $a1
74     %2:_(p0) = COPY $a2
75     %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a)
76     %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b)
77     %5:_(<8 x s16>) = G_SDIV %3, %4
78     G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c)
79     RetRA
81 ...
82 ---
83 name:            sdiv_v4i32
84 alignment:       4
85 tracksRegLiveness: true
86 body:             |
87   bb.1.entry:
88     liveins: $a0, $a1, $a2
90     ; P5600-LABEL: name: sdiv_v4i32
91     ; P5600: liveins: $a0, $a1, $a2
92     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
93     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
94     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
95     ; P5600: [[LOAD:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a)
96     ; P5600: [[LOAD1:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b)
97     ; P5600: [[SDIV:%[0-9]+]]:_(<4 x s32>) = G_SDIV [[LOAD]], [[LOAD1]]
98     ; P5600: G_STORE [[SDIV]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c)
99     ; P5600: RetRA
100     %0:_(p0) = COPY $a0
101     %1:_(p0) = COPY $a1
102     %2:_(p0) = COPY $a2
103     %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a)
104     %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b)
105     %5:_(<4 x s32>) = G_SDIV %3, %4
106     G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c)
107     RetRA
111 name:            sdiv_v2i64
112 alignment:       4
113 tracksRegLiveness: true
114 body:             |
115   bb.1.entry:
116     liveins: $a0, $a1, $a2
118     ; P5600-LABEL: name: sdiv_v2i64
119     ; P5600: liveins: $a0, $a1, $a2
120     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
121     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
122     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
123     ; P5600: [[LOAD:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a)
124     ; P5600: [[LOAD1:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b)
125     ; P5600: [[SDIV:%[0-9]+]]:_(<2 x s64>) = G_SDIV [[LOAD]], [[LOAD1]]
126     ; P5600: G_STORE [[SDIV]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c)
127     ; P5600: RetRA
128     %0:_(p0) = COPY $a0
129     %1:_(p0) = COPY $a1
130     %2:_(p0) = COPY $a2
131     %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a)
132     %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b)
133     %5:_(<2 x s64>) = G_SDIV %3, %4
134     G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c)
135     RetRA
139 name:            srem_v16i8
140 alignment:       4
141 tracksRegLiveness: true
142 body:             |
143   bb.1.entry:
144     liveins: $a0, $a1, $a2
146     ; P5600-LABEL: name: srem_v16i8
147     ; P5600: liveins: $a0, $a1, $a2
148     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
149     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
150     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
151     ; P5600: [[LOAD:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a)
152     ; P5600: [[LOAD1:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b)
153     ; P5600: [[SREM:%[0-9]+]]:_(<16 x s8>) = G_SREM [[LOAD]], [[LOAD1]]
154     ; P5600: G_STORE [[SREM]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c)
155     ; P5600: RetRA
156     %0:_(p0) = COPY $a0
157     %1:_(p0) = COPY $a1
158     %2:_(p0) = COPY $a2
159     %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a)
160     %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b)
161     %5:_(<16 x s8>) = G_SREM %3, %4
162     G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c)
163     RetRA
167 name:            srem_v8i16
168 alignment:       4
169 tracksRegLiveness: true
170 body:             |
171   bb.1.entry:
172     liveins: $a0, $a1, $a2
174     ; P5600-LABEL: name: srem_v8i16
175     ; P5600: liveins: $a0, $a1, $a2
176     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
177     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
178     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
179     ; P5600: [[LOAD:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a)
180     ; P5600: [[LOAD1:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b)
181     ; P5600: [[SREM:%[0-9]+]]:_(<8 x s16>) = G_SREM [[LOAD]], [[LOAD1]]
182     ; P5600: G_STORE [[SREM]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c)
183     ; P5600: RetRA
184     %0:_(p0) = COPY $a0
185     %1:_(p0) = COPY $a1
186     %2:_(p0) = COPY $a2
187     %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a)
188     %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b)
189     %5:_(<8 x s16>) = G_SREM %3, %4
190     G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c)
191     RetRA
195 name:            srem_v4i32
196 alignment:       4
197 tracksRegLiveness: true
198 body:             |
199   bb.1.entry:
200     liveins: $a0, $a1, $a2
202     ; P5600-LABEL: name: srem_v4i32
203     ; P5600: liveins: $a0, $a1, $a2
204     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
205     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
206     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
207     ; P5600: [[LOAD:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a)
208     ; P5600: [[LOAD1:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b)
209     ; P5600: [[SREM:%[0-9]+]]:_(<4 x s32>) = G_SREM [[LOAD]], [[LOAD1]]
210     ; P5600: G_STORE [[SREM]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c)
211     ; P5600: RetRA
212     %0:_(p0) = COPY $a0
213     %1:_(p0) = COPY $a1
214     %2:_(p0) = COPY $a2
215     %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a)
216     %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b)
217     %5:_(<4 x s32>) = G_SREM %3, %4
218     G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c)
219     RetRA
223 name:            srem_v2i64
224 alignment:       4
225 tracksRegLiveness: true
226 body:             |
227   bb.1.entry:
228     liveins: $a0, $a1, $a2
230     ; P5600-LABEL: name: srem_v2i64
231     ; P5600: liveins: $a0, $a1, $a2
232     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
233     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
234     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
235     ; P5600: [[LOAD:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a)
236     ; P5600: [[LOAD1:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b)
237     ; P5600: [[SREM:%[0-9]+]]:_(<2 x s64>) = G_SREM [[LOAD]], [[LOAD1]]
238     ; P5600: G_STORE [[SREM]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c)
239     ; P5600: RetRA
240     %0:_(p0) = COPY $a0
241     %1:_(p0) = COPY $a1
242     %2:_(p0) = COPY $a2
243     %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a)
244     %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b)
245     %5:_(<2 x s64>) = G_SREM %3, %4
246     G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c)
247     RetRA
251 name:            udiv_v16u8
252 alignment:       4
253 tracksRegLiveness: true
254 body:             |
255   bb.1.entry:
256     liveins: $a0, $a1, $a2
258     ; P5600-LABEL: name: udiv_v16u8
259     ; P5600: liveins: $a0, $a1, $a2
260     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
261     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
262     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
263     ; P5600: [[LOAD:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a)
264     ; P5600: [[LOAD1:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b)
265     ; P5600: [[UDIV:%[0-9]+]]:_(<16 x s8>) = G_UDIV [[LOAD]], [[LOAD1]]
266     ; P5600: G_STORE [[UDIV]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c)
267     ; P5600: RetRA
268     %0:_(p0) = COPY $a0
269     %1:_(p0) = COPY $a1
270     %2:_(p0) = COPY $a2
271     %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a)
272     %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b)
273     %5:_(<16 x s8>) = G_UDIV %3, %4
274     G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c)
275     RetRA
279 name:            udiv_v8u16
280 alignment:       4
281 tracksRegLiveness: true
282 body:             |
283   bb.1.entry:
284     liveins: $a0, $a1, $a2
286     ; P5600-LABEL: name: udiv_v8u16
287     ; P5600: liveins: $a0, $a1, $a2
288     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
289     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
290     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
291     ; P5600: [[LOAD:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a)
292     ; P5600: [[LOAD1:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b)
293     ; P5600: [[UDIV:%[0-9]+]]:_(<8 x s16>) = G_UDIV [[LOAD]], [[LOAD1]]
294     ; P5600: G_STORE [[UDIV]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c)
295     ; P5600: RetRA
296     %0:_(p0) = COPY $a0
297     %1:_(p0) = COPY $a1
298     %2:_(p0) = COPY $a2
299     %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a)
300     %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b)
301     %5:_(<8 x s16>) = G_UDIV %3, %4
302     G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c)
303     RetRA
307 name:            udiv_v4u32
308 alignment:       4
309 tracksRegLiveness: true
310 body:             |
311   bb.1.entry:
312     liveins: $a0, $a1, $a2
314     ; P5600-LABEL: name: udiv_v4u32
315     ; P5600: liveins: $a0, $a1, $a2
316     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
317     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
318     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
319     ; P5600: [[LOAD:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a)
320     ; P5600: [[LOAD1:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b)
321     ; P5600: [[UDIV:%[0-9]+]]:_(<4 x s32>) = G_UDIV [[LOAD]], [[LOAD1]]
322     ; P5600: G_STORE [[UDIV]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c)
323     ; P5600: RetRA
324     %0:_(p0) = COPY $a0
325     %1:_(p0) = COPY $a1
326     %2:_(p0) = COPY $a2
327     %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a)
328     %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b)
329     %5:_(<4 x s32>) = G_UDIV %3, %4
330     G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c)
331     RetRA
335 name:            udiv_v2u64
336 alignment:       4
337 tracksRegLiveness: true
338 body:             |
339   bb.1.entry:
340     liveins: $a0, $a1, $a2
342     ; P5600-LABEL: name: udiv_v2u64
343     ; P5600: liveins: $a0, $a1, $a2
344     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
345     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
346     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
347     ; P5600: [[LOAD:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a)
348     ; P5600: [[LOAD1:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b)
349     ; P5600: [[UDIV:%[0-9]+]]:_(<2 x s64>) = G_UDIV [[LOAD]], [[LOAD1]]
350     ; P5600: G_STORE [[UDIV]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c)
351     ; P5600: RetRA
352     %0:_(p0) = COPY $a0
353     %1:_(p0) = COPY $a1
354     %2:_(p0) = COPY $a2
355     %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a)
356     %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b)
357     %5:_(<2 x s64>) = G_UDIV %3, %4
358     G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c)
359     RetRA
363 name:            urem_v16u8
364 alignment:       4
365 tracksRegLiveness: true
366 body:             |
367   bb.1.entry:
368     liveins: $a0, $a1, $a2
370     ; P5600-LABEL: name: urem_v16u8
371     ; P5600: liveins: $a0, $a1, $a2
372     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
373     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
374     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
375     ; P5600: [[LOAD:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a)
376     ; P5600: [[LOAD1:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b)
377     ; P5600: [[UREM:%[0-9]+]]:_(<16 x s8>) = G_UREM [[LOAD]], [[LOAD1]]
378     ; P5600: G_STORE [[UREM]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c)
379     ; P5600: RetRA
380     %0:_(p0) = COPY $a0
381     %1:_(p0) = COPY $a1
382     %2:_(p0) = COPY $a2
383     %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a)
384     %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b)
385     %5:_(<16 x s8>) = G_UREM %3, %4
386     G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c)
387     RetRA
391 name:            urem_v8u16
392 alignment:       4
393 tracksRegLiveness: true
394 body:             |
395   bb.1.entry:
396     liveins: $a0, $a1, $a2
398     ; P5600-LABEL: name: urem_v8u16
399     ; P5600: liveins: $a0, $a1, $a2
400     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
401     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
402     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
403     ; P5600: [[LOAD:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a)
404     ; P5600: [[LOAD1:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b)
405     ; P5600: [[UREM:%[0-9]+]]:_(<8 x s16>) = G_UREM [[LOAD]], [[LOAD1]]
406     ; P5600: G_STORE [[UREM]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c)
407     ; P5600: RetRA
408     %0:_(p0) = COPY $a0
409     %1:_(p0) = COPY $a1
410     %2:_(p0) = COPY $a2
411     %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a)
412     %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b)
413     %5:_(<8 x s16>) = G_UREM %3, %4
414     G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c)
415     RetRA
419 name:            urem_v4u32
420 alignment:       4
421 tracksRegLiveness: true
422 body:             |
423   bb.1.entry:
424     liveins: $a0, $a1, $a2
426     ; P5600-LABEL: name: urem_v4u32
427     ; P5600: liveins: $a0, $a1, $a2
428     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
429     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
430     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
431     ; P5600: [[LOAD:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a)
432     ; P5600: [[LOAD1:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b)
433     ; P5600: [[UREM:%[0-9]+]]:_(<4 x s32>) = G_UREM [[LOAD]], [[LOAD1]]
434     ; P5600: G_STORE [[UREM]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c)
435     ; P5600: RetRA
436     %0:_(p0) = COPY $a0
437     %1:_(p0) = COPY $a1
438     %2:_(p0) = COPY $a2
439     %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a)
440     %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b)
441     %5:_(<4 x s32>) = G_UREM %3, %4
442     G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c)
443     RetRA
447 name:            urem_v2u64
448 alignment:       4
449 tracksRegLiveness: true
450 body:             |
451   bb.1.entry:
452     liveins: $a0, $a1, $a2
454     ; P5600-LABEL: name: urem_v2u64
455     ; P5600: liveins: $a0, $a1, $a2
456     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
457     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
458     ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2
459     ; P5600: [[LOAD:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a)
460     ; P5600: [[LOAD1:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b)
461     ; P5600: [[UREM:%[0-9]+]]:_(<2 x s64>) = G_UREM [[LOAD]], [[LOAD1]]
462     ; P5600: G_STORE [[UREM]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c)
463     ; P5600: RetRA
464     %0:_(p0) = COPY $a0
465     %1:_(p0) = COPY $a1
466     %2:_(p0) = COPY $a2
467     %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a)
468     %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b)
469     %5:_(<2 x s64>) = G_UREM %3, %4
470     G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c)
471     RetRA