1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips2 | FileCheck %s -check-prefix=MIPS
3 ; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32 | FileCheck %s -check-prefix=MIPS
4 ; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32r2 | FileCheck %s \
5 ; RUN: -check-prefix=MIPS32R2
6 ; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32r3 | FileCheck %s \
7 ; RUN: -check-prefix=MIPS32R2
8 ; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32r5 | FileCheck %s \
9 ; RUN: -check-prefix=MIPS32R2
10 ; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32r6 | FileCheck %s \
11 ; RUN: -check-prefix=MIPS32R6
12 ; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips3 | FileCheck %s \
13 ; RUN: -check-prefix=MIPS64
14 ; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips4 | FileCheck %s \
15 ; RUN: -check-prefix=MIPS64
16 ; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips64 | FileCheck %s \
17 ; RUN: -check-prefix=MIPS64
18 ; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips64r2 | FileCheck %s \
19 ; RUN: -check-prefix=MIPS64R2
20 ; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips64r3 | FileCheck %s \
21 ; RUN: -check-prefix=MIPS64R2
22 ; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips64r5 | FileCheck %s \
23 ; RUN: -check-prefix=MIPS64R2
24 ; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips64r6 | FileCheck %s \
25 ; RUN: -check-prefix=MIPS64R6
26 ; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32r3 -mattr=+micromips | FileCheck %s \
27 ; RUN: -check-prefix=MM32R3
28 ; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32r6 -mattr=+micromips | FileCheck %s \
29 ; RUN: -check-prefix=MM32R6
31 define signext i1 @xor_i1(i1 signext %a, i1 signext %b) {
33 ; MIPS: # %bb.0: # %entry
35 ; MIPS-NEXT: xor $2, $4, $5
37 ; MIPS32R2-LABEL: xor_i1:
38 ; MIPS32R2: # %bb.0: # %entry
39 ; MIPS32R2-NEXT: jr $ra
40 ; MIPS32R2-NEXT: xor $2, $4, $5
42 ; MIPS32R6-LABEL: xor_i1:
43 ; MIPS32R6: # %bb.0: # %entry
44 ; MIPS32R6-NEXT: jr $ra
45 ; MIPS32R6-NEXT: xor $2, $4, $5
47 ; MIPS64-LABEL: xor_i1:
48 ; MIPS64: # %bb.0: # %entry
49 ; MIPS64-NEXT: xor $1, $4, $5
51 ; MIPS64-NEXT: sll $2, $1, 0
53 ; MIPS64R2-LABEL: xor_i1:
54 ; MIPS64R2: # %bb.0: # %entry
55 ; MIPS64R2-NEXT: xor $1, $4, $5
56 ; MIPS64R2-NEXT: jr $ra
57 ; MIPS64R2-NEXT: sll $2, $1, 0
59 ; MIPS64R6-LABEL: xor_i1:
60 ; MIPS64R6: # %bb.0: # %entry
61 ; MIPS64R6-NEXT: xor $1, $4, $5
62 ; MIPS64R6-NEXT: jr $ra
63 ; MIPS64R6-NEXT: sll $2, $1, 0
65 ; MM32R3-LABEL: xor_i1:
66 ; MM32R3: # %bb.0: # %entry
67 ; MM32R3-NEXT: xor16 $4, $5
68 ; MM32R3-NEXT: move $2, $4
69 ; MM32R3-NEXT: jrc $ra
71 ; MM32R6-LABEL: xor_i1:
72 ; MM32R6: # %bb.0: # %entry
73 ; MM32R6-NEXT: xor $2, $4, $5
74 ; MM32R6-NEXT: jrc $ra
80 define signext i8 @xor_i8(i8 signext %a, i8 signext %b) {
82 ; MIPS: # %bb.0: # %entry
84 ; MIPS-NEXT: xor $2, $4, $5
86 ; MIPS32R2-LABEL: xor_i8:
87 ; MIPS32R2: # %bb.0: # %entry
88 ; MIPS32R2-NEXT: jr $ra
89 ; MIPS32R2-NEXT: xor $2, $4, $5
91 ; MIPS32R6-LABEL: xor_i8:
92 ; MIPS32R6: # %bb.0: # %entry
93 ; MIPS32R6-NEXT: jr $ra
94 ; MIPS32R6-NEXT: xor $2, $4, $5
96 ; MIPS64-LABEL: xor_i8:
97 ; MIPS64: # %bb.0: # %entry
98 ; MIPS64-NEXT: xor $1, $4, $5
100 ; MIPS64-NEXT: sll $2, $1, 0
102 ; MIPS64R2-LABEL: xor_i8:
103 ; MIPS64R2: # %bb.0: # %entry
104 ; MIPS64R2-NEXT: xor $1, $4, $5
105 ; MIPS64R2-NEXT: jr $ra
106 ; MIPS64R2-NEXT: sll $2, $1, 0
108 ; MIPS64R6-LABEL: xor_i8:
109 ; MIPS64R6: # %bb.0: # %entry
110 ; MIPS64R6-NEXT: xor $1, $4, $5
111 ; MIPS64R6-NEXT: jr $ra
112 ; MIPS64R6-NEXT: sll $2, $1, 0
114 ; MM32R3-LABEL: xor_i8:
115 ; MM32R3: # %bb.0: # %entry
116 ; MM32R3-NEXT: xor16 $4, $5
117 ; MM32R3-NEXT: move $2, $4
118 ; MM32R3-NEXT: jrc $ra
120 ; MM32R6-LABEL: xor_i8:
121 ; MM32R6: # %bb.0: # %entry
122 ; MM32R6-NEXT: xor $2, $4, $5
123 ; MM32R6-NEXT: jrc $ra
129 define signext i16 @xor_i16(i16 signext %a, i16 signext %b) {
130 ; MIPS-LABEL: xor_i16:
131 ; MIPS: # %bb.0: # %entry
133 ; MIPS-NEXT: xor $2, $4, $5
135 ; MIPS32R2-LABEL: xor_i16:
136 ; MIPS32R2: # %bb.0: # %entry
137 ; MIPS32R2-NEXT: jr $ra
138 ; MIPS32R2-NEXT: xor $2, $4, $5
140 ; MIPS32R6-LABEL: xor_i16:
141 ; MIPS32R6: # %bb.0: # %entry
142 ; MIPS32R6-NEXT: jr $ra
143 ; MIPS32R6-NEXT: xor $2, $4, $5
145 ; MIPS64-LABEL: xor_i16:
146 ; MIPS64: # %bb.0: # %entry
147 ; MIPS64-NEXT: xor $1, $4, $5
148 ; MIPS64-NEXT: jr $ra
149 ; MIPS64-NEXT: sll $2, $1, 0
151 ; MIPS64R2-LABEL: xor_i16:
152 ; MIPS64R2: # %bb.0: # %entry
153 ; MIPS64R2-NEXT: xor $1, $4, $5
154 ; MIPS64R2-NEXT: jr $ra
155 ; MIPS64R2-NEXT: sll $2, $1, 0
157 ; MIPS64R6-LABEL: xor_i16:
158 ; MIPS64R6: # %bb.0: # %entry
159 ; MIPS64R6-NEXT: xor $1, $4, $5
160 ; MIPS64R6-NEXT: jr $ra
161 ; MIPS64R6-NEXT: sll $2, $1, 0
163 ; MM32R3-LABEL: xor_i16:
164 ; MM32R3: # %bb.0: # %entry
165 ; MM32R3-NEXT: xor16 $4, $5
166 ; MM32R3-NEXT: move $2, $4
167 ; MM32R3-NEXT: jrc $ra
169 ; MM32R6-LABEL: xor_i16:
170 ; MM32R6: # %bb.0: # %entry
171 ; MM32R6-NEXT: xor $2, $4, $5
172 ; MM32R6-NEXT: jrc $ra
178 define signext i32 @xor_i32(i32 signext %a, i32 signext %b) {
179 ; MIPS-LABEL: xor_i32:
180 ; MIPS: # %bb.0: # %entry
182 ; MIPS-NEXT: xor $2, $4, $5
184 ; MIPS32R2-LABEL: xor_i32:
185 ; MIPS32R2: # %bb.0: # %entry
186 ; MIPS32R2-NEXT: jr $ra
187 ; MIPS32R2-NEXT: xor $2, $4, $5
189 ; MIPS32R6-LABEL: xor_i32:
190 ; MIPS32R6: # %bb.0: # %entry
191 ; MIPS32R6-NEXT: jr $ra
192 ; MIPS32R6-NEXT: xor $2, $4, $5
194 ; MIPS64-LABEL: xor_i32:
195 ; MIPS64: # %bb.0: # %entry
196 ; MIPS64-NEXT: jr $ra
197 ; MIPS64-NEXT: xor $2, $4, $5
199 ; MIPS64R2-LABEL: xor_i32:
200 ; MIPS64R2: # %bb.0: # %entry
201 ; MIPS64R2-NEXT: jr $ra
202 ; MIPS64R2-NEXT: xor $2, $4, $5
204 ; MIPS64R6-LABEL: xor_i32:
205 ; MIPS64R6: # %bb.0: # %entry
206 ; MIPS64R6-NEXT: jr $ra
207 ; MIPS64R6-NEXT: xor $2, $4, $5
209 ; MM32R3-LABEL: xor_i32:
210 ; MM32R3: # %bb.0: # %entry
211 ; MM32R3-NEXT: xor16 $4, $5
212 ; MM32R3-NEXT: move $2, $4
213 ; MM32R3-NEXT: jrc $ra
215 ; MM32R6-LABEL: xor_i32:
216 ; MM32R6: # %bb.0: # %entry
217 ; MM32R6-NEXT: xor $2, $4, $5
218 ; MM32R6-NEXT: jrc $ra
224 define signext i64 @xor_i64(i64 signext %a, i64 signext %b) {
225 ; MIPS-LABEL: xor_i64:
226 ; MIPS: # %bb.0: # %entry
227 ; MIPS-NEXT: xor $2, $4, $6
229 ; MIPS-NEXT: xor $3, $5, $7
231 ; MIPS32R2-LABEL: xor_i64:
232 ; MIPS32R2: # %bb.0: # %entry
233 ; MIPS32R2-NEXT: xor $2, $4, $6
234 ; MIPS32R2-NEXT: jr $ra
235 ; MIPS32R2-NEXT: xor $3, $5, $7
237 ; MIPS32R6-LABEL: xor_i64:
238 ; MIPS32R6: # %bb.0: # %entry
239 ; MIPS32R6-NEXT: xor $2, $4, $6
240 ; MIPS32R6-NEXT: jr $ra
241 ; MIPS32R6-NEXT: xor $3, $5, $7
243 ; MIPS64-LABEL: xor_i64:
244 ; MIPS64: # %bb.0: # %entry
245 ; MIPS64-NEXT: jr $ra
246 ; MIPS64-NEXT: xor $2, $4, $5
248 ; MIPS64R2-LABEL: xor_i64:
249 ; MIPS64R2: # %bb.0: # %entry
250 ; MIPS64R2-NEXT: jr $ra
251 ; MIPS64R2-NEXT: xor $2, $4, $5
253 ; MIPS64R6-LABEL: xor_i64:
254 ; MIPS64R6: # %bb.0: # %entry
255 ; MIPS64R6-NEXT: jr $ra
256 ; MIPS64R6-NEXT: xor $2, $4, $5
258 ; MM32R3-LABEL: xor_i64:
259 ; MM32R3: # %bb.0: # %entry
260 ; MM32R3-NEXT: xor16 $4, $6
261 ; MM32R3-NEXT: xor16 $5, $7
262 ; MM32R3-NEXT: move $2, $4
263 ; MM32R3-NEXT: move $3, $5
264 ; MM32R3-NEXT: jrc $ra
266 ; MM32R6-LABEL: xor_i64:
267 ; MM32R6: # %bb.0: # %entry
268 ; MM32R6-NEXT: xor $2, $4, $6
269 ; MM32R6-NEXT: xor $3, $5, $7
270 ; MM32R6-NEXT: jrc $ra
276 define signext i128 @xor_i128(i128 signext %a, i128 signext %b) {
277 ; MIPS-LABEL: xor_i128:
278 ; MIPS: # %bb.0: # %entry
279 ; MIPS-NEXT: lw $1, 20($sp)
280 ; MIPS-NEXT: lw $2, 16($sp)
281 ; MIPS-NEXT: xor $2, $4, $2
282 ; MIPS-NEXT: xor $3, $5, $1
283 ; MIPS-NEXT: lw $1, 24($sp)
284 ; MIPS-NEXT: xor $4, $6, $1
285 ; MIPS-NEXT: lw $1, 28($sp)
287 ; MIPS-NEXT: xor $5, $7, $1
289 ; MIPS32R2-LABEL: xor_i128:
290 ; MIPS32R2: # %bb.0: # %entry
291 ; MIPS32R2-NEXT: lw $1, 20($sp)
292 ; MIPS32R2-NEXT: lw $2, 16($sp)
293 ; MIPS32R2-NEXT: xor $2, $4, $2
294 ; MIPS32R2-NEXT: xor $3, $5, $1
295 ; MIPS32R2-NEXT: lw $1, 24($sp)
296 ; MIPS32R2-NEXT: xor $4, $6, $1
297 ; MIPS32R2-NEXT: lw $1, 28($sp)
298 ; MIPS32R2-NEXT: jr $ra
299 ; MIPS32R2-NEXT: xor $5, $7, $1
301 ; MIPS32R6-LABEL: xor_i128:
302 ; MIPS32R6: # %bb.0: # %entry
303 ; MIPS32R6-NEXT: lw $1, 20($sp)
304 ; MIPS32R6-NEXT: lw $2, 16($sp)
305 ; MIPS32R6-NEXT: xor $2, $4, $2
306 ; MIPS32R6-NEXT: xor $3, $5, $1
307 ; MIPS32R6-NEXT: lw $1, 24($sp)
308 ; MIPS32R6-NEXT: xor $4, $6, $1
309 ; MIPS32R6-NEXT: lw $1, 28($sp)
310 ; MIPS32R6-NEXT: jr $ra
311 ; MIPS32R6-NEXT: xor $5, $7, $1
313 ; MIPS64-LABEL: xor_i128:
314 ; MIPS64: # %bb.0: # %entry
315 ; MIPS64-NEXT: xor $2, $4, $6
316 ; MIPS64-NEXT: jr $ra
317 ; MIPS64-NEXT: xor $3, $5, $7
319 ; MIPS64R2-LABEL: xor_i128:
320 ; MIPS64R2: # %bb.0: # %entry
321 ; MIPS64R2-NEXT: xor $2, $4, $6
322 ; MIPS64R2-NEXT: jr $ra
323 ; MIPS64R2-NEXT: xor $3, $5, $7
325 ; MIPS64R6-LABEL: xor_i128:
326 ; MIPS64R6: # %bb.0: # %entry
327 ; MIPS64R6-NEXT: xor $2, $4, $6
328 ; MIPS64R6-NEXT: jr $ra
329 ; MIPS64R6-NEXT: xor $3, $5, $7
331 ; MM32R3-LABEL: xor_i128:
332 ; MM32R3: # %bb.0: # %entry
333 ; MM32R3-NEXT: lwp $2, 16($sp)
334 ; MM32R3-NEXT: xor16 $2, $4
335 ; MM32R3-NEXT: xor16 $3, $5
336 ; MM32R3-NEXT: lw $4, 24($sp)
337 ; MM32R3-NEXT: xor16 $4, $6
338 ; MM32R3-NEXT: lw $5, 28($sp)
339 ; MM32R3-NEXT: xor16 $5, $7
340 ; MM32R3-NEXT: jrc $ra
342 ; MM32R6-LABEL: xor_i128:
343 ; MM32R6: # %bb.0: # %entry
344 ; MM32R6-NEXT: lw $1, 20($sp)
345 ; MM32R6-NEXT: lw $2, 16($sp)
346 ; MM32R6-NEXT: xor $2, $4, $2
347 ; MM32R6-NEXT: xor $3, $5, $1
348 ; MM32R6-NEXT: lw $1, 24($sp)
349 ; MM32R6-NEXT: xor $4, $6, $1
350 ; MM32R6-NEXT: lw $1, 28($sp)
351 ; MM32R6-NEXT: xor $5, $7, $1
352 ; MM32R6-NEXT: jrc $ra
358 define signext i1 @xor_i1_4(i1 signext %b) {
359 ; MIPS-LABEL: xor_i1_4:
360 ; MIPS: # %bb.0: # %entry
362 ; MIPS-NEXT: move $2, $4
364 ; MIPS32R2-LABEL: xor_i1_4:
365 ; MIPS32R2: # %bb.0: # %entry
366 ; MIPS32R2-NEXT: jr $ra
367 ; MIPS32R2-NEXT: move $2, $4
369 ; MIPS32R6-LABEL: xor_i1_4:
370 ; MIPS32R6: # %bb.0: # %entry
371 ; MIPS32R6-NEXT: jr $ra
372 ; MIPS32R6-NEXT: move $2, $4
374 ; MIPS64-LABEL: xor_i1_4:
375 ; MIPS64: # %bb.0: # %entry
376 ; MIPS64-NEXT: jr $ra
377 ; MIPS64-NEXT: move $2, $4
379 ; MIPS64R2-LABEL: xor_i1_4:
380 ; MIPS64R2: # %bb.0: # %entry
381 ; MIPS64R2-NEXT: jr $ra
382 ; MIPS64R2-NEXT: move $2, $4
384 ; MIPS64R6-LABEL: xor_i1_4:
385 ; MIPS64R6: # %bb.0: # %entry
386 ; MIPS64R6-NEXT: jr $ra
387 ; MIPS64R6-NEXT: move $2, $4
389 ; MM32R3-LABEL: xor_i1_4:
390 ; MM32R3: # %bb.0: # %entry
391 ; MM32R3-NEXT: move $2, $4
392 ; MM32R3-NEXT: jrc $ra
394 ; MM32R6-LABEL: xor_i1_4:
395 ; MM32R6: # %bb.0: # %entry
396 ; MM32R6-NEXT: move $2, $4
397 ; MM32R6-NEXT: jrc $ra
403 define signext i8 @xor_i8_4(i8 signext %b) {
404 ; MIPS-LABEL: xor_i8_4:
405 ; MIPS: # %bb.0: # %entry
407 ; MIPS-NEXT: xori $2, $4, 4
409 ; MIPS32R2-LABEL: xor_i8_4:
410 ; MIPS32R2: # %bb.0: # %entry
411 ; MIPS32R2-NEXT: jr $ra
412 ; MIPS32R2-NEXT: xori $2, $4, 4
414 ; MIPS32R6-LABEL: xor_i8_4:
415 ; MIPS32R6: # %bb.0: # %entry
416 ; MIPS32R6-NEXT: jr $ra
417 ; MIPS32R6-NEXT: xori $2, $4, 4
419 ; MIPS64-LABEL: xor_i8_4:
420 ; MIPS64: # %bb.0: # %entry
421 ; MIPS64-NEXT: jr $ra
422 ; MIPS64-NEXT: xori $2, $4, 4
424 ; MIPS64R2-LABEL: xor_i8_4:
425 ; MIPS64R2: # %bb.0: # %entry
426 ; MIPS64R2-NEXT: jr $ra
427 ; MIPS64R2-NEXT: xori $2, $4, 4
429 ; MIPS64R6-LABEL: xor_i8_4:
430 ; MIPS64R6: # %bb.0: # %entry
431 ; MIPS64R6-NEXT: jr $ra
432 ; MIPS64R6-NEXT: xori $2, $4, 4
434 ; MM32R3-LABEL: xor_i8_4:
435 ; MM32R3: # %bb.0: # %entry
436 ; MM32R3-NEXT: jr $ra
437 ; MM32R3-NEXT: xori $2, $4, 4
439 ; MM32R6-LABEL: xor_i8_4:
440 ; MM32R6: # %bb.0: # %entry
441 ; MM32R6-NEXT: xori $2, $4, 4
442 ; MM32R6-NEXT: jrc $ra
448 define signext i16 @xor_i16_4(i16 signext %b) {
449 ; MIPS-LABEL: xor_i16_4:
450 ; MIPS: # %bb.0: # %entry
452 ; MIPS-NEXT: xori $2, $4, 4
454 ; MIPS32R2-LABEL: xor_i16_4:
455 ; MIPS32R2: # %bb.0: # %entry
456 ; MIPS32R2-NEXT: jr $ra
457 ; MIPS32R2-NEXT: xori $2, $4, 4
459 ; MIPS32R6-LABEL: xor_i16_4:
460 ; MIPS32R6: # %bb.0: # %entry
461 ; MIPS32R6-NEXT: jr $ra
462 ; MIPS32R6-NEXT: xori $2, $4, 4
464 ; MIPS64-LABEL: xor_i16_4:
465 ; MIPS64: # %bb.0: # %entry
466 ; MIPS64-NEXT: jr $ra
467 ; MIPS64-NEXT: xori $2, $4, 4
469 ; MIPS64R2-LABEL: xor_i16_4:
470 ; MIPS64R2: # %bb.0: # %entry
471 ; MIPS64R2-NEXT: jr $ra
472 ; MIPS64R2-NEXT: xori $2, $4, 4
474 ; MIPS64R6-LABEL: xor_i16_4:
475 ; MIPS64R6: # %bb.0: # %entry
476 ; MIPS64R6-NEXT: jr $ra
477 ; MIPS64R6-NEXT: xori $2, $4, 4
479 ; MM32R3-LABEL: xor_i16_4:
480 ; MM32R3: # %bb.0: # %entry
481 ; MM32R3-NEXT: jr $ra
482 ; MM32R3-NEXT: xori $2, $4, 4
484 ; MM32R6-LABEL: xor_i16_4:
485 ; MM32R6: # %bb.0: # %entry
486 ; MM32R6-NEXT: xori $2, $4, 4
487 ; MM32R6-NEXT: jrc $ra
493 define signext i32 @xor_i32_4(i32 signext %b) {
494 ; MIPS-LABEL: xor_i32_4:
495 ; MIPS: # %bb.0: # %entry
497 ; MIPS-NEXT: xori $2, $4, 4
499 ; MIPS32R2-LABEL: xor_i32_4:
500 ; MIPS32R2: # %bb.0: # %entry
501 ; MIPS32R2-NEXT: jr $ra
502 ; MIPS32R2-NEXT: xori $2, $4, 4
504 ; MIPS32R6-LABEL: xor_i32_4:
505 ; MIPS32R6: # %bb.0: # %entry
506 ; MIPS32R6-NEXT: jr $ra
507 ; MIPS32R6-NEXT: xori $2, $4, 4
509 ; MIPS64-LABEL: xor_i32_4:
510 ; MIPS64: # %bb.0: # %entry
511 ; MIPS64-NEXT: xori $1, $4, 4
512 ; MIPS64-NEXT: jr $ra
513 ; MIPS64-NEXT: sll $2, $1, 0
515 ; MIPS64R2-LABEL: xor_i32_4:
516 ; MIPS64R2: # %bb.0: # %entry
517 ; MIPS64R2-NEXT: xori $1, $4, 4
518 ; MIPS64R2-NEXT: jr $ra
519 ; MIPS64R2-NEXT: sll $2, $1, 0
521 ; MIPS64R6-LABEL: xor_i32_4:
522 ; MIPS64R6: # %bb.0: # %entry
523 ; MIPS64R6-NEXT: xori $1, $4, 4
524 ; MIPS64R6-NEXT: jr $ra
525 ; MIPS64R6-NEXT: sll $2, $1, 0
527 ; MM32R3-LABEL: xor_i32_4:
528 ; MM32R3: # %bb.0: # %entry
529 ; MM32R3-NEXT: jr $ra
530 ; MM32R3-NEXT: xori $2, $4, 4
532 ; MM32R6-LABEL: xor_i32_4:
533 ; MM32R6: # %bb.0: # %entry
534 ; MM32R6-NEXT: xori $2, $4, 4
535 ; MM32R6-NEXT: jrc $ra
541 define signext i64 @xor_i64_4(i64 signext %b) {
542 ; MIPS-LABEL: xor_i64_4:
543 ; MIPS: # %bb.0: # %entry
544 ; MIPS-NEXT: xori $3, $5, 4
546 ; MIPS-NEXT: move $2, $4
548 ; MIPS32R2-LABEL: xor_i64_4:
549 ; MIPS32R2: # %bb.0: # %entry
550 ; MIPS32R2-NEXT: xori $3, $5, 4
551 ; MIPS32R2-NEXT: jr $ra
552 ; MIPS32R2-NEXT: move $2, $4
554 ; MIPS32R6-LABEL: xor_i64_4:
555 ; MIPS32R6: # %bb.0: # %entry
556 ; MIPS32R6-NEXT: xori $3, $5, 4
557 ; MIPS32R6-NEXT: jr $ra
558 ; MIPS32R6-NEXT: move $2, $4
560 ; MIPS64-LABEL: xor_i64_4:
561 ; MIPS64: # %bb.0: # %entry
562 ; MIPS64-NEXT: jr $ra
563 ; MIPS64-NEXT: xori $2, $4, 4
565 ; MIPS64R2-LABEL: xor_i64_4:
566 ; MIPS64R2: # %bb.0: # %entry
567 ; MIPS64R2-NEXT: jr $ra
568 ; MIPS64R2-NEXT: xori $2, $4, 4
570 ; MIPS64R6-LABEL: xor_i64_4:
571 ; MIPS64R6: # %bb.0: # %entry
572 ; MIPS64R6-NEXT: jr $ra
573 ; MIPS64R6-NEXT: xori $2, $4, 4
575 ; MM32R3-LABEL: xor_i64_4:
576 ; MM32R3: # %bb.0: # %entry
577 ; MM32R3-NEXT: xori $3, $5, 4
578 ; MM32R3-NEXT: move $2, $4
579 ; MM32R3-NEXT: jrc $ra
581 ; MM32R6-LABEL: xor_i64_4:
582 ; MM32R6: # %bb.0: # %entry
583 ; MM32R6-NEXT: xori $3, $5, 4
584 ; MM32R6-NEXT: move $2, $4
585 ; MM32R6-NEXT: jrc $ra
591 define signext i128 @xor_i128_4(i128 signext %b) {
592 ; MIPS-LABEL: xor_i128_4:
593 ; MIPS: # %bb.0: # %entry
594 ; MIPS-NEXT: xori $1, $7, 4
595 ; MIPS-NEXT: move $2, $4
596 ; MIPS-NEXT: move $3, $5
597 ; MIPS-NEXT: move $4, $6
599 ; MIPS-NEXT: move $5, $1
601 ; MIPS32R2-LABEL: xor_i128_4:
602 ; MIPS32R2: # %bb.0: # %entry
603 ; MIPS32R2-NEXT: xori $1, $7, 4
604 ; MIPS32R2-NEXT: move $2, $4
605 ; MIPS32R2-NEXT: move $3, $5
606 ; MIPS32R2-NEXT: move $4, $6
607 ; MIPS32R2-NEXT: jr $ra
608 ; MIPS32R2-NEXT: move $5, $1
610 ; MIPS32R6-LABEL: xor_i128_4:
611 ; MIPS32R6: # %bb.0: # %entry
612 ; MIPS32R6-NEXT: xori $1, $7, 4
613 ; MIPS32R6-NEXT: move $2, $4
614 ; MIPS32R6-NEXT: move $3, $5
615 ; MIPS32R6-NEXT: move $4, $6
616 ; MIPS32R6-NEXT: jr $ra
617 ; MIPS32R6-NEXT: move $5, $1
619 ; MIPS64-LABEL: xor_i128_4:
620 ; MIPS64: # %bb.0: # %entry
621 ; MIPS64-NEXT: xori $3, $5, 4
622 ; MIPS64-NEXT: jr $ra
623 ; MIPS64-NEXT: move $2, $4
625 ; MIPS64R2-LABEL: xor_i128_4:
626 ; MIPS64R2: # %bb.0: # %entry
627 ; MIPS64R2-NEXT: xori $3, $5, 4
628 ; MIPS64R2-NEXT: jr $ra
629 ; MIPS64R2-NEXT: move $2, $4
631 ; MIPS64R6-LABEL: xor_i128_4:
632 ; MIPS64R6: # %bb.0: # %entry
633 ; MIPS64R6-NEXT: xori $3, $5, 4
634 ; MIPS64R6-NEXT: jr $ra
635 ; MIPS64R6-NEXT: move $2, $4
637 ; MM32R3-LABEL: xor_i128_4:
638 ; MM32R3: # %bb.0: # %entry
639 ; MM32R3-NEXT: xori $1, $7, 4
640 ; MM32R3-NEXT: move $2, $4
641 ; MM32R3-NEXT: move $3, $5
642 ; MM32R3-NEXT: move $4, $6
643 ; MM32R3-NEXT: move $5, $1
644 ; MM32R3-NEXT: jrc $ra
646 ; MM32R6-LABEL: xor_i128_4:
647 ; MM32R6: # %bb.0: # %entry
648 ; MM32R6-NEXT: xori $1, $7, 4
649 ; MM32R6-NEXT: move $2, $4
650 ; MM32R6-NEXT: move $3, $5
651 ; MM32R6-NEXT: move $4, $6
652 ; MM32R6-NEXT: move $5, $1
653 ; MM32R6-NEXT: jrc $ra