[OpenACC] enable 'copyin' clause sema for 'data'/'enter data'
[llvm-project.git] / llvm / test / CodeGen / Mips / GlobalISel / regbankselect / rem_and_div_vec.mir
blobcef6101e2038ded266530070910b95f67c343d75
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
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 legalized:       true
30 tracksRegLiveness: true
31 body:             |
32   bb.1.entry:
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)
44     ; P5600: RetRA
45     %0:_(p0) = COPY $a0
46     %1:_(p0) = COPY $a1
47     %2:_(p0) = COPY $a2
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)
52     RetRA
54 ...
55 ---
56 name:            sdiv_v8i16
57 alignment:       4
58 legalized:       true
59 tracksRegLiveness: true
60 body:             |
61   bb.1.entry:
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)
73     ; P5600: RetRA
74     %0:_(p0) = COPY $a0
75     %1:_(p0) = COPY $a1
76     %2:_(p0) = COPY $a2
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)
81     RetRA
83 ...
84 ---
85 name:            sdiv_v4i32
86 alignment:       4
87 legalized:       true
88 tracksRegLiveness: true
89 body:             |
90   bb.1.entry:
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)
102     ; P5600: RetRA
103     %0:_(p0) = COPY $a0
104     %1:_(p0) = COPY $a1
105     %2:_(p0) = COPY $a2
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)
110     RetRA
114 name:            sdiv_v2i64
115 alignment:       4
116 legalized:       true
117 tracksRegLiveness: true
118 body:             |
119   bb.1.entry:
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)
131     ; P5600: RetRA
132     %0:_(p0) = COPY $a0
133     %1:_(p0) = COPY $a1
134     %2:_(p0) = COPY $a2
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)
139     RetRA
143 name:            srem_v16i8
144 alignment:       4
145 legalized:       true
146 tracksRegLiveness: true
147 body:             |
148   bb.1.entry:
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)
160     ; P5600: RetRA
161     %0:_(p0) = COPY $a0
162     %1:_(p0) = COPY $a1
163     %2:_(p0) = COPY $a2
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)
168     RetRA
172 name:            srem_v8i16
173 alignment:       4
174 legalized:       true
175 tracksRegLiveness: true
176 body:             |
177   bb.1.entry:
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)
189     ; P5600: RetRA
190     %0:_(p0) = COPY $a0
191     %1:_(p0) = COPY $a1
192     %2:_(p0) = COPY $a2
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)
197     RetRA
201 name:            srem_v4i32
202 alignment:       4
203 legalized:       true
204 tracksRegLiveness: true
205 body:             |
206   bb.1.entry:
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)
218     ; P5600: RetRA
219     %0:_(p0) = COPY $a0
220     %1:_(p0) = COPY $a1
221     %2:_(p0) = COPY $a2
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)
226     RetRA
230 name:            srem_v2i64
231 alignment:       4
232 legalized:       true
233 tracksRegLiveness: true
234 body:             |
235   bb.1.entry:
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)
247     ; P5600: RetRA
248     %0:_(p0) = COPY $a0
249     %1:_(p0) = COPY $a1
250     %2:_(p0) = COPY $a2
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)
255     RetRA
259 name:            udiv_v16u8
260 alignment:       4
261 legalized:       true
262 tracksRegLiveness: true
263 body:             |
264   bb.1.entry:
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)
276     ; P5600: RetRA
277     %0:_(p0) = COPY $a0
278     %1:_(p0) = COPY $a1
279     %2:_(p0) = COPY $a2
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)
284     RetRA
288 name:            udiv_v8u16
289 alignment:       4
290 legalized:       true
291 tracksRegLiveness: true
292 body:             |
293   bb.1.entry:
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)
305     ; P5600: RetRA
306     %0:_(p0) = COPY $a0
307     %1:_(p0) = COPY $a1
308     %2:_(p0) = COPY $a2
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)
313     RetRA
317 name:            udiv_v4u32
318 alignment:       4
319 legalized:       true
320 tracksRegLiveness: true
321 body:             |
322   bb.1.entry:
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)
334     ; P5600: RetRA
335     %0:_(p0) = COPY $a0
336     %1:_(p0) = COPY $a1
337     %2:_(p0) = COPY $a2
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)
342     RetRA
346 name:            udiv_v2u64
347 alignment:       4
348 legalized:       true
349 tracksRegLiveness: true
350 body:             |
351   bb.1.entry:
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)
363     ; P5600: RetRA
364     %0:_(p0) = COPY $a0
365     %1:_(p0) = COPY $a1
366     %2:_(p0) = COPY $a2
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)
371     RetRA
375 name:            urem_v16u8
376 alignment:       4
377 legalized:       true
378 tracksRegLiveness: true
379 body:             |
380   bb.1.entry:
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)
392     ; P5600: RetRA
393     %0:_(p0) = COPY $a0
394     %1:_(p0) = COPY $a1
395     %2:_(p0) = COPY $a2
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)
400     RetRA
404 name:            urem_v8u16
405 alignment:       4
406 legalized:       true
407 tracksRegLiveness: true
408 body:             |
409   bb.1.entry:
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)
421     ; P5600: RetRA
422     %0:_(p0) = COPY $a0
423     %1:_(p0) = COPY $a1
424     %2:_(p0) = COPY $a2
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)
429     RetRA
433 name:            urem_v4u32
434 alignment:       4
435 legalized:       true
436 tracksRegLiveness: true
437 body:             |
438   bb.1.entry:
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)
450     ; P5600: RetRA
451     %0:_(p0) = COPY $a0
452     %1:_(p0) = COPY $a1
453     %2:_(p0) = COPY $a2
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)
458     RetRA
462 name:            urem_v2u64
463 alignment:       4
464 legalized:       true
465 tracksRegLiveness: true
466 body:             |
467   bb.1.entry:
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)
479     ; P5600: RetRA
480     %0:_(p0) = COPY $a0
481     %1:_(p0) = COPY $a1
482     %2:_(p0) = COPY $a2
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)
487     RetRA