xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/msa/3r-m.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; Test the MSA intrinsics that are encoded with the 3R instruction format.
2*9880d681SAndroid Build Coastguard Worker; There are lots of these so this covers those beginning with 'm'
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips -mattr=+msa,+fp64 < %s | FileCheck %s
5*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mattr=+msa,+fp64 < %s | FileCheck %s
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_a_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
8*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_a_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
9*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_a_b_RES  = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_max_a_b_test() nounwind {
12*9880d681SAndroid Build Coastguard Workerentry:
13*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_max_a_b_ARG1
14*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_max_a_b_ARG2
15*9880d681SAndroid Build Coastguard Worker  %2 = tail call <16 x i8> @llvm.mips.max.a.b(<16 x i8> %0, <16 x i8> %1)
16*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_max_a_b_RES
17*9880d681SAndroid Build Coastguard Worker  ret void
18*9880d681SAndroid Build Coastguard Worker}
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.max.a.b(<16 x i8>, <16 x i8>) nounwind
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_max_a_b_test:
23*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
24*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
25*9880d681SAndroid Build Coastguard Worker; CHECK: max_a.b
26*9880d681SAndroid Build Coastguard Worker; CHECK: st.b
27*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_max_a_b_test
28*9880d681SAndroid Build Coastguard Worker;
29*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_a_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
30*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_a_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
31*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_a_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_max_a_h_test() nounwind {
34*9880d681SAndroid Build Coastguard Workerentry:
35*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_max_a_h_ARG1
36*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_max_a_h_ARG2
37*9880d681SAndroid Build Coastguard Worker  %2 = tail call <8 x i16> @llvm.mips.max.a.h(<8 x i16> %0, <8 x i16> %1)
38*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_max_a_h_RES
39*9880d681SAndroid Build Coastguard Worker  ret void
40*9880d681SAndroid Build Coastguard Worker}
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.max.a.h(<8 x i16>, <8 x i16>) nounwind
43*9880d681SAndroid Build Coastguard Worker
44*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_max_a_h_test:
45*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
46*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
47*9880d681SAndroid Build Coastguard Worker; CHECK: max_a.h
48*9880d681SAndroid Build Coastguard Worker; CHECK: st.h
49*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_max_a_h_test
50*9880d681SAndroid Build Coastguard Worker;
51*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_a_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
52*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_a_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
53*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_a_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_max_a_w_test() nounwind {
56*9880d681SAndroid Build Coastguard Workerentry:
57*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_max_a_w_ARG1
58*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_max_a_w_ARG2
59*9880d681SAndroid Build Coastguard Worker  %2 = tail call <4 x i32> @llvm.mips.max.a.w(<4 x i32> %0, <4 x i32> %1)
60*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_max_a_w_RES
61*9880d681SAndroid Build Coastguard Worker  ret void
62*9880d681SAndroid Build Coastguard Worker}
63*9880d681SAndroid Build Coastguard Worker
64*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.max.a.w(<4 x i32>, <4 x i32>) nounwind
65*9880d681SAndroid Build Coastguard Worker
66*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_max_a_w_test:
67*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
68*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
69*9880d681SAndroid Build Coastguard Worker; CHECK: max_a.w
70*9880d681SAndroid Build Coastguard Worker; CHECK: st.w
71*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_max_a_w_test
72*9880d681SAndroid Build Coastguard Worker;
73*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_a_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
74*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_a_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
75*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_a_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
76*9880d681SAndroid Build Coastguard Worker
77*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_max_a_d_test() nounwind {
78*9880d681SAndroid Build Coastguard Workerentry:
79*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_max_a_d_ARG1
80*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_max_a_d_ARG2
81*9880d681SAndroid Build Coastguard Worker  %2 = tail call <2 x i64> @llvm.mips.max.a.d(<2 x i64> %0, <2 x i64> %1)
82*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_max_a_d_RES
83*9880d681SAndroid Build Coastguard Worker  ret void
84*9880d681SAndroid Build Coastguard Worker}
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.max.a.d(<2 x i64>, <2 x i64>) nounwind
87*9880d681SAndroid Build Coastguard Worker
88*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_max_a_d_test:
89*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
90*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
91*9880d681SAndroid Build Coastguard Worker; CHECK: max_a.d
92*9880d681SAndroid Build Coastguard Worker; CHECK: st.d
93*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_max_a_d_test
94*9880d681SAndroid Build Coastguard Worker;
95*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_s_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
96*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_s_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
97*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_s_b_RES  = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
98*9880d681SAndroid Build Coastguard Worker
99*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_max_s_b_test() nounwind {
100*9880d681SAndroid Build Coastguard Workerentry:
101*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_max_s_b_ARG1
102*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_max_s_b_ARG2
103*9880d681SAndroid Build Coastguard Worker  %2 = tail call <16 x i8> @llvm.mips.max.s.b(<16 x i8> %0, <16 x i8> %1)
104*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_max_s_b_RES
105*9880d681SAndroid Build Coastguard Worker  ret void
106*9880d681SAndroid Build Coastguard Worker}
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.max.s.b(<16 x i8>, <16 x i8>) nounwind
109*9880d681SAndroid Build Coastguard Worker
110*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_max_s_b_test:
111*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
112*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
113*9880d681SAndroid Build Coastguard Worker; CHECK: max_s.b
114*9880d681SAndroid Build Coastguard Worker; CHECK: st.b
115*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_max_s_b_test
116*9880d681SAndroid Build Coastguard Worker;
117*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_s_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
118*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_s_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
119*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_s_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
120*9880d681SAndroid Build Coastguard Worker
121*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_max_s_h_test() nounwind {
122*9880d681SAndroid Build Coastguard Workerentry:
123*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_max_s_h_ARG1
124*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_max_s_h_ARG2
125*9880d681SAndroid Build Coastguard Worker  %2 = tail call <8 x i16> @llvm.mips.max.s.h(<8 x i16> %0, <8 x i16> %1)
126*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_max_s_h_RES
127*9880d681SAndroid Build Coastguard Worker  ret void
128*9880d681SAndroid Build Coastguard Worker}
129*9880d681SAndroid Build Coastguard Worker
130*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.max.s.h(<8 x i16>, <8 x i16>) nounwind
131*9880d681SAndroid Build Coastguard Worker
132*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_max_s_h_test:
133*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
134*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
135*9880d681SAndroid Build Coastguard Worker; CHECK: max_s.h
136*9880d681SAndroid Build Coastguard Worker; CHECK: st.h
137*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_max_s_h_test
138*9880d681SAndroid Build Coastguard Worker;
139*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_s_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
140*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_s_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
141*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_s_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
142*9880d681SAndroid Build Coastguard Worker
143*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_max_s_w_test() nounwind {
144*9880d681SAndroid Build Coastguard Workerentry:
145*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_max_s_w_ARG1
146*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_max_s_w_ARG2
147*9880d681SAndroid Build Coastguard Worker  %2 = tail call <4 x i32> @llvm.mips.max.s.w(<4 x i32> %0, <4 x i32> %1)
148*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_max_s_w_RES
149*9880d681SAndroid Build Coastguard Worker  ret void
150*9880d681SAndroid Build Coastguard Worker}
151*9880d681SAndroid Build Coastguard Worker
152*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.max.s.w(<4 x i32>, <4 x i32>) nounwind
153*9880d681SAndroid Build Coastguard Worker
154*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_max_s_w_test:
155*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
156*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
157*9880d681SAndroid Build Coastguard Worker; CHECK: max_s.w
158*9880d681SAndroid Build Coastguard Worker; CHECK: st.w
159*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_max_s_w_test
160*9880d681SAndroid Build Coastguard Worker;
161*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_s_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
162*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_s_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
163*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_s_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
164*9880d681SAndroid Build Coastguard Worker
165*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_max_s_d_test() nounwind {
166*9880d681SAndroid Build Coastguard Workerentry:
167*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_max_s_d_ARG1
168*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_max_s_d_ARG2
169*9880d681SAndroid Build Coastguard Worker  %2 = tail call <2 x i64> @llvm.mips.max.s.d(<2 x i64> %0, <2 x i64> %1)
170*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_max_s_d_RES
171*9880d681SAndroid Build Coastguard Worker  ret void
172*9880d681SAndroid Build Coastguard Worker}
173*9880d681SAndroid Build Coastguard Worker
174*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.max.s.d(<2 x i64>, <2 x i64>) nounwind
175*9880d681SAndroid Build Coastguard Worker
176*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_max_s_d_test:
177*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
178*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
179*9880d681SAndroid Build Coastguard Worker; CHECK: max_s.d
180*9880d681SAndroid Build Coastguard Worker; CHECK: st.d
181*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_max_s_d_test
182*9880d681SAndroid Build Coastguard Worker;
183*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_u_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
184*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_u_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
185*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_u_b_RES  = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
186*9880d681SAndroid Build Coastguard Worker
187*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_max_u_b_test() nounwind {
188*9880d681SAndroid Build Coastguard Workerentry:
189*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_max_u_b_ARG1
190*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_max_u_b_ARG2
191*9880d681SAndroid Build Coastguard Worker  %2 = tail call <16 x i8> @llvm.mips.max.u.b(<16 x i8> %0, <16 x i8> %1)
192*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_max_u_b_RES
193*9880d681SAndroid Build Coastguard Worker  ret void
194*9880d681SAndroid Build Coastguard Worker}
195*9880d681SAndroid Build Coastguard Worker
196*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.max.u.b(<16 x i8>, <16 x i8>) nounwind
197*9880d681SAndroid Build Coastguard Worker
198*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_max_u_b_test:
199*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
200*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
201*9880d681SAndroid Build Coastguard Worker; CHECK: max_u.b
202*9880d681SAndroid Build Coastguard Worker; CHECK: st.b
203*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_max_u_b_test
204*9880d681SAndroid Build Coastguard Worker;
205*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_u_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
206*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_u_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
207*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_u_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
208*9880d681SAndroid Build Coastguard Worker
209*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_max_u_h_test() nounwind {
210*9880d681SAndroid Build Coastguard Workerentry:
211*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_max_u_h_ARG1
212*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_max_u_h_ARG2
213*9880d681SAndroid Build Coastguard Worker  %2 = tail call <8 x i16> @llvm.mips.max.u.h(<8 x i16> %0, <8 x i16> %1)
214*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_max_u_h_RES
215*9880d681SAndroid Build Coastguard Worker  ret void
216*9880d681SAndroid Build Coastguard Worker}
217*9880d681SAndroid Build Coastguard Worker
218*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.max.u.h(<8 x i16>, <8 x i16>) nounwind
219*9880d681SAndroid Build Coastguard Worker
220*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_max_u_h_test:
221*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
222*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
223*9880d681SAndroid Build Coastguard Worker; CHECK: max_u.h
224*9880d681SAndroid Build Coastguard Worker; CHECK: st.h
225*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_max_u_h_test
226*9880d681SAndroid Build Coastguard Worker;
227*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_u_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
228*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_u_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
229*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_u_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
230*9880d681SAndroid Build Coastguard Worker
231*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_max_u_w_test() nounwind {
232*9880d681SAndroid Build Coastguard Workerentry:
233*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_max_u_w_ARG1
234*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_max_u_w_ARG2
235*9880d681SAndroid Build Coastguard Worker  %2 = tail call <4 x i32> @llvm.mips.max.u.w(<4 x i32> %0, <4 x i32> %1)
236*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_max_u_w_RES
237*9880d681SAndroid Build Coastguard Worker  ret void
238*9880d681SAndroid Build Coastguard Worker}
239*9880d681SAndroid Build Coastguard Worker
240*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.max.u.w(<4 x i32>, <4 x i32>) nounwind
241*9880d681SAndroid Build Coastguard Worker
242*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_max_u_w_test:
243*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
244*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
245*9880d681SAndroid Build Coastguard Worker; CHECK: max_u.w
246*9880d681SAndroid Build Coastguard Worker; CHECK: st.w
247*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_max_u_w_test
248*9880d681SAndroid Build Coastguard Worker;
249*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_u_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
250*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_u_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
251*9880d681SAndroid Build Coastguard Worker@llvm_mips_max_u_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
252*9880d681SAndroid Build Coastguard Worker
253*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_max_u_d_test() nounwind {
254*9880d681SAndroid Build Coastguard Workerentry:
255*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_max_u_d_ARG1
256*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_max_u_d_ARG2
257*9880d681SAndroid Build Coastguard Worker  %2 = tail call <2 x i64> @llvm.mips.max.u.d(<2 x i64> %0, <2 x i64> %1)
258*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_max_u_d_RES
259*9880d681SAndroid Build Coastguard Worker  ret void
260*9880d681SAndroid Build Coastguard Worker}
261*9880d681SAndroid Build Coastguard Worker
262*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.max.u.d(<2 x i64>, <2 x i64>) nounwind
263*9880d681SAndroid Build Coastguard Worker
264*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_max_u_d_test:
265*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
266*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
267*9880d681SAndroid Build Coastguard Worker; CHECK: max_u.d
268*9880d681SAndroid Build Coastguard Worker; CHECK: st.d
269*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_max_u_d_test
270*9880d681SAndroid Build Coastguard Worker;
271*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_a_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
272*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_a_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
273*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_a_b_RES  = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
274*9880d681SAndroid Build Coastguard Worker
275*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_min_a_b_test() nounwind {
276*9880d681SAndroid Build Coastguard Workerentry:
277*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_min_a_b_ARG1
278*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_min_a_b_ARG2
279*9880d681SAndroid Build Coastguard Worker  %2 = tail call <16 x i8> @llvm.mips.min.a.b(<16 x i8> %0, <16 x i8> %1)
280*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_min_a_b_RES
281*9880d681SAndroid Build Coastguard Worker  ret void
282*9880d681SAndroid Build Coastguard Worker}
283*9880d681SAndroid Build Coastguard Worker
284*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.min.a.b(<16 x i8>, <16 x i8>) nounwind
285*9880d681SAndroid Build Coastguard Worker
286*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_min_a_b_test:
287*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
288*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
289*9880d681SAndroid Build Coastguard Worker; CHECK: min_a.b
290*9880d681SAndroid Build Coastguard Worker; CHECK: st.b
291*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_min_a_b_test
292*9880d681SAndroid Build Coastguard Worker;
293*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_a_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
294*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_a_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
295*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_a_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
296*9880d681SAndroid Build Coastguard Worker
297*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_min_a_h_test() nounwind {
298*9880d681SAndroid Build Coastguard Workerentry:
299*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_min_a_h_ARG1
300*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_min_a_h_ARG2
301*9880d681SAndroid Build Coastguard Worker  %2 = tail call <8 x i16> @llvm.mips.min.a.h(<8 x i16> %0, <8 x i16> %1)
302*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_min_a_h_RES
303*9880d681SAndroid Build Coastguard Worker  ret void
304*9880d681SAndroid Build Coastguard Worker}
305*9880d681SAndroid Build Coastguard Worker
306*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.min.a.h(<8 x i16>, <8 x i16>) nounwind
307*9880d681SAndroid Build Coastguard Worker
308*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_min_a_h_test:
309*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
310*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
311*9880d681SAndroid Build Coastguard Worker; CHECK: min_a.h
312*9880d681SAndroid Build Coastguard Worker; CHECK: st.h
313*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_min_a_h_test
314*9880d681SAndroid Build Coastguard Worker;
315*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_a_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
316*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_a_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
317*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_a_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
318*9880d681SAndroid Build Coastguard Worker
319*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_min_a_w_test() nounwind {
320*9880d681SAndroid Build Coastguard Workerentry:
321*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_min_a_w_ARG1
322*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_min_a_w_ARG2
323*9880d681SAndroid Build Coastguard Worker  %2 = tail call <4 x i32> @llvm.mips.min.a.w(<4 x i32> %0, <4 x i32> %1)
324*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_min_a_w_RES
325*9880d681SAndroid Build Coastguard Worker  ret void
326*9880d681SAndroid Build Coastguard Worker}
327*9880d681SAndroid Build Coastguard Worker
328*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.min.a.w(<4 x i32>, <4 x i32>) nounwind
329*9880d681SAndroid Build Coastguard Worker
330*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_min_a_w_test:
331*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
332*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
333*9880d681SAndroid Build Coastguard Worker; CHECK: min_a.w
334*9880d681SAndroid Build Coastguard Worker; CHECK: st.w
335*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_min_a_w_test
336*9880d681SAndroid Build Coastguard Worker;
337*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_a_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
338*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_a_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
339*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_a_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
340*9880d681SAndroid Build Coastguard Worker
341*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_min_a_d_test() nounwind {
342*9880d681SAndroid Build Coastguard Workerentry:
343*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_min_a_d_ARG1
344*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_min_a_d_ARG2
345*9880d681SAndroid Build Coastguard Worker  %2 = tail call <2 x i64> @llvm.mips.min.a.d(<2 x i64> %0, <2 x i64> %1)
346*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_min_a_d_RES
347*9880d681SAndroid Build Coastguard Worker  ret void
348*9880d681SAndroid Build Coastguard Worker}
349*9880d681SAndroid Build Coastguard Worker
350*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.min.a.d(<2 x i64>, <2 x i64>) nounwind
351*9880d681SAndroid Build Coastguard Worker
352*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_min_a_d_test:
353*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
354*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
355*9880d681SAndroid Build Coastguard Worker; CHECK: min_a.d
356*9880d681SAndroid Build Coastguard Worker; CHECK: st.d
357*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_min_a_d_test
358*9880d681SAndroid Build Coastguard Worker;
359*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_s_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
360*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_s_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
361*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_s_b_RES  = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
362*9880d681SAndroid Build Coastguard Worker
363*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_min_s_b_test() nounwind {
364*9880d681SAndroid Build Coastguard Workerentry:
365*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_min_s_b_ARG1
366*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_min_s_b_ARG2
367*9880d681SAndroid Build Coastguard Worker  %2 = tail call <16 x i8> @llvm.mips.min.s.b(<16 x i8> %0, <16 x i8> %1)
368*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_min_s_b_RES
369*9880d681SAndroid Build Coastguard Worker  ret void
370*9880d681SAndroid Build Coastguard Worker}
371*9880d681SAndroid Build Coastguard Worker
372*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.min.s.b(<16 x i8>, <16 x i8>) nounwind
373*9880d681SAndroid Build Coastguard Worker
374*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_min_s_b_test:
375*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
376*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
377*9880d681SAndroid Build Coastguard Worker; CHECK: min_s.b
378*9880d681SAndroid Build Coastguard Worker; CHECK: st.b
379*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_min_s_b_test
380*9880d681SAndroid Build Coastguard Worker;
381*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_s_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
382*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_s_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
383*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_s_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
384*9880d681SAndroid Build Coastguard Worker
385*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_min_s_h_test() nounwind {
386*9880d681SAndroid Build Coastguard Workerentry:
387*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_min_s_h_ARG1
388*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_min_s_h_ARG2
389*9880d681SAndroid Build Coastguard Worker  %2 = tail call <8 x i16> @llvm.mips.min.s.h(<8 x i16> %0, <8 x i16> %1)
390*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_min_s_h_RES
391*9880d681SAndroid Build Coastguard Worker  ret void
392*9880d681SAndroid Build Coastguard Worker}
393*9880d681SAndroid Build Coastguard Worker
394*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.min.s.h(<8 x i16>, <8 x i16>) nounwind
395*9880d681SAndroid Build Coastguard Worker
396*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_min_s_h_test:
397*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
398*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
399*9880d681SAndroid Build Coastguard Worker; CHECK: min_s.h
400*9880d681SAndroid Build Coastguard Worker; CHECK: st.h
401*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_min_s_h_test
402*9880d681SAndroid Build Coastguard Worker;
403*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_s_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
404*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_s_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
405*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_s_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
406*9880d681SAndroid Build Coastguard Worker
407*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_min_s_w_test() nounwind {
408*9880d681SAndroid Build Coastguard Workerentry:
409*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_min_s_w_ARG1
410*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_min_s_w_ARG2
411*9880d681SAndroid Build Coastguard Worker  %2 = tail call <4 x i32> @llvm.mips.min.s.w(<4 x i32> %0, <4 x i32> %1)
412*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_min_s_w_RES
413*9880d681SAndroid Build Coastguard Worker  ret void
414*9880d681SAndroid Build Coastguard Worker}
415*9880d681SAndroid Build Coastguard Worker
416*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.min.s.w(<4 x i32>, <4 x i32>) nounwind
417*9880d681SAndroid Build Coastguard Worker
418*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_min_s_w_test:
419*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
420*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
421*9880d681SAndroid Build Coastguard Worker; CHECK: min_s.w
422*9880d681SAndroid Build Coastguard Worker; CHECK: st.w
423*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_min_s_w_test
424*9880d681SAndroid Build Coastguard Worker;
425*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_s_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
426*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_s_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
427*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_s_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
428*9880d681SAndroid Build Coastguard Worker
429*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_min_s_d_test() nounwind {
430*9880d681SAndroid Build Coastguard Workerentry:
431*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_min_s_d_ARG1
432*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_min_s_d_ARG2
433*9880d681SAndroid Build Coastguard Worker  %2 = tail call <2 x i64> @llvm.mips.min.s.d(<2 x i64> %0, <2 x i64> %1)
434*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_min_s_d_RES
435*9880d681SAndroid Build Coastguard Worker  ret void
436*9880d681SAndroid Build Coastguard Worker}
437*9880d681SAndroid Build Coastguard Worker
438*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.min.s.d(<2 x i64>, <2 x i64>) nounwind
439*9880d681SAndroid Build Coastguard Worker
440*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_min_s_d_test:
441*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
442*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
443*9880d681SAndroid Build Coastguard Worker; CHECK: min_s.d
444*9880d681SAndroid Build Coastguard Worker; CHECK: st.d
445*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_min_s_d_test
446*9880d681SAndroid Build Coastguard Worker;
447*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_u_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
448*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_u_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
449*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_u_b_RES  = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
450*9880d681SAndroid Build Coastguard Worker
451*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_min_u_b_test() nounwind {
452*9880d681SAndroid Build Coastguard Workerentry:
453*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_min_u_b_ARG1
454*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_min_u_b_ARG2
455*9880d681SAndroid Build Coastguard Worker  %2 = tail call <16 x i8> @llvm.mips.min.u.b(<16 x i8> %0, <16 x i8> %1)
456*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_min_u_b_RES
457*9880d681SAndroid Build Coastguard Worker  ret void
458*9880d681SAndroid Build Coastguard Worker}
459*9880d681SAndroid Build Coastguard Worker
460*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.min.u.b(<16 x i8>, <16 x i8>) nounwind
461*9880d681SAndroid Build Coastguard Worker
462*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_min_u_b_test:
463*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
464*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
465*9880d681SAndroid Build Coastguard Worker; CHECK: min_u.b
466*9880d681SAndroid Build Coastguard Worker; CHECK: st.b
467*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_min_u_b_test
468*9880d681SAndroid Build Coastguard Worker;
469*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_u_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
470*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_u_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
471*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_u_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
472*9880d681SAndroid Build Coastguard Worker
473*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_min_u_h_test() nounwind {
474*9880d681SAndroid Build Coastguard Workerentry:
475*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_min_u_h_ARG1
476*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_min_u_h_ARG2
477*9880d681SAndroid Build Coastguard Worker  %2 = tail call <8 x i16> @llvm.mips.min.u.h(<8 x i16> %0, <8 x i16> %1)
478*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_min_u_h_RES
479*9880d681SAndroid Build Coastguard Worker  ret void
480*9880d681SAndroid Build Coastguard Worker}
481*9880d681SAndroid Build Coastguard Worker
482*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.min.u.h(<8 x i16>, <8 x i16>) nounwind
483*9880d681SAndroid Build Coastguard Worker
484*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_min_u_h_test:
485*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
486*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
487*9880d681SAndroid Build Coastguard Worker; CHECK: min_u.h
488*9880d681SAndroid Build Coastguard Worker; CHECK: st.h
489*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_min_u_h_test
490*9880d681SAndroid Build Coastguard Worker;
491*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_u_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
492*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_u_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
493*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_u_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
494*9880d681SAndroid Build Coastguard Worker
495*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_min_u_w_test() nounwind {
496*9880d681SAndroid Build Coastguard Workerentry:
497*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_min_u_w_ARG1
498*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_min_u_w_ARG2
499*9880d681SAndroid Build Coastguard Worker  %2 = tail call <4 x i32> @llvm.mips.min.u.w(<4 x i32> %0, <4 x i32> %1)
500*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_min_u_w_RES
501*9880d681SAndroid Build Coastguard Worker  ret void
502*9880d681SAndroid Build Coastguard Worker}
503*9880d681SAndroid Build Coastguard Worker
504*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.min.u.w(<4 x i32>, <4 x i32>) nounwind
505*9880d681SAndroid Build Coastguard Worker
506*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_min_u_w_test:
507*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
508*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
509*9880d681SAndroid Build Coastguard Worker; CHECK: min_u.w
510*9880d681SAndroid Build Coastguard Worker; CHECK: st.w
511*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_min_u_w_test
512*9880d681SAndroid Build Coastguard Worker;
513*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_u_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
514*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_u_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
515*9880d681SAndroid Build Coastguard Worker@llvm_mips_min_u_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
516*9880d681SAndroid Build Coastguard Worker
517*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_min_u_d_test() nounwind {
518*9880d681SAndroid Build Coastguard Workerentry:
519*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_min_u_d_ARG1
520*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_min_u_d_ARG2
521*9880d681SAndroid Build Coastguard Worker  %2 = tail call <2 x i64> @llvm.mips.min.u.d(<2 x i64> %0, <2 x i64> %1)
522*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_min_u_d_RES
523*9880d681SAndroid Build Coastguard Worker  ret void
524*9880d681SAndroid Build Coastguard Worker}
525*9880d681SAndroid Build Coastguard Worker
526*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.min.u.d(<2 x i64>, <2 x i64>) nounwind
527*9880d681SAndroid Build Coastguard Worker
528*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_min_u_d_test:
529*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
530*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
531*9880d681SAndroid Build Coastguard Worker; CHECK: min_u.d
532*9880d681SAndroid Build Coastguard Worker; CHECK: st.d
533*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_min_u_d_test
534*9880d681SAndroid Build Coastguard Worker;
535*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_s_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
536*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_s_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
537*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_s_b_RES  = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
538*9880d681SAndroid Build Coastguard Worker
539*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_mod_s_b_test() nounwind {
540*9880d681SAndroid Build Coastguard Workerentry:
541*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_mod_s_b_ARG1
542*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_mod_s_b_ARG2
543*9880d681SAndroid Build Coastguard Worker  %2 = tail call <16 x i8> @llvm.mips.mod.s.b(<16 x i8> %0, <16 x i8> %1)
544*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_mod_s_b_RES
545*9880d681SAndroid Build Coastguard Worker  ret void
546*9880d681SAndroid Build Coastguard Worker}
547*9880d681SAndroid Build Coastguard Worker
548*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.mod.s.b(<16 x i8>, <16 x i8>) nounwind
549*9880d681SAndroid Build Coastguard Worker
550*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_mod_s_b_test:
551*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
552*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
553*9880d681SAndroid Build Coastguard Worker; CHECK: mod_s.b
554*9880d681SAndroid Build Coastguard Worker; CHECK: st.b
555*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_mod_s_b_test
556*9880d681SAndroid Build Coastguard Worker;
557*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_s_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
558*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_s_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
559*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_s_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
560*9880d681SAndroid Build Coastguard Worker
561*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_mod_s_h_test() nounwind {
562*9880d681SAndroid Build Coastguard Workerentry:
563*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_mod_s_h_ARG1
564*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_mod_s_h_ARG2
565*9880d681SAndroid Build Coastguard Worker  %2 = tail call <8 x i16> @llvm.mips.mod.s.h(<8 x i16> %0, <8 x i16> %1)
566*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_mod_s_h_RES
567*9880d681SAndroid Build Coastguard Worker  ret void
568*9880d681SAndroid Build Coastguard Worker}
569*9880d681SAndroid Build Coastguard Worker
570*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.mod.s.h(<8 x i16>, <8 x i16>) nounwind
571*9880d681SAndroid Build Coastguard Worker
572*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_mod_s_h_test:
573*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
574*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
575*9880d681SAndroid Build Coastguard Worker; CHECK: mod_s.h
576*9880d681SAndroid Build Coastguard Worker; CHECK: st.h
577*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_mod_s_h_test
578*9880d681SAndroid Build Coastguard Worker;
579*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_s_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
580*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_s_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
581*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_s_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
582*9880d681SAndroid Build Coastguard Worker
583*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_mod_s_w_test() nounwind {
584*9880d681SAndroid Build Coastguard Workerentry:
585*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_mod_s_w_ARG1
586*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_mod_s_w_ARG2
587*9880d681SAndroid Build Coastguard Worker  %2 = tail call <4 x i32> @llvm.mips.mod.s.w(<4 x i32> %0, <4 x i32> %1)
588*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_mod_s_w_RES
589*9880d681SAndroid Build Coastguard Worker  ret void
590*9880d681SAndroid Build Coastguard Worker}
591*9880d681SAndroid Build Coastguard Worker
592*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.mod.s.w(<4 x i32>, <4 x i32>) nounwind
593*9880d681SAndroid Build Coastguard Worker
594*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_mod_s_w_test:
595*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
596*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
597*9880d681SAndroid Build Coastguard Worker; CHECK: mod_s.w
598*9880d681SAndroid Build Coastguard Worker; CHECK: st.w
599*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_mod_s_w_test
600*9880d681SAndroid Build Coastguard Worker;
601*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_s_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
602*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_s_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
603*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_s_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
604*9880d681SAndroid Build Coastguard Worker
605*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_mod_s_d_test() nounwind {
606*9880d681SAndroid Build Coastguard Workerentry:
607*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_mod_s_d_ARG1
608*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_mod_s_d_ARG2
609*9880d681SAndroid Build Coastguard Worker  %2 = tail call <2 x i64> @llvm.mips.mod.s.d(<2 x i64> %0, <2 x i64> %1)
610*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_mod_s_d_RES
611*9880d681SAndroid Build Coastguard Worker  ret void
612*9880d681SAndroid Build Coastguard Worker}
613*9880d681SAndroid Build Coastguard Worker
614*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.mod.s.d(<2 x i64>, <2 x i64>) nounwind
615*9880d681SAndroid Build Coastguard Worker
616*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_mod_s_d_test:
617*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
618*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
619*9880d681SAndroid Build Coastguard Worker; CHECK: mod_s.d
620*9880d681SAndroid Build Coastguard Worker; CHECK: st.d
621*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_mod_s_d_test
622*9880d681SAndroid Build Coastguard Worker;
623*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_u_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
624*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_u_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
625*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_u_b_RES  = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
626*9880d681SAndroid Build Coastguard Worker
627*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_mod_u_b_test() nounwind {
628*9880d681SAndroid Build Coastguard Workerentry:
629*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_mod_u_b_ARG1
630*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_mod_u_b_ARG2
631*9880d681SAndroid Build Coastguard Worker  %2 = tail call <16 x i8> @llvm.mips.mod.u.b(<16 x i8> %0, <16 x i8> %1)
632*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_mod_u_b_RES
633*9880d681SAndroid Build Coastguard Worker  ret void
634*9880d681SAndroid Build Coastguard Worker}
635*9880d681SAndroid Build Coastguard Worker
636*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.mod.u.b(<16 x i8>, <16 x i8>) nounwind
637*9880d681SAndroid Build Coastguard Worker
638*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_mod_u_b_test:
639*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
640*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
641*9880d681SAndroid Build Coastguard Worker; CHECK: mod_u.b
642*9880d681SAndroid Build Coastguard Worker; CHECK: st.b
643*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_mod_u_b_test
644*9880d681SAndroid Build Coastguard Worker;
645*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_u_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
646*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_u_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
647*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_u_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
648*9880d681SAndroid Build Coastguard Worker
649*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_mod_u_h_test() nounwind {
650*9880d681SAndroid Build Coastguard Workerentry:
651*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_mod_u_h_ARG1
652*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_mod_u_h_ARG2
653*9880d681SAndroid Build Coastguard Worker  %2 = tail call <8 x i16> @llvm.mips.mod.u.h(<8 x i16> %0, <8 x i16> %1)
654*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_mod_u_h_RES
655*9880d681SAndroid Build Coastguard Worker  ret void
656*9880d681SAndroid Build Coastguard Worker}
657*9880d681SAndroid Build Coastguard Worker
658*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.mod.u.h(<8 x i16>, <8 x i16>) nounwind
659*9880d681SAndroid Build Coastguard Worker
660*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_mod_u_h_test:
661*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
662*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
663*9880d681SAndroid Build Coastguard Worker; CHECK: mod_u.h
664*9880d681SAndroid Build Coastguard Worker; CHECK: st.h
665*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_mod_u_h_test
666*9880d681SAndroid Build Coastguard Worker;
667*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_u_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
668*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_u_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
669*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_u_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
670*9880d681SAndroid Build Coastguard Worker
671*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_mod_u_w_test() nounwind {
672*9880d681SAndroid Build Coastguard Workerentry:
673*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_mod_u_w_ARG1
674*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_mod_u_w_ARG2
675*9880d681SAndroid Build Coastguard Worker  %2 = tail call <4 x i32> @llvm.mips.mod.u.w(<4 x i32> %0, <4 x i32> %1)
676*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_mod_u_w_RES
677*9880d681SAndroid Build Coastguard Worker  ret void
678*9880d681SAndroid Build Coastguard Worker}
679*9880d681SAndroid Build Coastguard Worker
680*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.mod.u.w(<4 x i32>, <4 x i32>) nounwind
681*9880d681SAndroid Build Coastguard Worker
682*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_mod_u_w_test:
683*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
684*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
685*9880d681SAndroid Build Coastguard Worker; CHECK: mod_u.w
686*9880d681SAndroid Build Coastguard Worker; CHECK: st.w
687*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_mod_u_w_test
688*9880d681SAndroid Build Coastguard Worker;
689*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_u_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
690*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_u_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
691*9880d681SAndroid Build Coastguard Worker@llvm_mips_mod_u_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
692*9880d681SAndroid Build Coastguard Worker
693*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_mod_u_d_test() nounwind {
694*9880d681SAndroid Build Coastguard Workerentry:
695*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_mod_u_d_ARG1
696*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_mod_u_d_ARG2
697*9880d681SAndroid Build Coastguard Worker  %2 = tail call <2 x i64> @llvm.mips.mod.u.d(<2 x i64> %0, <2 x i64> %1)
698*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_mod_u_d_RES
699*9880d681SAndroid Build Coastguard Worker  ret void
700*9880d681SAndroid Build Coastguard Worker}
701*9880d681SAndroid Build Coastguard Worker
702*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.mod.u.d(<2 x i64>, <2 x i64>) nounwind
703*9880d681SAndroid Build Coastguard Worker
704*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_mod_u_d_test:
705*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
706*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
707*9880d681SAndroid Build Coastguard Worker; CHECK: mod_u.d
708*9880d681SAndroid Build Coastguard Worker; CHECK: st.d
709*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_mod_u_d_test
710*9880d681SAndroid Build Coastguard Worker;
711*9880d681SAndroid Build Coastguard Worker@llvm_mips_mulv_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16
712*9880d681SAndroid Build Coastguard Worker@llvm_mips_mulv_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16
713*9880d681SAndroid Build Coastguard Worker@llvm_mips_mulv_b_RES  = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16
714*9880d681SAndroid Build Coastguard Worker
715*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_mulv_b_test() nounwind {
716*9880d681SAndroid Build Coastguard Workerentry:
717*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_mulv_b_ARG1
718*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_mulv_b_ARG2
719*9880d681SAndroid Build Coastguard Worker  %2 = tail call <16 x i8> @llvm.mips.mulv.b(<16 x i8> %0, <16 x i8> %1)
720*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_mulv_b_RES
721*9880d681SAndroid Build Coastguard Worker  ret void
722*9880d681SAndroid Build Coastguard Worker}
723*9880d681SAndroid Build Coastguard Worker
724*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.mulv.b(<16 x i8>, <16 x i8>) nounwind
725*9880d681SAndroid Build Coastguard Worker
726*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_mulv_b_test:
727*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
728*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
729*9880d681SAndroid Build Coastguard Worker; CHECK: mulv.b
730*9880d681SAndroid Build Coastguard Worker; CHECK: st.b
731*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_mulv_b_test
732*9880d681SAndroid Build Coastguard Worker;
733*9880d681SAndroid Build Coastguard Worker@llvm_mips_mulv_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
734*9880d681SAndroid Build Coastguard Worker@llvm_mips_mulv_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
735*9880d681SAndroid Build Coastguard Worker@llvm_mips_mulv_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
736*9880d681SAndroid Build Coastguard Worker
737*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_mulv_h_test() nounwind {
738*9880d681SAndroid Build Coastguard Workerentry:
739*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_mulv_h_ARG1
740*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_mulv_h_ARG2
741*9880d681SAndroid Build Coastguard Worker  %2 = tail call <8 x i16> @llvm.mips.mulv.h(<8 x i16> %0, <8 x i16> %1)
742*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_mulv_h_RES
743*9880d681SAndroid Build Coastguard Worker  ret void
744*9880d681SAndroid Build Coastguard Worker}
745*9880d681SAndroid Build Coastguard Worker
746*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.mulv.h(<8 x i16>, <8 x i16>) nounwind
747*9880d681SAndroid Build Coastguard Worker
748*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_mulv_h_test:
749*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
750*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
751*9880d681SAndroid Build Coastguard Worker; CHECK: mulv.h
752*9880d681SAndroid Build Coastguard Worker; CHECK: st.h
753*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_mulv_h_test
754*9880d681SAndroid Build Coastguard Worker;
755*9880d681SAndroid Build Coastguard Worker@llvm_mips_mulv_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
756*9880d681SAndroid Build Coastguard Worker@llvm_mips_mulv_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
757*9880d681SAndroid Build Coastguard Worker@llvm_mips_mulv_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
758*9880d681SAndroid Build Coastguard Worker
759*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_mulv_w_test() nounwind {
760*9880d681SAndroid Build Coastguard Workerentry:
761*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_mulv_w_ARG1
762*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_mulv_w_ARG2
763*9880d681SAndroid Build Coastguard Worker  %2 = tail call <4 x i32> @llvm.mips.mulv.w(<4 x i32> %0, <4 x i32> %1)
764*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_mulv_w_RES
765*9880d681SAndroid Build Coastguard Worker  ret void
766*9880d681SAndroid Build Coastguard Worker}
767*9880d681SAndroid Build Coastguard Worker
768*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.mulv.w(<4 x i32>, <4 x i32>) nounwind
769*9880d681SAndroid Build Coastguard Worker
770*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_mulv_w_test:
771*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
772*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
773*9880d681SAndroid Build Coastguard Worker; CHECK: mulv.w
774*9880d681SAndroid Build Coastguard Worker; CHECK: st.w
775*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_mulv_w_test
776*9880d681SAndroid Build Coastguard Worker;
777*9880d681SAndroid Build Coastguard Worker@llvm_mips_mulv_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
778*9880d681SAndroid Build Coastguard Worker@llvm_mips_mulv_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
779*9880d681SAndroid Build Coastguard Worker@llvm_mips_mulv_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
780*9880d681SAndroid Build Coastguard Worker
781*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_mulv_d_test() nounwind {
782*9880d681SAndroid Build Coastguard Workerentry:
783*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_mulv_d_ARG1
784*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_mulv_d_ARG2
785*9880d681SAndroid Build Coastguard Worker  %2 = tail call <2 x i64> @llvm.mips.mulv.d(<2 x i64> %0, <2 x i64> %1)
786*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_mulv_d_RES
787*9880d681SAndroid Build Coastguard Worker  ret void
788*9880d681SAndroid Build Coastguard Worker}
789*9880d681SAndroid Build Coastguard Worker
790*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.mulv.d(<2 x i64>, <2 x i64>) nounwind
791*9880d681SAndroid Build Coastguard Worker
792*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_mulv_d_test:
793*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
794*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
795*9880d681SAndroid Build Coastguard Worker; CHECK: mulv.d
796*9880d681SAndroid Build Coastguard Worker; CHECK: st.d
797*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_mulv_d_test
798*9880d681SAndroid Build Coastguard Worker
799*9880d681SAndroid Build Coastguard Workerdefine void @mulv_b_test() nounwind {
800*9880d681SAndroid Build Coastguard Workerentry:
801*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_mulv_b_ARG1
802*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_mulv_b_ARG2
803*9880d681SAndroid Build Coastguard Worker  %2 = mul <16 x i8> %0, %1
804*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_mulv_b_RES
805*9880d681SAndroid Build Coastguard Worker  ret void
806*9880d681SAndroid Build Coastguard Worker}
807*9880d681SAndroid Build Coastguard Worker
808*9880d681SAndroid Build Coastguard Worker; CHECK: mulv_b_test:
809*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
810*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b
811*9880d681SAndroid Build Coastguard Worker; CHECK: mulv.b
812*9880d681SAndroid Build Coastguard Worker; CHECK: st.b
813*9880d681SAndroid Build Coastguard Worker; CHECK: .size mulv_b_test
814*9880d681SAndroid Build Coastguard Worker
815*9880d681SAndroid Build Coastguard Workerdefine void @mulv_h_test() nounwind {
816*9880d681SAndroid Build Coastguard Workerentry:
817*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_mulv_h_ARG1
818*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_mulv_h_ARG2
819*9880d681SAndroid Build Coastguard Worker  %2 = mul <8 x i16> %0, %1
820*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_mulv_h_RES
821*9880d681SAndroid Build Coastguard Worker  ret void
822*9880d681SAndroid Build Coastguard Worker}
823*9880d681SAndroid Build Coastguard Worker
824*9880d681SAndroid Build Coastguard Worker; CHECK: mulv_h_test:
825*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
826*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h
827*9880d681SAndroid Build Coastguard Worker; CHECK: mulv.h
828*9880d681SAndroid Build Coastguard Worker; CHECK: st.h
829*9880d681SAndroid Build Coastguard Worker; CHECK: .size mulv_h_test
830*9880d681SAndroid Build Coastguard Worker
831*9880d681SAndroid Build Coastguard Workerdefine void @mulv_w_test() nounwind {
832*9880d681SAndroid Build Coastguard Workerentry:
833*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_mulv_w_ARG1
834*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_mulv_w_ARG2
835*9880d681SAndroid Build Coastguard Worker  %2 = mul <4 x i32> %0, %1
836*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_mulv_w_RES
837*9880d681SAndroid Build Coastguard Worker  ret void
838*9880d681SAndroid Build Coastguard Worker}
839*9880d681SAndroid Build Coastguard Worker
840*9880d681SAndroid Build Coastguard Worker; CHECK: mulv_w_test:
841*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
842*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w
843*9880d681SAndroid Build Coastguard Worker; CHECK: mulv.w
844*9880d681SAndroid Build Coastguard Worker; CHECK: st.w
845*9880d681SAndroid Build Coastguard Worker; CHECK: .size mulv_w_test
846*9880d681SAndroid Build Coastguard Worker
847*9880d681SAndroid Build Coastguard Workerdefine void @mulv_d_test() nounwind {
848*9880d681SAndroid Build Coastguard Workerentry:
849*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_mulv_d_ARG1
850*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_mulv_d_ARG2
851*9880d681SAndroid Build Coastguard Worker  %2 = mul <2 x i64> %0, %1
852*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_mulv_d_RES
853*9880d681SAndroid Build Coastguard Worker  ret void
854*9880d681SAndroid Build Coastguard Worker}
855*9880d681SAndroid Build Coastguard Worker
856*9880d681SAndroid Build Coastguard Worker; CHECK: mulv_d_test:
857*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
858*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d
859*9880d681SAndroid Build Coastguard Worker; CHECK: mulv.d
860*9880d681SAndroid Build Coastguard Worker; CHECK: st.d
861*9880d681SAndroid Build Coastguard Worker; CHECK: .size mulv_d_test
862*9880d681SAndroid Build Coastguard Worker;
863