blob: 4eae6e49f8a9f97515a1df17a19c94c6078dac42 [file] [log] [blame]
Simon Dardis12645282017-12-14 16:42:04 +00001; 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=GP32
3; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32 | FileCheck %s -check-prefix=GP32
4; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32r2 | FileCheck %s -check-prefix=GP32
5; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32r3 | FileCheck %s -check-prefix=GP32
6; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32r5 | FileCheck %s -check-prefix=GP32
7; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32r6 | FileCheck %s -check-prefix=GP32
8; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips3 | FileCheck %s -check-prefix=GP64
9; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips4 | FileCheck %s -check-prefix=GP64
10; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips64 | FileCheck %s -check-prefix=GP64
11; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips64r2 | FileCheck %s -check-prefix=GP64
12; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips64r3 | FileCheck %s -check-prefix=GP64
13; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips64r5 | FileCheck %s -check-prefix=GP64
14; RUN: llc < %s -mtriple=mips64-unknown-linux-gnu -mcpu=mips64r6 | FileCheck %s -check-prefix=GP64
15; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32r3 -mattr=+micromips | FileCheck %s \
16; RUN: -check-prefix=MM32
17; RUN: llc < %s -mtriple=mips-unknown-linux-gnu -mcpu=mips32r6 -mattr=+micromips | FileCheck %s \
18; RUN: -check-prefix=MM32R6
Vasileios Kalintiris2ed214f2015-01-26 12:04:40 +000019
20define signext i1 @or_i1(i1 signext %a, i1 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +000021; GP32-LABEL: or_i1:
22; GP32: # %bb.0: # %entry
23; GP32-NEXT: jr $ra
24; GP32-NEXT: or $2, $4, $5
25;
26; GP64-LABEL: or_i1:
27; GP64: # %bb.0: # %entry
28; GP64-NEXT: or $1, $4, $5
29; GP64-NEXT: jr $ra
30; GP64-NEXT: sll $2, $1, 0
31;
32; MM32-LABEL: or_i1:
33; MM32: # %bb.0: # %entry
34; MM32-NEXT: or16 $4, $5
35; MM32-NEXT: move $2, $4
36; MM32-NEXT: jrc $ra
37;
38; MM32R6-LABEL: or_i1:
39; MM32R6: # %bb.0: # %entry
40; MM32R6-NEXT: or16 $4, $5
41; MM32R6-NEXT: move $2, $4
42; MM32R6-NEXT: jrc $ra
Vasileios Kalintiris2ed214f2015-01-26 12:04:40 +000043entry:
Vasileios Kalintiris2ed214f2015-01-26 12:04:40 +000044 %r = or i1 %a, %b
45 ret i1 %r
46}
47
48define signext i8 @or_i8(i8 signext %a, i8 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +000049; GP32-LABEL: or_i8:
50; GP32: # %bb.0: # %entry
51; GP32-NEXT: jr $ra
52; GP32-NEXT: or $2, $4, $5
53;
54; GP64-LABEL: or_i8:
55; GP64: # %bb.0: # %entry
56; GP64-NEXT: or $1, $4, $5
57; GP64-NEXT: jr $ra
58; GP64-NEXT: sll $2, $1, 0
59;
60; MM32-LABEL: or_i8:
61; MM32: # %bb.0: # %entry
62; MM32-NEXT: or16 $4, $5
63; MM32-NEXT: move $2, $4
64; MM32-NEXT: jrc $ra
65;
66; MM32R6-LABEL: or_i8:
67; MM32R6: # %bb.0: # %entry
68; MM32R6-NEXT: or16 $4, $5
69; MM32R6-NEXT: move $2, $4
70; MM32R6-NEXT: jrc $ra
Vasileios Kalintiris2ed214f2015-01-26 12:04:40 +000071entry:
Vasileios Kalintiris2ed214f2015-01-26 12:04:40 +000072 %r = or i8 %a, %b
73 ret i8 %r
74}
75
76define signext i16 @or_i16(i16 signext %a, i16 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +000077; GP32-LABEL: or_i16:
78; GP32: # %bb.0: # %entry
79; GP32-NEXT: jr $ra
80; GP32-NEXT: or $2, $4, $5
81;
82; GP64-LABEL: or_i16:
83; GP64: # %bb.0: # %entry
84; GP64-NEXT: or $1, $4, $5
85; GP64-NEXT: jr $ra
86; GP64-NEXT: sll $2, $1, 0
87;
88; MM32-LABEL: or_i16:
89; MM32: # %bb.0: # %entry
90; MM32-NEXT: or16 $4, $5
91; MM32-NEXT: move $2, $4
92; MM32-NEXT: jrc $ra
93;
94; MM32R6-LABEL: or_i16:
95; MM32R6: # %bb.0: # %entry
96; MM32R6-NEXT: or16 $4, $5
97; MM32R6-NEXT: move $2, $4
98; MM32R6-NEXT: jrc $ra
Vasileios Kalintiris2ed214f2015-01-26 12:04:40 +000099entry:
Vasileios Kalintiris2ed214f2015-01-26 12:04:40 +0000100 %r = or i16 %a, %b
101 ret i16 %r
102}
103
104define signext i32 @or_i32(i32 signext %a, i32 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000105; GP32-LABEL: or_i32:
106; GP32: # %bb.0: # %entry
107; GP32-NEXT: jr $ra
108; GP32-NEXT: or $2, $4, $5
109;
110; GP64-LABEL: or_i32:
111; GP64: # %bb.0: # %entry
112; GP64-NEXT: or $1, $4, $5
113; GP64-NEXT: jr $ra
114; GP64-NEXT: sll $2, $1, 0
115;
116; MM32-LABEL: or_i32:
117; MM32: # %bb.0: # %entry
118; MM32-NEXT: or16 $4, $5
119; MM32-NEXT: move $2, $4
120; MM32-NEXT: jrc $ra
121;
122; MM32R6-LABEL: or_i32:
123; MM32R6: # %bb.0: # %entry
124; MM32R6-NEXT: or16 $4, $5
125; MM32R6-NEXT: move $2, $4
126; MM32R6-NEXT: jrc $ra
Vasileios Kalintiris2ed214f2015-01-26 12:04:40 +0000127entry:
Vasileios Kalintiris2ed214f2015-01-26 12:04:40 +0000128 %r = or i32 %a, %b
129 ret i32 %r
130}
131
132define signext i64 @or_i64(i64 signext %a, i64 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000133; GP32-LABEL: or_i64:
134; GP32: # %bb.0: # %entry
135; GP32-NEXT: or $2, $4, $6
136; GP32-NEXT: jr $ra
137; GP32-NEXT: or $3, $5, $7
138;
139; GP64-LABEL: or_i64:
140; GP64: # %bb.0: # %entry
141; GP64-NEXT: jr $ra
142; GP64-NEXT: or $2, $4, $5
143;
144; MM32-LABEL: or_i64:
145; MM32: # %bb.0: # %entry
146; MM32-NEXT: or16 $4, $6
147; MM32-NEXT: or16 $5, $7
148; MM32-NEXT: move $2, $4
149; MM32-NEXT: move $3, $5
150; MM32-NEXT: jrc $ra
151;
152; MM32R6-LABEL: or_i64:
153; MM32R6: # %bb.0: # %entry
154; MM32R6-NEXT: or16 $4, $6
155; MM32R6-NEXT: or16 $5, $7
156; MM32R6-NEXT: move $2, $4
157; MM32R6-NEXT: move $3, $5
158; MM32R6-NEXT: jrc $ra
Vasileios Kalintiris2ed214f2015-01-26 12:04:40 +0000159entry:
Vasileios Kalintiris2ed214f2015-01-26 12:04:40 +0000160 %r = or i64 %a, %b
161 ret i64 %r
162}
Vasileios Kalintirisef96a8e2015-01-26 12:33:22 +0000163
164define signext i128 @or_i128(i128 signext %a, i128 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000165; GP32-LABEL: or_i128:
166; GP32: # %bb.0: # %entry
167; GP32-NEXT: lw $1, 20($sp)
168; GP32-NEXT: lw $2, 16($sp)
169; GP32-NEXT: or $2, $4, $2
170; GP32-NEXT: or $3, $5, $1
171; GP32-NEXT: lw $1, 24($sp)
172; GP32-NEXT: or $4, $6, $1
173; GP32-NEXT: lw $1, 28($sp)
174; GP32-NEXT: jr $ra
175; GP32-NEXT: or $5, $7, $1
176;
177; GP64-LABEL: or_i128:
178; GP64: # %bb.0: # %entry
179; GP64-NEXT: or $2, $4, $6
180; GP64-NEXT: jr $ra
181; GP64-NEXT: or $3, $5, $7
182;
183; MM32-LABEL: or_i128:
184; MM32: # %bb.0: # %entry
185; MM32-NEXT: lw $3, 20($sp)
186; MM32-NEXT: lw $2, 16($sp)
187; MM32-NEXT: or16 $2, $4
188; MM32-NEXT: or16 $3, $5
189; MM32-NEXT: lw $4, 24($sp)
190; MM32-NEXT: or16 $4, $6
191; MM32-NEXT: lw $5, 28($sp)
192; MM32-NEXT: or16 $5, $7
193; MM32-NEXT: jrc $ra
194;
195; MM32R6-LABEL: or_i128:
196; MM32R6: # %bb.0: # %entry
197; MM32R6-NEXT: lw $3, 20($sp)
198; MM32R6-NEXT: lw $2, 16($sp)
199; MM32R6-NEXT: or16 $2, $4
200; MM32R6-NEXT: or16 $3, $5
201; MM32R6-NEXT: lw $4, 24($sp)
202; MM32R6-NEXT: or16 $4, $6
203; MM32R6-NEXT: lw $5, 28($sp)
204; MM32R6-NEXT: or16 $5, $7
205; MM32R6-NEXT: jrc $ra
Vasileios Kalintirisef96a8e2015-01-26 12:33:22 +0000206entry:
Vasileios Kalintirisef96a8e2015-01-26 12:33:22 +0000207 %r = or i128 %a, %b
208 ret i128 %r
209}
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000210
211define signext i1 @or_i1_4(i1 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000212; GP32-LABEL: or_i1_4:
213; GP32: # %bb.0: # %entry
214; GP32-NEXT: jr $ra
215; GP32-NEXT: move $2, $4
216;
217; GP64-LABEL: or_i1_4:
218; GP64: # %bb.0: # %entry
219; GP64-NEXT: jr $ra
220; GP64-NEXT: move $2, $4
221;
222; MM32-LABEL: or_i1_4:
223; MM32: # %bb.0: # %entry
224; MM32-NEXT: move $2, $4
225; MM32-NEXT: jrc $ra
226;
227; MM32R6-LABEL: or_i1_4:
228; MM32R6: # %bb.0: # %entry
229; MM32R6-NEXT: move $2, $4
230; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000231entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000232 %r = or i1 4, %b
233 ret i1 %r
234}
235
236define signext i8 @or_i8_4(i8 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000237; GP32-LABEL: or_i8_4:
238; GP32: # %bb.0: # %entry
239; GP32-NEXT: jr $ra
240; GP32-NEXT: ori $2, $4, 4
241;
242; GP64-LABEL: or_i8_4:
243; GP64: # %bb.0: # %entry
244; GP64-NEXT: jr $ra
245; GP64-NEXT: ori $2, $4, 4
246;
247; MM32-LABEL: or_i8_4:
248; MM32: # %bb.0: # %entry
249; MM32-NEXT: jr $ra
250; MM32-NEXT: ori $2, $4, 4
251;
252; MM32R6-LABEL: or_i8_4:
253; MM32R6: # %bb.0: # %entry
254; MM32R6-NEXT: ori $2, $4, 4
255; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000256entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000257 %r = or i8 4, %b
258 ret i8 %r
259}
260
261define signext i16 @or_i16_4(i16 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000262; GP32-LABEL: or_i16_4:
263; GP32: # %bb.0: # %entry
264; GP32-NEXT: jr $ra
265; GP32-NEXT: ori $2, $4, 4
266;
267; GP64-LABEL: or_i16_4:
268; GP64: # %bb.0: # %entry
269; GP64-NEXT: jr $ra
270; GP64-NEXT: ori $2, $4, 4
271;
272; MM32-LABEL: or_i16_4:
273; MM32: # %bb.0: # %entry
274; MM32-NEXT: jr $ra
275; MM32-NEXT: ori $2, $4, 4
276;
277; MM32R6-LABEL: or_i16_4:
278; MM32R6: # %bb.0: # %entry
279; MM32R6-NEXT: ori $2, $4, 4
280; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000281entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000282 %r = or i16 4, %b
283 ret i16 %r
284}
285
286define signext i32 @or_i32_4(i32 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000287; GP32-LABEL: or_i32_4:
288; GP32: # %bb.0: # %entry
289; GP32-NEXT: jr $ra
290; GP32-NEXT: ori $2, $4, 4
291;
292; GP64-LABEL: or_i32_4:
293; GP64: # %bb.0: # %entry
294; GP64-NEXT: jr $ra
295; GP64-NEXT: ori $2, $4, 4
296;
297; MM32-LABEL: or_i32_4:
298; MM32: # %bb.0: # %entry
299; MM32-NEXT: jr $ra
300; MM32-NEXT: ori $2, $4, 4
301;
302; MM32R6-LABEL: or_i32_4:
303; MM32R6: # %bb.0: # %entry
304; MM32R6-NEXT: ori $2, $4, 4
305; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000306entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000307 %r = or i32 4, %b
308 ret i32 %r
309}
310
311define signext i64 @or_i64_4(i64 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000312; GP32-LABEL: or_i64_4:
313; GP32: # %bb.0: # %entry
314; GP32-NEXT: ori $3, $5, 4
315; GP32-NEXT: jr $ra
316; GP32-NEXT: move $2, $4
317;
318; GP64-LABEL: or_i64_4:
319; GP64: # %bb.0: # %entry
320; GP64-NEXT: jr $ra
321; GP64-NEXT: ori $2, $4, 4
322;
323; MM32-LABEL: or_i64_4:
324; MM32: # %bb.0: # %entry
325; MM32-NEXT: ori $3, $5, 4
326; MM32-NEXT: move $2, $4
327; MM32-NEXT: jrc $ra
328;
329; MM32R6-LABEL: or_i64_4:
330; MM32R6: # %bb.0: # %entry
331; MM32R6-NEXT: ori $3, $5, 4
332; MM32R6-NEXT: move $2, $4
333; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000334entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000335 %r = or i64 4, %b
336 ret i64 %r
337}
338
339define signext i128 @or_i128_4(i128 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000340; GP32-LABEL: or_i128_4:
341; GP32: # %bb.0: # %entry
342; GP32-NEXT: ori $1, $7, 4
343; GP32-NEXT: move $2, $4
344; GP32-NEXT: move $3, $5
345; GP32-NEXT: move $4, $6
346; GP32-NEXT: jr $ra
347; GP32-NEXT: move $5, $1
348;
349; GP64-LABEL: or_i128_4:
350; GP64: # %bb.0: # %entry
351; GP64-NEXT: ori $3, $5, 4
352; GP64-NEXT: jr $ra
353; GP64-NEXT: move $2, $4
354;
355; MM32-LABEL: or_i128_4:
356; MM32: # %bb.0: # %entry
357; MM32-NEXT: ori $1, $7, 4
358; MM32-NEXT: move $2, $4
359; MM32-NEXT: move $3, $5
360; MM32-NEXT: move $4, $6
361; MM32-NEXT: move $5, $1
362; MM32-NEXT: jrc $ra
363;
364; MM32R6-LABEL: or_i128_4:
365; MM32R6: # %bb.0: # %entry
366; MM32R6-NEXT: ori $1, $7, 4
367; MM32R6-NEXT: move $2, $4
368; MM32R6-NEXT: move $3, $5
369; MM32R6-NEXT: move $4, $6
370; MM32R6-NEXT: move $5, $1
371; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000372entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000373 %r = or i128 4, %b
374 ret i128 %r
375}
376
377define signext i1 @or_i1_31(i1 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000378; GP32-LABEL: or_i1_31:
379; GP32: # %bb.0: # %entry
380; GP32-NEXT: jr $ra
381; GP32-NEXT: addiu $2, $zero, -1
382;
383; GP64-LABEL: or_i1_31:
384; GP64: # %bb.0: # %entry
385; GP64-NEXT: jr $ra
386; GP64-NEXT: addiu $2, $zero, -1
387;
388; MM32-LABEL: or_i1_31:
389; MM32: # %bb.0: # %entry
390; MM32-NEXT: li16 $2, -1
391; MM32-NEXT: jrc $ra
392;
393; MM32R6-LABEL: or_i1_31:
394; MM32R6: # %bb.0: # %entry
395; MM32R6-NEXT: li16 $2, -1
396; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000397entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000398 %r = or i1 31, %b
399 ret i1 %r
400}
401
402define signext i8 @or_i8_31(i8 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000403; GP32-LABEL: or_i8_31:
404; GP32: # %bb.0: # %entry
405; GP32-NEXT: jr $ra
406; GP32-NEXT: ori $2, $4, 31
407;
408; GP64-LABEL: or_i8_31:
409; GP64: # %bb.0: # %entry
410; GP64-NEXT: jr $ra
411; GP64-NEXT: ori $2, $4, 31
412;
413; MM32-LABEL: or_i8_31:
414; MM32: # %bb.0: # %entry
415; MM32-NEXT: jr $ra
416; MM32-NEXT: ori $2, $4, 31
417;
418; MM32R6-LABEL: or_i8_31:
419; MM32R6: # %bb.0: # %entry
420; MM32R6-NEXT: ori $2, $4, 31
421; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000422entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000423 %r = or i8 31, %b
424 ret i8 %r
425}
426
427define signext i16 @or_i16_31(i16 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000428; GP32-LABEL: or_i16_31:
429; GP32: # %bb.0: # %entry
430; GP32-NEXT: jr $ra
431; GP32-NEXT: ori $2, $4, 31
432;
433; GP64-LABEL: or_i16_31:
434; GP64: # %bb.0: # %entry
435; GP64-NEXT: jr $ra
436; GP64-NEXT: ori $2, $4, 31
437;
438; MM32-LABEL: or_i16_31:
439; MM32: # %bb.0: # %entry
440; MM32-NEXT: jr $ra
441; MM32-NEXT: ori $2, $4, 31
442;
443; MM32R6-LABEL: or_i16_31:
444; MM32R6: # %bb.0: # %entry
445; MM32R6-NEXT: ori $2, $4, 31
446; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000447entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000448 %r = or i16 31, %b
449 ret i16 %r
450}
451
452define signext i32 @or_i32_31(i32 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000453; GP32-LABEL: or_i32_31:
454; GP32: # %bb.0: # %entry
455; GP32-NEXT: jr $ra
456; GP32-NEXT: ori $2, $4, 31
457;
458; GP64-LABEL: or_i32_31:
459; GP64: # %bb.0: # %entry
460; GP64-NEXT: jr $ra
461; GP64-NEXT: ori $2, $4, 31
462;
463; MM32-LABEL: or_i32_31:
464; MM32: # %bb.0: # %entry
465; MM32-NEXT: jr $ra
466; MM32-NEXT: ori $2, $4, 31
467;
468; MM32R6-LABEL: or_i32_31:
469; MM32R6: # %bb.0: # %entry
470; MM32R6-NEXT: ori $2, $4, 31
471; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000472entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000473 %r = or i32 31, %b
474 ret i32 %r
475}
476
477define signext i64 @or_i64_31(i64 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000478; GP32-LABEL: or_i64_31:
479; GP32: # %bb.0: # %entry
480; GP32-NEXT: ori $3, $5, 31
481; GP32-NEXT: jr $ra
482; GP32-NEXT: move $2, $4
483;
484; GP64-LABEL: or_i64_31:
485; GP64: # %bb.0: # %entry
486; GP64-NEXT: jr $ra
487; GP64-NEXT: ori $2, $4, 31
488;
489; MM32-LABEL: or_i64_31:
490; MM32: # %bb.0: # %entry
491; MM32-NEXT: ori $3, $5, 31
492; MM32-NEXT: move $2, $4
493; MM32-NEXT: jrc $ra
494;
495; MM32R6-LABEL: or_i64_31:
496; MM32R6: # %bb.0: # %entry
497; MM32R6-NEXT: ori $3, $5, 31
498; MM32R6-NEXT: move $2, $4
499; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000500entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000501 %r = or i64 31, %b
502 ret i64 %r
503}
504
505define signext i128 @or_i128_31(i128 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000506; GP32-LABEL: or_i128_31:
507; GP32: # %bb.0: # %entry
508; GP32-NEXT: ori $1, $7, 31
509; GP32-NEXT: move $2, $4
510; GP32-NEXT: move $3, $5
511; GP32-NEXT: move $4, $6
512; GP32-NEXT: jr $ra
513; GP32-NEXT: move $5, $1
514;
515; GP64-LABEL: or_i128_31:
516; GP64: # %bb.0: # %entry
517; GP64-NEXT: ori $3, $5, 31
518; GP64-NEXT: jr $ra
519; GP64-NEXT: move $2, $4
520;
521; MM32-LABEL: or_i128_31:
522; MM32: # %bb.0: # %entry
523; MM32-NEXT: ori $1, $7, 31
524; MM32-NEXT: move $2, $4
525; MM32-NEXT: move $3, $5
526; MM32-NEXT: move $4, $6
527; MM32-NEXT: move $5, $1
528; MM32-NEXT: jrc $ra
529;
530; MM32R6-LABEL: or_i128_31:
531; MM32R6: # %bb.0: # %entry
532; MM32R6-NEXT: ori $1, $7, 31
533; MM32R6-NEXT: move $2, $4
534; MM32R6-NEXT: move $3, $5
535; MM32R6-NEXT: move $4, $6
536; MM32R6-NEXT: move $5, $1
537; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000538entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000539 %r = or i128 31, %b
540 ret i128 %r
541}
542
543define signext i1 @or_i1_255(i1 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000544; GP32-LABEL: or_i1_255:
545; GP32: # %bb.0: # %entry
546; GP32-NEXT: jr $ra
547; GP32-NEXT: addiu $2, $zero, -1
548;
549; GP64-LABEL: or_i1_255:
550; GP64: # %bb.0: # %entry
551; GP64-NEXT: jr $ra
552; GP64-NEXT: addiu $2, $zero, -1
553;
554; MM32-LABEL: or_i1_255:
555; MM32: # %bb.0: # %entry
556; MM32-NEXT: li16 $2, -1
557; MM32-NEXT: jrc $ra
558;
559; MM32R6-LABEL: or_i1_255:
560; MM32R6: # %bb.0: # %entry
561; MM32R6-NEXT: li16 $2, -1
562; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000563entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000564 %r = or i1 255, %b
565 ret i1 %r
566}
567
568define signext i8 @or_i8_255(i8 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000569; GP32-LABEL: or_i8_255:
570; GP32: # %bb.0: # %entry
571; GP32-NEXT: jr $ra
572; GP32-NEXT: addiu $2, $zero, -1
573;
574; GP64-LABEL: or_i8_255:
575; GP64: # %bb.0: # %entry
576; GP64-NEXT: jr $ra
577; GP64-NEXT: addiu $2, $zero, -1
578;
579; MM32-LABEL: or_i8_255:
580; MM32: # %bb.0: # %entry
581; MM32-NEXT: li16 $2, -1
582; MM32-NEXT: jrc $ra
583;
584; MM32R6-LABEL: or_i8_255:
585; MM32R6: # %bb.0: # %entry
586; MM32R6-NEXT: li16 $2, -1
587; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000588entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000589 %r = or i8 255, %b
590 ret i8 %r
591}
592
593define signext i16 @or_i16_255(i16 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000594; GP32-LABEL: or_i16_255:
595; GP32: # %bb.0: # %entry
596; GP32-NEXT: jr $ra
597; GP32-NEXT: ori $2, $4, 255
598;
599; GP64-LABEL: or_i16_255:
600; GP64: # %bb.0: # %entry
601; GP64-NEXT: jr $ra
602; GP64-NEXT: ori $2, $4, 255
603;
604; MM32-LABEL: or_i16_255:
605; MM32: # %bb.0: # %entry
606; MM32-NEXT: jr $ra
607; MM32-NEXT: ori $2, $4, 255
608;
609; MM32R6-LABEL: or_i16_255:
610; MM32R6: # %bb.0: # %entry
611; MM32R6-NEXT: ori $2, $4, 255
612; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000613entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000614 %r = or i16 255, %b
615 ret i16 %r
616}
617
618define signext i32 @or_i32_255(i32 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000619; GP32-LABEL: or_i32_255:
620; GP32: # %bb.0: # %entry
621; GP32-NEXT: jr $ra
622; GP32-NEXT: ori $2, $4, 255
623;
624; GP64-LABEL: or_i32_255:
625; GP64: # %bb.0: # %entry
626; GP64-NEXT: jr $ra
627; GP64-NEXT: ori $2, $4, 255
628;
629; MM32-LABEL: or_i32_255:
630; MM32: # %bb.0: # %entry
631; MM32-NEXT: jr $ra
632; MM32-NEXT: ori $2, $4, 255
633;
634; MM32R6-LABEL: or_i32_255:
635; MM32R6: # %bb.0: # %entry
636; MM32R6-NEXT: ori $2, $4, 255
637; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000638entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000639 %r = or i32 255, %b
640 ret i32 %r
641}
642
643define signext i64 @or_i64_255(i64 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000644; GP32-LABEL: or_i64_255:
645; GP32: # %bb.0: # %entry
646; GP32-NEXT: ori $3, $5, 255
647; GP32-NEXT: jr $ra
648; GP32-NEXT: move $2, $4
649;
650; GP64-LABEL: or_i64_255:
651; GP64: # %bb.0: # %entry
652; GP64-NEXT: jr $ra
653; GP64-NEXT: ori $2, $4, 255
654;
655; MM32-LABEL: or_i64_255:
656; MM32: # %bb.0: # %entry
657; MM32-NEXT: ori $3, $5, 255
658; MM32-NEXT: move $2, $4
659; MM32-NEXT: jrc $ra
660;
661; MM32R6-LABEL: or_i64_255:
662; MM32R6: # %bb.0: # %entry
663; MM32R6-NEXT: ori $3, $5, 255
664; MM32R6-NEXT: move $2, $4
665; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000666entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000667 %r = or i64 255, %b
668 ret i64 %r
669}
670
671define signext i128 @or_i128_255(i128 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000672; GP32-LABEL: or_i128_255:
673; GP32: # %bb.0: # %entry
674; GP32-NEXT: ori $1, $7, 255
675; GP32-NEXT: move $2, $4
676; GP32-NEXT: move $3, $5
677; GP32-NEXT: move $4, $6
678; GP32-NEXT: jr $ra
679; GP32-NEXT: move $5, $1
680;
681; GP64-LABEL: or_i128_255:
682; GP64: # %bb.0: # %entry
683; GP64-NEXT: ori $3, $5, 255
684; GP64-NEXT: jr $ra
685; GP64-NEXT: move $2, $4
686;
687; MM32-LABEL: or_i128_255:
688; MM32: # %bb.0: # %entry
689; MM32-NEXT: ori $1, $7, 255
690; MM32-NEXT: move $2, $4
691; MM32-NEXT: move $3, $5
692; MM32-NEXT: move $4, $6
693; MM32-NEXT: move $5, $1
694; MM32-NEXT: jrc $ra
695;
696; MM32R6-LABEL: or_i128_255:
697; MM32R6: # %bb.0: # %entry
698; MM32R6-NEXT: ori $1, $7, 255
699; MM32R6-NEXT: move $2, $4
700; MM32R6-NEXT: move $3, $5
701; MM32R6-NEXT: move $4, $6
702; MM32R6-NEXT: move $5, $1
703; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000704entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000705 %r = or i128 255, %b
706 ret i128 %r
707}
708
709define signext i1 @or_i1_32768(i1 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000710; GP32-LABEL: or_i1_32768:
711; GP32: # %bb.0: # %entry
712; GP32-NEXT: jr $ra
713; GP32-NEXT: move $2, $4
714;
715; GP64-LABEL: or_i1_32768:
716; GP64: # %bb.0: # %entry
717; GP64-NEXT: jr $ra
718; GP64-NEXT: move $2, $4
719;
720; MM32-LABEL: or_i1_32768:
721; MM32: # %bb.0: # %entry
722; MM32-NEXT: move $2, $4
723; MM32-NEXT: jrc $ra
724;
725; MM32R6-LABEL: or_i1_32768:
726; MM32R6: # %bb.0: # %entry
727; MM32R6-NEXT: move $2, $4
728; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000729entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000730 %r = or i1 32768, %b
731 ret i1 %r
732}
733
734define signext i8 @or_i8_32768(i8 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000735; GP32-LABEL: or_i8_32768:
736; GP32: # %bb.0: # %entry
737; GP32-NEXT: jr $ra
738; GP32-NEXT: move $2, $4
739;
740; GP64-LABEL: or_i8_32768:
741; GP64: # %bb.0: # %entry
742; GP64-NEXT: jr $ra
743; GP64-NEXT: move $2, $4
744;
745; MM32-LABEL: or_i8_32768:
746; MM32: # %bb.0: # %entry
747; MM32-NEXT: move $2, $4
748; MM32-NEXT: jrc $ra
749;
750; MM32R6-LABEL: or_i8_32768:
751; MM32R6: # %bb.0: # %entry
752; MM32R6-NEXT: move $2, $4
753; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000754entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000755 %r = or i8 32768, %b
756 ret i8 %r
757}
758
759define signext i16 @or_i16_32768(i16 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000760; GP32-LABEL: or_i16_32768:
761; GP32: # %bb.0: # %entry
762; GP32-NEXT: addiu $1, $zero, -32768
763; GP32-NEXT: jr $ra
764; GP32-NEXT: or $2, $4, $1
765;
766; GP64-LABEL: or_i16_32768:
767; GP64: # %bb.0: # %entry
768; GP64-NEXT: addiu $1, $zero, -32768
769; GP64-NEXT: jr $ra
770; GP64-NEXT: or $2, $4, $1
771;
772; MM32-LABEL: or_i16_32768:
773; MM32: # %bb.0: # %entry
774; MM32-NEXT: addiu $2, $zero, -32768
775; MM32-NEXT: or16 $2, $4
776; MM32-NEXT: jrc $ra
777;
778; MM32R6-LABEL: or_i16_32768:
779; MM32R6: # %bb.0: # %entry
780; MM32R6-NEXT: addiu $2, $zero, -32768
781; MM32R6-NEXT: or16 $2, $4
782; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000783entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000784 %r = or i16 32768, %b
785 ret i16 %r
786}
787
788define signext i32 @or_i32_32768(i32 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000789; GP32-LABEL: or_i32_32768:
790; GP32: # %bb.0: # %entry
791; GP32-NEXT: jr $ra
792; GP32-NEXT: ori $2, $4, 32768
793;
794; GP64-LABEL: or_i32_32768:
795; GP64: # %bb.0: # %entry
796; GP64-NEXT: jr $ra
797; GP64-NEXT: ori $2, $4, 32768
798;
799; MM32-LABEL: or_i32_32768:
800; MM32: # %bb.0: # %entry
801; MM32-NEXT: jr $ra
802; MM32-NEXT: ori $2, $4, 32768
803;
804; MM32R6-LABEL: or_i32_32768:
805; MM32R6: # %bb.0: # %entry
806; MM32R6-NEXT: ori $2, $4, 32768
807; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000808entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000809 %r = or i32 32768, %b
810 ret i32 %r
811}
812
813define signext i64 @or_i64_32768(i64 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000814; GP32-LABEL: or_i64_32768:
815; GP32: # %bb.0: # %entry
816; GP32-NEXT: ori $3, $5, 32768
817; GP32-NEXT: jr $ra
818; GP32-NEXT: move $2, $4
819;
820; GP64-LABEL: or_i64_32768:
821; GP64: # %bb.0: # %entry
822; GP64-NEXT: jr $ra
823; GP64-NEXT: ori $2, $4, 32768
824;
825; MM32-LABEL: or_i64_32768:
826; MM32: # %bb.0: # %entry
827; MM32-NEXT: ori $3, $5, 32768
828; MM32-NEXT: move $2, $4
829; MM32-NEXT: jrc $ra
830;
831; MM32R6-LABEL: or_i64_32768:
832; MM32R6: # %bb.0: # %entry
833; MM32R6-NEXT: ori $3, $5, 32768
834; MM32R6-NEXT: move $2, $4
835; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000836entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000837 %r = or i64 32768, %b
838 ret i64 %r
839}
840
841define signext i128 @or_i128_32768(i128 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000842; GP32-LABEL: or_i128_32768:
843; GP32: # %bb.0: # %entry
844; GP32-NEXT: ori $1, $7, 32768
845; GP32-NEXT: move $2, $4
846; GP32-NEXT: move $3, $5
847; GP32-NEXT: move $4, $6
848; GP32-NEXT: jr $ra
849; GP32-NEXT: move $5, $1
850;
851; GP64-LABEL: or_i128_32768:
852; GP64: # %bb.0: # %entry
853; GP64-NEXT: ori $3, $5, 32768
854; GP64-NEXT: jr $ra
855; GP64-NEXT: move $2, $4
856;
857; MM32-LABEL: or_i128_32768:
858; MM32: # %bb.0: # %entry
859; MM32-NEXT: ori $1, $7, 32768
860; MM32-NEXT: move $2, $4
861; MM32-NEXT: move $3, $5
862; MM32-NEXT: move $4, $6
863; MM32-NEXT: move $5, $1
864; MM32-NEXT: jrc $ra
865;
866; MM32R6-LABEL: or_i128_32768:
867; MM32R6: # %bb.0: # %entry
868; MM32R6-NEXT: ori $1, $7, 32768
869; MM32R6-NEXT: move $2, $4
870; MM32R6-NEXT: move $3, $5
871; MM32R6-NEXT: move $4, $6
872; MM32R6-NEXT: move $5, $1
873; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000874entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000875 %r = or i128 32768, %b
876 ret i128 %r
877}
878
879define signext i1 @or_i1_65(i1 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000880; GP32-LABEL: or_i1_65:
881; GP32: # %bb.0: # %entry
882; GP32-NEXT: jr $ra
883; GP32-NEXT: addiu $2, $zero, -1
884;
885; GP64-LABEL: or_i1_65:
886; GP64: # %bb.0: # %entry
887; GP64-NEXT: jr $ra
888; GP64-NEXT: addiu $2, $zero, -1
889;
890; MM32-LABEL: or_i1_65:
891; MM32: # %bb.0: # %entry
892; MM32-NEXT: li16 $2, -1
893; MM32-NEXT: jrc $ra
894;
895; MM32R6-LABEL: or_i1_65:
896; MM32R6: # %bb.0: # %entry
897; MM32R6-NEXT: li16 $2, -1
898; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000899entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000900 %r = or i1 65, %b
901 ret i1 %r
902}
903
904define signext i8 @or_i8_65(i8 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000905; GP32-LABEL: or_i8_65:
906; GP32: # %bb.0: # %entry
907; GP32-NEXT: jr $ra
908; GP32-NEXT: ori $2, $4, 65
909;
910; GP64-LABEL: or_i8_65:
911; GP64: # %bb.0: # %entry
912; GP64-NEXT: jr $ra
913; GP64-NEXT: ori $2, $4, 65
914;
915; MM32-LABEL: or_i8_65:
916; MM32: # %bb.0: # %entry
917; MM32-NEXT: jr $ra
918; MM32-NEXT: ori $2, $4, 65
919;
920; MM32R6-LABEL: or_i8_65:
921; MM32R6: # %bb.0: # %entry
922; MM32R6-NEXT: ori $2, $4, 65
923; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000924entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000925 %r = or i8 65, %b
926 ret i8 %r
927}
928
929define signext i16 @or_i16_65(i16 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000930; GP32-LABEL: or_i16_65:
931; GP32: # %bb.0: # %entry
932; GP32-NEXT: jr $ra
933; GP32-NEXT: ori $2, $4, 65
934;
935; GP64-LABEL: or_i16_65:
936; GP64: # %bb.0: # %entry
937; GP64-NEXT: jr $ra
938; GP64-NEXT: ori $2, $4, 65
939;
940; MM32-LABEL: or_i16_65:
941; MM32: # %bb.0: # %entry
942; MM32-NEXT: jr $ra
943; MM32-NEXT: ori $2, $4, 65
944;
945; MM32R6-LABEL: or_i16_65:
946; MM32R6: # %bb.0: # %entry
947; MM32R6-NEXT: ori $2, $4, 65
948; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000949entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000950 %r = or i16 65, %b
951 ret i16 %r
952}
953
954define signext i32 @or_i32_65(i32 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000955; GP32-LABEL: or_i32_65:
956; GP32: # %bb.0: # %entry
957; GP32-NEXT: jr $ra
958; GP32-NEXT: ori $2, $4, 65
959;
960; GP64-LABEL: or_i32_65:
961; GP64: # %bb.0: # %entry
962; GP64-NEXT: jr $ra
963; GP64-NEXT: ori $2, $4, 65
964;
965; MM32-LABEL: or_i32_65:
966; MM32: # %bb.0: # %entry
967; MM32-NEXT: jr $ra
968; MM32-NEXT: ori $2, $4, 65
969;
970; MM32R6-LABEL: or_i32_65:
971; MM32R6: # %bb.0: # %entry
972; MM32R6-NEXT: ori $2, $4, 65
973; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000974entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +0000975 %r = or i32 65, %b
976 ret i32 %r
977}
978
979define signext i64 @or_i64_65(i64 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +0000980; GP32-LABEL: or_i64_65:
981; GP32: # %bb.0: # %entry
982; GP32-NEXT: ori $3, $5, 65
983; GP32-NEXT: jr $ra
984; GP32-NEXT: move $2, $4
985;
986; GP64-LABEL: or_i64_65:
987; GP64: # %bb.0: # %entry
988; GP64-NEXT: jr $ra
989; GP64-NEXT: ori $2, $4, 65
990;
991; MM32-LABEL: or_i64_65:
992; MM32: # %bb.0: # %entry
993; MM32-NEXT: ori $3, $5, 65
994; MM32-NEXT: move $2, $4
995; MM32-NEXT: jrc $ra
996;
997; MM32R6-LABEL: or_i64_65:
998; MM32R6: # %bb.0: # %entry
999; MM32R6-NEXT: ori $3, $5, 65
1000; MM32R6-NEXT: move $2, $4
1001; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001002entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001003 %r = or i64 65, %b
1004 ret i64 %r
1005}
1006
1007define signext i128 @or_i128_65(i128 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +00001008; GP32-LABEL: or_i128_65:
1009; GP32: # %bb.0: # %entry
1010; GP32-NEXT: ori $1, $7, 65
1011; GP32-NEXT: move $2, $4
1012; GP32-NEXT: move $3, $5
1013; GP32-NEXT: move $4, $6
1014; GP32-NEXT: jr $ra
1015; GP32-NEXT: move $5, $1
1016;
1017; GP64-LABEL: or_i128_65:
1018; GP64: # %bb.0: # %entry
1019; GP64-NEXT: ori $3, $5, 65
1020; GP64-NEXT: jr $ra
1021; GP64-NEXT: move $2, $4
1022;
1023; MM32-LABEL: or_i128_65:
1024; MM32: # %bb.0: # %entry
1025; MM32-NEXT: ori $1, $7, 65
1026; MM32-NEXT: move $2, $4
1027; MM32-NEXT: move $3, $5
1028; MM32-NEXT: move $4, $6
1029; MM32-NEXT: move $5, $1
1030; MM32-NEXT: jrc $ra
1031;
1032; MM32R6-LABEL: or_i128_65:
1033; MM32R6: # %bb.0: # %entry
1034; MM32R6-NEXT: ori $1, $7, 65
1035; MM32R6-NEXT: move $2, $4
1036; MM32R6-NEXT: move $3, $5
1037; MM32R6-NEXT: move $4, $6
1038; MM32R6-NEXT: move $5, $1
1039; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001040entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001041 %r = or i128 65, %b
1042 ret i128 %r
1043}
1044
1045define signext i1 @or_i1_256(i1 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +00001046; GP32-LABEL: or_i1_256:
1047; GP32: # %bb.0: # %entry
1048; GP32-NEXT: jr $ra
1049; GP32-NEXT: move $2, $4
1050;
1051; GP64-LABEL: or_i1_256:
1052; GP64: # %bb.0: # %entry
1053; GP64-NEXT: jr $ra
1054; GP64-NEXT: move $2, $4
1055;
1056; MM32-LABEL: or_i1_256:
1057; MM32: # %bb.0: # %entry
1058; MM32-NEXT: move $2, $4
1059; MM32-NEXT: jrc $ra
1060;
1061; MM32R6-LABEL: or_i1_256:
1062; MM32R6: # %bb.0: # %entry
1063; MM32R6-NEXT: move $2, $4
1064; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001065entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001066 %r = or i1 256, %b
1067 ret i1 %r
1068}
1069
1070define signext i8 @or_i8_256(i8 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +00001071; GP32-LABEL: or_i8_256:
1072; GP32: # %bb.0: # %entry
1073; GP32-NEXT: jr $ra
1074; GP32-NEXT: move $2, $4
1075;
1076; GP64-LABEL: or_i8_256:
1077; GP64: # %bb.0: # %entry
1078; GP64-NEXT: jr $ra
1079; GP64-NEXT: move $2, $4
1080;
1081; MM32-LABEL: or_i8_256:
1082; MM32: # %bb.0: # %entry
1083; MM32-NEXT: move $2, $4
1084; MM32-NEXT: jrc $ra
1085;
1086; MM32R6-LABEL: or_i8_256:
1087; MM32R6: # %bb.0: # %entry
1088; MM32R6-NEXT: move $2, $4
1089; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001090entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001091 %r = or i8 256, %b
1092 ret i8 %r
1093}
1094
1095define signext i16 @or_i16_256(i16 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +00001096; GP32-LABEL: or_i16_256:
1097; GP32: # %bb.0: # %entry
1098; GP32-NEXT: jr $ra
1099; GP32-NEXT: ori $2, $4, 256
1100;
1101; GP64-LABEL: or_i16_256:
1102; GP64: # %bb.0: # %entry
1103; GP64-NEXT: jr $ra
1104; GP64-NEXT: ori $2, $4, 256
1105;
1106; MM32-LABEL: or_i16_256:
1107; MM32: # %bb.0: # %entry
1108; MM32-NEXT: jr $ra
1109; MM32-NEXT: ori $2, $4, 256
1110;
1111; MM32R6-LABEL: or_i16_256:
1112; MM32R6: # %bb.0: # %entry
1113; MM32R6-NEXT: ori $2, $4, 256
1114; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001115entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001116 %r = or i16 256, %b
1117 ret i16 %r
1118}
1119
1120define signext i32 @or_i32_256(i32 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +00001121; GP32-LABEL: or_i32_256:
1122; GP32: # %bb.0: # %entry
1123; GP32-NEXT: jr $ra
1124; GP32-NEXT: ori $2, $4, 256
1125;
1126; GP64-LABEL: or_i32_256:
1127; GP64: # %bb.0: # %entry
1128; GP64-NEXT: jr $ra
1129; GP64-NEXT: ori $2, $4, 256
1130;
1131; MM32-LABEL: or_i32_256:
1132; MM32: # %bb.0: # %entry
1133; MM32-NEXT: jr $ra
1134; MM32-NEXT: ori $2, $4, 256
1135;
1136; MM32R6-LABEL: or_i32_256:
1137; MM32R6: # %bb.0: # %entry
1138; MM32R6-NEXT: ori $2, $4, 256
1139; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001140entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001141 %r = or i32 256, %b
1142 ret i32 %r
1143}
1144
1145define signext i64 @or_i64_256(i64 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +00001146; GP32-LABEL: or_i64_256:
1147; GP32: # %bb.0: # %entry
1148; GP32-NEXT: ori $3, $5, 256
1149; GP32-NEXT: jr $ra
1150; GP32-NEXT: move $2, $4
1151;
1152; GP64-LABEL: or_i64_256:
1153; GP64: # %bb.0: # %entry
1154; GP64-NEXT: jr $ra
1155; GP64-NEXT: ori $2, $4, 256
1156;
1157; MM32-LABEL: or_i64_256:
1158; MM32: # %bb.0: # %entry
1159; MM32-NEXT: ori $3, $5, 256
1160; MM32-NEXT: move $2, $4
1161; MM32-NEXT: jrc $ra
1162;
1163; MM32R6-LABEL: or_i64_256:
1164; MM32R6: # %bb.0: # %entry
1165; MM32R6-NEXT: ori $3, $5, 256
1166; MM32R6-NEXT: move $2, $4
1167; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001168entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001169 %r = or i64 256, %b
1170 ret i64 %r
1171}
1172
1173define signext i128 @or_i128_256(i128 signext %b) {
Simon Dardis12645282017-12-14 16:42:04 +00001174; GP32-LABEL: or_i128_256:
1175; GP32: # %bb.0: # %entry
1176; GP32-NEXT: ori $1, $7, 256
1177; GP32-NEXT: move $2, $4
1178; GP32-NEXT: move $3, $5
1179; GP32-NEXT: move $4, $6
1180; GP32-NEXT: jr $ra
1181; GP32-NEXT: move $5, $1
1182;
1183; GP64-LABEL: or_i128_256:
1184; GP64: # %bb.0: # %entry
1185; GP64-NEXT: ori $3, $5, 256
1186; GP64-NEXT: jr $ra
1187; GP64-NEXT: move $2, $4
1188;
1189; MM32-LABEL: or_i128_256:
1190; MM32: # %bb.0: # %entry
1191; MM32-NEXT: ori $1, $7, 256
1192; MM32-NEXT: move $2, $4
1193; MM32-NEXT: move $3, $5
1194; MM32-NEXT: move $4, $6
1195; MM32-NEXT: move $5, $1
1196; MM32-NEXT: jrc $ra
1197;
1198; MM32R6-LABEL: or_i128_256:
1199; MM32R6: # %bb.0: # %entry
1200; MM32R6-NEXT: ori $1, $7, 256
1201; MM32R6-NEXT: move $2, $4
1202; MM32R6-NEXT: move $3, $5
1203; MM32R6-NEXT: move $4, $6
1204; MM32R6-NEXT: move $5, $1
1205; MM32R6-NEXT: jrc $ra
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001206entry:
Zlatko Buljand2ed9c62016-06-15 07:46:24 +00001207 %r = or i128 256, %b
1208 ret i128 %r
1209}