xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/msa/vec.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; Test the MSA intrinsics that are encoded with the VEC instruction format.
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips -mattr=+msa,+fp64 -relocation-model=pic < %s | FileCheck -check-prefix=ANYENDIAN %s
4*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mattr=+msa,+fp64 -relocation-model=pic < %s | FileCheck -check-prefix=ANYENDIAN %s
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_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
7*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_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
8*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_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
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_and_v_b_test() nounwind {
11*9880d681SAndroid Build Coastguard Workerentry:
12*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_and_v_b_ARG1
13*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_and_v_b_ARG2
14*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <16 x i8> %0 to <16 x i8>
15*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <16 x i8> %1 to <16 x i8>
16*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.and.v(<16 x i8> %2, <16 x i8> %3)
17*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <16 x i8>
18*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %5, <16 x i8>* @llvm_mips_and_v_b_RES
19*9880d681SAndroid Build Coastguard Worker  ret void
20*9880d681SAndroid Build Coastguard Worker}
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_and_v_b_test:
23*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
24*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
25*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v
26*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
27*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_and_v_b_test
28*9880d681SAndroid Build Coastguard Worker;
29*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_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_and_v_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_and_v_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_and_v_h_test() nounwind {
34*9880d681SAndroid Build Coastguard Workerentry:
35*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_and_v_h_ARG1
36*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_and_v_h_ARG2
37*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <8 x i16> %0 to <16 x i8>
38*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <8 x i16> %1 to <16 x i8>
39*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.and.v(<16 x i8> %2, <16 x i8> %3)
40*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <8 x i16>
41*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %5, <8 x i16>* @llvm_mips_and_v_h_RES
42*9880d681SAndroid Build Coastguard Worker  ret void
43*9880d681SAndroid Build Coastguard Worker}
44*9880d681SAndroid Build Coastguard Worker
45*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_and_v_h_test:
46*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
47*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
48*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v
49*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
50*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_and_v_h_test
51*9880d681SAndroid Build Coastguard Worker;
52*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
53*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
54*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
55*9880d681SAndroid Build Coastguard Worker
56*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_and_v_w_test() nounwind {
57*9880d681SAndroid Build Coastguard Workerentry:
58*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_and_v_w_ARG1
59*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_and_v_w_ARG2
60*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <4 x i32> %0 to <16 x i8>
61*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <4 x i32> %1 to <16 x i8>
62*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.and.v(<16 x i8> %2, <16 x i8> %3)
63*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <4 x i32>
64*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %5, <4 x i32>* @llvm_mips_and_v_w_RES
65*9880d681SAndroid Build Coastguard Worker  ret void
66*9880d681SAndroid Build Coastguard Worker}
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_and_v_w_test:
69*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
70*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
71*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v
72*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
73*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_and_v_w_test
74*9880d681SAndroid Build Coastguard Worker;
75*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
76*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
77*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
78*9880d681SAndroid Build Coastguard Worker
79*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_and_v_d_test() nounwind {
80*9880d681SAndroid Build Coastguard Workerentry:
81*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_and_v_d_ARG1
82*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_and_v_d_ARG2
83*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <2 x i64> %0 to <16 x i8>
84*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <2 x i64> %1 to <16 x i8>
85*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.and.v(<16 x i8> %2, <16 x i8> %3)
86*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <2 x i64>
87*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %5, <2 x i64>* @llvm_mips_and_v_d_RES
88*9880d681SAndroid Build Coastguard Worker  ret void
89*9880d681SAndroid Build Coastguard Worker}
90*9880d681SAndroid Build Coastguard Worker
91*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_and_v_d_test:
92*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
93*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
94*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v
95*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
96*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_and_v_d_test
97*9880d681SAndroid Build Coastguard Worker;
98*9880d681SAndroid Build Coastguard Workerdefine void @and_v_b_test() nounwind {
99*9880d681SAndroid Build Coastguard Workerentry:
100*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_and_v_b_ARG1
101*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_and_v_b_ARG2
102*9880d681SAndroid Build Coastguard Worker  %2 = and <16 x i8> %0, %1
103*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_and_v_b_RES
104*9880d681SAndroid Build Coastguard Worker  ret void
105*9880d681SAndroid Build Coastguard Worker}
106*9880d681SAndroid Build Coastguard Worker
107*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and_v_b_test:
108*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
109*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
110*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v
111*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
112*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size and_v_b_test
113*9880d681SAndroid Build Coastguard Worker;
114*9880d681SAndroid Build Coastguard Workerdefine void @and_v_h_test() nounwind {
115*9880d681SAndroid Build Coastguard Workerentry:
116*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_and_v_h_ARG1
117*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_and_v_h_ARG2
118*9880d681SAndroid Build Coastguard Worker  %2 = and <8 x i16> %0, %1
119*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_and_v_h_RES
120*9880d681SAndroid Build Coastguard Worker  ret void
121*9880d681SAndroid Build Coastguard Worker}
122*9880d681SAndroid Build Coastguard Worker
123*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and_v_h_test:
124*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.h
125*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.h
126*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v
127*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.h
128*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size and_v_h_test
129*9880d681SAndroid Build Coastguard Worker;
130*9880d681SAndroid Build Coastguard Worker
131*9880d681SAndroid Build Coastguard Workerdefine void @and_v_w_test() nounwind {
132*9880d681SAndroid Build Coastguard Workerentry:
133*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_and_v_w_ARG1
134*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_and_v_w_ARG2
135*9880d681SAndroid Build Coastguard Worker  %2 = and <4 x i32> %0, %1
136*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_and_v_w_RES
137*9880d681SAndroid Build Coastguard Worker  ret void
138*9880d681SAndroid Build Coastguard Worker}
139*9880d681SAndroid Build Coastguard Worker
140*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and_v_w_test:
141*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.w
142*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.w
143*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v
144*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.w
145*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size and_v_w_test
146*9880d681SAndroid Build Coastguard Worker;
147*9880d681SAndroid Build Coastguard Worker
148*9880d681SAndroid Build Coastguard Workerdefine void @and_v_d_test() nounwind {
149*9880d681SAndroid Build Coastguard Workerentry:
150*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_and_v_d_ARG1
151*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_and_v_d_ARG2
152*9880d681SAndroid Build Coastguard Worker  %2 = and <2 x i64> %0, %1
153*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_and_v_d_RES
154*9880d681SAndroid Build Coastguard Worker  ret void
155*9880d681SAndroid Build Coastguard Worker}
156*9880d681SAndroid Build Coastguard Worker
157*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and_v_d_test:
158*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.d
159*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.d
160*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v
161*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.d
162*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size and_v_d_test
163*9880d681SAndroid Build Coastguard Worker;
164*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_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
165*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_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
166*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_b_ARG3 = 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
167*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_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
168*9880d681SAndroid Build Coastguard Worker
169*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmnz_v_b_test() nounwind {
170*9880d681SAndroid Build Coastguard Workerentry:
171*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_bmnz_v_b_ARG1
172*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_bmnz_v_b_ARG2
173*9880d681SAndroid Build Coastguard Worker  %2 = load <16 x i8>, <16 x i8>* @llvm_mips_bmnz_v_b_ARG3
174*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <16 x i8> %0 to <16 x i8>
175*9880d681SAndroid Build Coastguard Worker  %4 = bitcast <16 x i8> %1 to <16 x i8>
176*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %2 to <16 x i8>
177*9880d681SAndroid Build Coastguard Worker  %6 = tail call <16 x i8> @llvm.mips.bmnz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5)
178*9880d681SAndroid Build Coastguard Worker  %7 = bitcast <16 x i8> %6 to <16 x i8>
179*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %7, <16 x i8>* @llvm_mips_bmnz_v_b_RES
180*9880d681SAndroid Build Coastguard Worker  ret void
181*9880d681SAndroid Build Coastguard Worker}
182*9880d681SAndroid Build Coastguard Worker
183*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmnz_v_b_test:
184*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmnz_v_b_ARG1)(
185*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmnz_v_b_ARG2)(
186*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmnz_v_b_ARG3)(
187*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]])
188*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]])
189*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]])
190*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R4]], [[R5]], [[R6]]
191*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R4]], 0(
192*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmnz_v_b_test
193*9880d681SAndroid Build Coastguard Worker
194*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
195*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
196*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_h_ARG3 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
197*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
198*9880d681SAndroid Build Coastguard Worker
199*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmnz_v_h_test() nounwind {
200*9880d681SAndroid Build Coastguard Workerentry:
201*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_bmnz_v_h_ARG1
202*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_bmnz_v_h_ARG2
203*9880d681SAndroid Build Coastguard Worker  %2 = load <8 x i16>, <8 x i16>* @llvm_mips_bmnz_v_h_ARG3
204*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <8 x i16> %0 to <16 x i8>
205*9880d681SAndroid Build Coastguard Worker  %4 = bitcast <8 x i16> %1 to <16 x i8>
206*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <8 x i16> %2 to <16 x i8>
207*9880d681SAndroid Build Coastguard Worker  %6 = tail call <16 x i8> @llvm.mips.bmnz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5)
208*9880d681SAndroid Build Coastguard Worker  %7 = bitcast <16 x i8> %6 to <8 x i16>
209*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %7, <8 x i16>* @llvm_mips_bmnz_v_h_RES
210*9880d681SAndroid Build Coastguard Worker  ret void
211*9880d681SAndroid Build Coastguard Worker}
212*9880d681SAndroid Build Coastguard Worker
213*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmnz_v_h_test:
214*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmnz_v_h_ARG1)(
215*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmnz_v_h_ARG2)(
216*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmnz_v_h_ARG3)(
217*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]])
218*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]])
219*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]])
220*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R4]], [[R5]], [[R6]]
221*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R4]], 0(
222*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmnz_v_h_test
223*9880d681SAndroid Build Coastguard Worker
224*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
225*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
226*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_w_ARG3 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
227*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
228*9880d681SAndroid Build Coastguard Worker
229*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmnz_v_w_test() nounwind {
230*9880d681SAndroid Build Coastguard Workerentry:
231*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_bmnz_v_w_ARG1
232*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_bmnz_v_w_ARG2
233*9880d681SAndroid Build Coastguard Worker  %2 = load <4 x i32>, <4 x i32>* @llvm_mips_bmnz_v_w_ARG3
234*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <4 x i32> %0 to <16 x i8>
235*9880d681SAndroid Build Coastguard Worker  %4 = bitcast <4 x i32> %1 to <16 x i8>
236*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <4 x i32> %2 to <16 x i8>
237*9880d681SAndroid Build Coastguard Worker  %6 = tail call <16 x i8> @llvm.mips.bmnz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5)
238*9880d681SAndroid Build Coastguard Worker  %7 = bitcast <16 x i8> %6 to <4 x i32>
239*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %7, <4 x i32>* @llvm_mips_bmnz_v_w_RES
240*9880d681SAndroid Build Coastguard Worker  ret void
241*9880d681SAndroid Build Coastguard Worker}
242*9880d681SAndroid Build Coastguard Worker
243*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmnz_v_w_test:
244*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmnz_v_w_ARG1)(
245*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmnz_v_w_ARG2)(
246*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmnz_v_w_ARG3)(
247*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]])
248*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]])
249*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]])
250*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R4]], [[R5]], [[R6]]
251*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R4]], 0(
252*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmnz_v_w_test
253*9880d681SAndroid Build Coastguard Worker
254*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
255*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
256*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_d_ARG3 = global <2 x i64> <i64 0, i64 1>, align 16
257*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
258*9880d681SAndroid Build Coastguard Worker
259*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmnz_v_d_test() nounwind {
260*9880d681SAndroid Build Coastguard Workerentry:
261*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_bmnz_v_d_ARG1
262*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_bmnz_v_d_ARG2
263*9880d681SAndroid Build Coastguard Worker  %2 = load <2 x i64>, <2 x i64>* @llvm_mips_bmnz_v_d_ARG3
264*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <2 x i64> %0 to <16 x i8>
265*9880d681SAndroid Build Coastguard Worker  %4 = bitcast <2 x i64> %1 to <16 x i8>
266*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <2 x i64> %2 to <16 x i8>
267*9880d681SAndroid Build Coastguard Worker  %6 = tail call <16 x i8> @llvm.mips.bmnz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5)
268*9880d681SAndroid Build Coastguard Worker  %7 = bitcast <16 x i8> %6 to <2 x i64>
269*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %7, <2 x i64>* @llvm_mips_bmnz_v_d_RES
270*9880d681SAndroid Build Coastguard Worker  ret void
271*9880d681SAndroid Build Coastguard Worker}
272*9880d681SAndroid Build Coastguard Worker
273*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmnz_v_d_test:
274*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmnz_v_d_ARG1)(
275*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmnz_v_d_ARG2)(
276*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmnz_v_d_ARG3)(
277*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]])
278*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]])
279*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]])
280*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R4]], [[R5]], [[R6]]
281*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R4]], 0(
282*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmnz_v_d_test
283*9880d681SAndroid Build Coastguard Worker
284*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_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
285*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_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
286*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_b_ARG3 = 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
287*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_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
288*9880d681SAndroid Build Coastguard Worker
289*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmz_v_b_test() nounwind {
290*9880d681SAndroid Build Coastguard Workerentry:
291*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_bmz_v_b_ARG1
292*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_bmz_v_b_ARG2
293*9880d681SAndroid Build Coastguard Worker  %2 = load <16 x i8>, <16 x i8>* @llvm_mips_bmz_v_b_ARG3
294*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <16 x i8> %0 to <16 x i8>
295*9880d681SAndroid Build Coastguard Worker  %4 = bitcast <16 x i8> %1 to <16 x i8>
296*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %2 to <16 x i8>
297*9880d681SAndroid Build Coastguard Worker  %6 = tail call <16 x i8> @llvm.mips.bmz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5)
298*9880d681SAndroid Build Coastguard Worker  %7 = bitcast <16 x i8> %6 to <16 x i8>
299*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %7, <16 x i8>* @llvm_mips_bmz_v_b_RES
300*9880d681SAndroid Build Coastguard Worker  ret void
301*9880d681SAndroid Build Coastguard Worker}
302*9880d681SAndroid Build Coastguard Worker
303*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmz_v_b_test:
304*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmz_v_b_ARG1)(
305*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmz_v_b_ARG2)(
306*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmz_v_b_ARG3)(
307*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]])
308*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]])
309*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]])
310*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bmz.v with ws and wd_in swapped
311*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R4]], [[R6]]
312*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0(
313*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmz_v_b_test
314*9880d681SAndroid Build Coastguard Worker
315*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
316*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
317*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_h_ARG3 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
318*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
319*9880d681SAndroid Build Coastguard Worker
320*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmz_v_h_test() nounwind {
321*9880d681SAndroid Build Coastguard Workerentry:
322*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_bmz_v_h_ARG1
323*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_bmz_v_h_ARG2
324*9880d681SAndroid Build Coastguard Worker  %2 = load <8 x i16>, <8 x i16>* @llvm_mips_bmz_v_h_ARG3
325*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <8 x i16> %0 to <16 x i8>
326*9880d681SAndroid Build Coastguard Worker  %4 = bitcast <8 x i16> %1 to <16 x i8>
327*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <8 x i16> %2 to <16 x i8>
328*9880d681SAndroid Build Coastguard Worker  %6 = tail call <16 x i8> @llvm.mips.bmz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5)
329*9880d681SAndroid Build Coastguard Worker  %7 = bitcast <16 x i8> %6 to <8 x i16>
330*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %7, <8 x i16>* @llvm_mips_bmz_v_h_RES
331*9880d681SAndroid Build Coastguard Worker  ret void
332*9880d681SAndroid Build Coastguard Worker}
333*9880d681SAndroid Build Coastguard Worker
334*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmz_v_h_test:
335*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmz_v_h_ARG1)(
336*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmz_v_h_ARG2)(
337*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmz_v_h_ARG3)(
338*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]])
339*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]])
340*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]])
341*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bmz.v with ws and wd_in swapped
342*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R4]], [[R6]]
343*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0(
344*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmz_v_h_test
345*9880d681SAndroid Build Coastguard Worker
346*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
347*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
348*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_w_ARG3 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
349*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
350*9880d681SAndroid Build Coastguard Worker
351*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmz_v_w_test() nounwind {
352*9880d681SAndroid Build Coastguard Workerentry:
353*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_bmz_v_w_ARG1
354*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_bmz_v_w_ARG2
355*9880d681SAndroid Build Coastguard Worker  %2 = load <4 x i32>, <4 x i32>* @llvm_mips_bmz_v_w_ARG3
356*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <4 x i32> %0 to <16 x i8>
357*9880d681SAndroid Build Coastguard Worker  %4 = bitcast <4 x i32> %1 to <16 x i8>
358*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <4 x i32> %2 to <16 x i8>
359*9880d681SAndroid Build Coastguard Worker  %6 = tail call <16 x i8> @llvm.mips.bmz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5)
360*9880d681SAndroid Build Coastguard Worker  %7 = bitcast <16 x i8> %6 to <4 x i32>
361*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %7, <4 x i32>* @llvm_mips_bmz_v_w_RES
362*9880d681SAndroid Build Coastguard Worker  ret void
363*9880d681SAndroid Build Coastguard Worker}
364*9880d681SAndroid Build Coastguard Worker
365*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmz_v_w_test:
366*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmz_v_w_ARG1)(
367*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmz_v_w_ARG2)(
368*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmz_v_w_ARG3)(
369*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]])
370*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]])
371*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]])
372*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bmz.v with ws and wd_in swapped
373*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R4]], [[R6]]
374*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0(
375*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmz_v_w_test
376*9880d681SAndroid Build Coastguard Worker
377*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
378*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
379*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_d_ARG3 = global <2 x i64> <i64 0, i64 1>, align 16
380*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
381*9880d681SAndroid Build Coastguard Worker
382*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmz_v_d_test() nounwind {
383*9880d681SAndroid Build Coastguard Workerentry:
384*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_bmz_v_d_ARG1
385*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_bmz_v_d_ARG2
386*9880d681SAndroid Build Coastguard Worker  %2 = load <2 x i64>, <2 x i64>* @llvm_mips_bmz_v_d_ARG3
387*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <2 x i64> %0 to <16 x i8>
388*9880d681SAndroid Build Coastguard Worker  %4 = bitcast <2 x i64> %1 to <16 x i8>
389*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <2 x i64> %2 to <16 x i8>
390*9880d681SAndroid Build Coastguard Worker  %6 = tail call <16 x i8> @llvm.mips.bmz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5)
391*9880d681SAndroid Build Coastguard Worker  %7 = bitcast <16 x i8> %6 to <2 x i64>
392*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %7, <2 x i64>* @llvm_mips_bmz_v_d_RES
393*9880d681SAndroid Build Coastguard Worker  ret void
394*9880d681SAndroid Build Coastguard Worker}
395*9880d681SAndroid Build Coastguard Worker
396*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmz_v_d_test:
397*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmz_v_d_ARG1)(
398*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmz_v_d_ARG2)(
399*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmz_v_d_ARG3)(
400*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]])
401*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]])
402*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]])
403*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bmz.v with ws and wd_in swapped
404*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R4]], [[R6]]
405*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0(
406*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmz_v_d_test
407*9880d681SAndroid Build Coastguard Worker
408*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_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
409*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_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
410*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_b_ARG3 = 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
411*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_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
412*9880d681SAndroid Build Coastguard Worker
413*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bsel_v_b_test() nounwind {
414*9880d681SAndroid Build Coastguard Workerentry:
415*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_bsel_v_b_ARG1
416*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_bsel_v_b_ARG2
417*9880d681SAndroid Build Coastguard Worker  %2 = load <16 x i8>, <16 x i8>* @llvm_mips_bsel_v_b_ARG3
418*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <16 x i8> %0 to <16 x i8>
419*9880d681SAndroid Build Coastguard Worker  %4 = bitcast <16 x i8> %1 to <16 x i8>
420*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %2 to <16 x i8>
421*9880d681SAndroid Build Coastguard Worker  %6 = tail call <16 x i8> @llvm.mips.bsel.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5)
422*9880d681SAndroid Build Coastguard Worker  %7 = bitcast <16 x i8> %6 to <16 x i8>
423*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %7, <16 x i8>* @llvm_mips_bsel_v_b_RES
424*9880d681SAndroid Build Coastguard Worker  ret void
425*9880d681SAndroid Build Coastguard Worker}
426*9880d681SAndroid Build Coastguard Worker
427*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bsel_v_b_test:
428*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bsel_v_b_ARG1)(
429*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bsel_v_b_ARG2)(
430*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bsel_v_b_ARG3)(
431*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]])
432*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]])
433*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]])
434*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bsel.v with (wd_in, wt, ws) -> (wt, ws, wd_in)
435*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R6]], [[R4]]
436*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0(
437*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bsel_v_b_test
438*9880d681SAndroid Build Coastguard Worker
439*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
440*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
441*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_h_ARG3 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
442*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
443*9880d681SAndroid Build Coastguard Worker
444*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bsel_v_h_test() nounwind {
445*9880d681SAndroid Build Coastguard Workerentry:
446*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_bsel_v_h_ARG1
447*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_bsel_v_h_ARG2
448*9880d681SAndroid Build Coastguard Worker  %2 = load <8 x i16>, <8 x i16>* @llvm_mips_bsel_v_h_ARG3
449*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <8 x i16> %0 to <16 x i8>
450*9880d681SAndroid Build Coastguard Worker  %4 = bitcast <8 x i16> %1 to <16 x i8>
451*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <8 x i16> %2 to <16 x i8>
452*9880d681SAndroid Build Coastguard Worker  %6 = tail call <16 x i8> @llvm.mips.bsel.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5)
453*9880d681SAndroid Build Coastguard Worker  %7 = bitcast <16 x i8> %6 to <8 x i16>
454*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %7, <8 x i16>* @llvm_mips_bsel_v_h_RES
455*9880d681SAndroid Build Coastguard Worker  ret void
456*9880d681SAndroid Build Coastguard Worker}
457*9880d681SAndroid Build Coastguard Worker
458*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bsel_v_h_test:
459*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bsel_v_h_ARG1)(
460*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bsel_v_h_ARG2)(
461*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bsel_v_h_ARG3)(
462*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]])
463*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]])
464*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]])
465*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bsel.v with (wd_in, wt, ws) -> (wt, ws, wd_in)
466*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R6]], [[R4]]
467*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0(
468*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bsel_v_h_test
469*9880d681SAndroid Build Coastguard Worker
470*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
471*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
472*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_w_ARG3 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
473*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
474*9880d681SAndroid Build Coastguard Worker
475*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bsel_v_w_test() nounwind {
476*9880d681SAndroid Build Coastguard Workerentry:
477*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_bsel_v_w_ARG1
478*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_bsel_v_w_ARG2
479*9880d681SAndroid Build Coastguard Worker  %2 = load <4 x i32>, <4 x i32>* @llvm_mips_bsel_v_w_ARG3
480*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <4 x i32> %0 to <16 x i8>
481*9880d681SAndroid Build Coastguard Worker  %4 = bitcast <4 x i32> %1 to <16 x i8>
482*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <4 x i32> %2 to <16 x i8>
483*9880d681SAndroid Build Coastguard Worker  %6 = tail call <16 x i8> @llvm.mips.bsel.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5)
484*9880d681SAndroid Build Coastguard Worker  %7 = bitcast <16 x i8> %6 to <4 x i32>
485*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %7, <4 x i32>* @llvm_mips_bsel_v_w_RES
486*9880d681SAndroid Build Coastguard Worker  ret void
487*9880d681SAndroid Build Coastguard Worker}
488*9880d681SAndroid Build Coastguard Worker
489*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bsel_v_w_test:
490*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bsel_v_w_ARG1)(
491*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bsel_v_w_ARG2)(
492*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bsel_v_w_ARG3)(
493*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]])
494*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]])
495*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]])
496*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bsel.v with (wd_in, wt, ws) -> (wt, ws, wd_in)
497*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R6]], [[R4]]
498*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0(
499*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bsel_v_w_test
500*9880d681SAndroid Build Coastguard Worker
501*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
502*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
503*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_d_ARG3 = global <2 x i64> <i64 0, i64 1>, align 16
504*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
505*9880d681SAndroid Build Coastguard Worker
506*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bsel_v_d_test() nounwind {
507*9880d681SAndroid Build Coastguard Workerentry:
508*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_bsel_v_d_ARG1
509*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_bsel_v_d_ARG2
510*9880d681SAndroid Build Coastguard Worker  %2 = load <2 x i64>, <2 x i64>* @llvm_mips_bsel_v_d_ARG3
511*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <2 x i64> %0 to <16 x i8>
512*9880d681SAndroid Build Coastguard Worker  %4 = bitcast <2 x i64> %1 to <16 x i8>
513*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <2 x i64> %2 to <16 x i8>
514*9880d681SAndroid Build Coastguard Worker  %6 = tail call <16 x i8> @llvm.mips.bsel.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5)
515*9880d681SAndroid Build Coastguard Worker  %7 = bitcast <16 x i8> %6 to <2 x i64>
516*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %7, <2 x i64>* @llvm_mips_bsel_v_d_RES
517*9880d681SAndroid Build Coastguard Worker  ret void
518*9880d681SAndroid Build Coastguard Worker}
519*9880d681SAndroid Build Coastguard Worker
520*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bsel_v_d_test:
521*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bsel_v_d_ARG1)(
522*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bsel_v_d_ARG2)(
523*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bsel_v_d_ARG3)(
524*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]])
525*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]])
526*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]])
527*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bsel.v with (wd_in, wt, ws) -> (wt, ws, wd_in)
528*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R6]], [[R4]]
529*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0(
530*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bsel_v_d_test
531*9880d681SAndroid Build Coastguard Worker
532*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_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
533*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_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
534*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_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
535*9880d681SAndroid Build Coastguard Worker
536*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_nor_v_b_test() nounwind {
537*9880d681SAndroid Build Coastguard Workerentry:
538*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_nor_v_b_ARG1
539*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_nor_v_b_ARG2
540*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <16 x i8> %0 to <16 x i8>
541*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <16 x i8> %1 to <16 x i8>
542*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.nor.v(<16 x i8> %2, <16 x i8> %3)
543*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <16 x i8>
544*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %5, <16 x i8>* @llvm_mips_nor_v_b_RES
545*9880d681SAndroid Build Coastguard Worker  ret void
546*9880d681SAndroid Build Coastguard Worker}
547*9880d681SAndroid Build Coastguard Worker
548*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_nor_v_b_test:
549*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
550*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
551*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: nor.v
552*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
553*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_nor_v_b_test
554*9880d681SAndroid Build Coastguard Worker;
555*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
556*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
557*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
558*9880d681SAndroid Build Coastguard Worker
559*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_nor_v_h_test() nounwind {
560*9880d681SAndroid Build Coastguard Workerentry:
561*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_nor_v_h_ARG1
562*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_nor_v_h_ARG2
563*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <8 x i16> %0 to <16 x i8>
564*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <8 x i16> %1 to <16 x i8>
565*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.nor.v(<16 x i8> %2, <16 x i8> %3)
566*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <8 x i16>
567*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %5, <8 x i16>* @llvm_mips_nor_v_h_RES
568*9880d681SAndroid Build Coastguard Worker  ret void
569*9880d681SAndroid Build Coastguard Worker}
570*9880d681SAndroid Build Coastguard Worker
571*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_nor_v_h_test:
572*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
573*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
574*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: nor.v
575*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
576*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_nor_v_h_test
577*9880d681SAndroid Build Coastguard Worker;
578*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
579*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
580*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
581*9880d681SAndroid Build Coastguard Worker
582*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_nor_v_w_test() nounwind {
583*9880d681SAndroid Build Coastguard Workerentry:
584*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_nor_v_w_ARG1
585*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_nor_v_w_ARG2
586*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <4 x i32> %0 to <16 x i8>
587*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <4 x i32> %1 to <16 x i8>
588*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.nor.v(<16 x i8> %2, <16 x i8> %3)
589*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <4 x i32>
590*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %5, <4 x i32>* @llvm_mips_nor_v_w_RES
591*9880d681SAndroid Build Coastguard Worker  ret void
592*9880d681SAndroid Build Coastguard Worker}
593*9880d681SAndroid Build Coastguard Worker
594*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_nor_v_w_test:
595*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
596*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
597*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: nor.v
598*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
599*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_nor_v_w_test
600*9880d681SAndroid Build Coastguard Worker;
601*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
602*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
603*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_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_nor_v_d_test() nounwind {
606*9880d681SAndroid Build Coastguard Workerentry:
607*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_nor_v_d_ARG1
608*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_nor_v_d_ARG2
609*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <2 x i64> %0 to <16 x i8>
610*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <2 x i64> %1 to <16 x i8>
611*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.nor.v(<16 x i8> %2, <16 x i8> %3)
612*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <2 x i64>
613*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %5, <2 x i64>* @llvm_mips_nor_v_d_RES
614*9880d681SAndroid Build Coastguard Worker  ret void
615*9880d681SAndroid Build Coastguard Worker}
616*9880d681SAndroid Build Coastguard Worker
617*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_nor_v_d_test:
618*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
619*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
620*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: nor.v
621*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
622*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_nor_v_d_test
623*9880d681SAndroid Build Coastguard Worker;
624*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_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
625*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_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
626*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_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
627*9880d681SAndroid Build Coastguard Worker
628*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_or_v_b_test() nounwind {
629*9880d681SAndroid Build Coastguard Workerentry:
630*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_or_v_b_ARG1
631*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_or_v_b_ARG2
632*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <16 x i8> %0 to <16 x i8>
633*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <16 x i8> %1 to <16 x i8>
634*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.or.v(<16 x i8> %2, <16 x i8> %3)
635*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <16 x i8>
636*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %5, <16 x i8>* @llvm_mips_or_v_b_RES
637*9880d681SAndroid Build Coastguard Worker  ret void
638*9880d681SAndroid Build Coastguard Worker}
639*9880d681SAndroid Build Coastguard Worker
640*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_or_v_b_test:
641*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
642*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
643*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v
644*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
645*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_or_v_b_test
646*9880d681SAndroid Build Coastguard Worker;
647*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
648*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
649*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
650*9880d681SAndroid Build Coastguard Worker
651*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_or_v_h_test() nounwind {
652*9880d681SAndroid Build Coastguard Workerentry:
653*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_or_v_h_ARG1
654*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_or_v_h_ARG2
655*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <8 x i16> %0 to <16 x i8>
656*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <8 x i16> %1 to <16 x i8>
657*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.or.v(<16 x i8> %2, <16 x i8> %3)
658*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <8 x i16>
659*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %5, <8 x i16>* @llvm_mips_or_v_h_RES
660*9880d681SAndroid Build Coastguard Worker  ret void
661*9880d681SAndroid Build Coastguard Worker}
662*9880d681SAndroid Build Coastguard Worker
663*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_or_v_h_test:
664*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
665*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
666*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v
667*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
668*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_or_v_h_test
669*9880d681SAndroid Build Coastguard Worker;
670*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
671*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
672*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
673*9880d681SAndroid Build Coastguard Worker
674*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_or_v_w_test() nounwind {
675*9880d681SAndroid Build Coastguard Workerentry:
676*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_or_v_w_ARG1
677*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_or_v_w_ARG2
678*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <4 x i32> %0 to <16 x i8>
679*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <4 x i32> %1 to <16 x i8>
680*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.or.v(<16 x i8> %2, <16 x i8> %3)
681*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <4 x i32>
682*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %5, <4 x i32>* @llvm_mips_or_v_w_RES
683*9880d681SAndroid Build Coastguard Worker  ret void
684*9880d681SAndroid Build Coastguard Worker}
685*9880d681SAndroid Build Coastguard Worker
686*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_or_v_w_test:
687*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
688*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
689*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v
690*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
691*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_or_v_w_test
692*9880d681SAndroid Build Coastguard Worker;
693*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
694*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
695*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
696*9880d681SAndroid Build Coastguard Worker
697*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_or_v_d_test() nounwind {
698*9880d681SAndroid Build Coastguard Workerentry:
699*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_or_v_d_ARG1
700*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_or_v_d_ARG2
701*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <2 x i64> %0 to <16 x i8>
702*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <2 x i64> %1 to <16 x i8>
703*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.or.v(<16 x i8> %2, <16 x i8> %3)
704*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <2 x i64>
705*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %5, <2 x i64>* @llvm_mips_or_v_d_RES
706*9880d681SAndroid Build Coastguard Worker  ret void
707*9880d681SAndroid Build Coastguard Worker}
708*9880d681SAndroid Build Coastguard Worker
709*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_or_v_d_test:
710*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
711*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
712*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v
713*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
714*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_or_v_d_test
715*9880d681SAndroid Build Coastguard Worker;
716*9880d681SAndroid Build Coastguard Workerdefine void @or_v_b_test() nounwind {
717*9880d681SAndroid Build Coastguard Workerentry:
718*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_or_v_b_ARG1
719*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_or_v_b_ARG2
720*9880d681SAndroid Build Coastguard Worker  %2 = or <16 x i8> %0, %1
721*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_or_v_b_RES
722*9880d681SAndroid Build Coastguard Worker  ret void
723*9880d681SAndroid Build Coastguard Worker}
724*9880d681SAndroid Build Coastguard Worker
725*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or_v_b_test:
726*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
727*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
728*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v
729*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
730*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size or_v_b_test
731*9880d681SAndroid Build Coastguard Worker;
732*9880d681SAndroid Build Coastguard Workerdefine void @or_v_h_test() nounwind {
733*9880d681SAndroid Build Coastguard Workerentry:
734*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_or_v_h_ARG1
735*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_or_v_h_ARG2
736*9880d681SAndroid Build Coastguard Worker  %2 = or <8 x i16> %0, %1
737*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_or_v_h_RES
738*9880d681SAndroid Build Coastguard Worker  ret void
739*9880d681SAndroid Build Coastguard Worker}
740*9880d681SAndroid Build Coastguard Worker
741*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or_v_h_test:
742*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.h
743*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.h
744*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v
745*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.h
746*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size or_v_h_test
747*9880d681SAndroid Build Coastguard Worker;
748*9880d681SAndroid Build Coastguard Worker
749*9880d681SAndroid Build Coastguard Workerdefine void @or_v_w_test() nounwind {
750*9880d681SAndroid Build Coastguard Workerentry:
751*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_or_v_w_ARG1
752*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_or_v_w_ARG2
753*9880d681SAndroid Build Coastguard Worker  %2 = or <4 x i32> %0, %1
754*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_or_v_w_RES
755*9880d681SAndroid Build Coastguard Worker  ret void
756*9880d681SAndroid Build Coastguard Worker}
757*9880d681SAndroid Build Coastguard Worker
758*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or_v_w_test:
759*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.w
760*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.w
761*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v
762*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.w
763*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size or_v_w_test
764*9880d681SAndroid Build Coastguard Worker;
765*9880d681SAndroid Build Coastguard Worker
766*9880d681SAndroid Build Coastguard Workerdefine void @or_v_d_test() nounwind {
767*9880d681SAndroid Build Coastguard Workerentry:
768*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_or_v_d_ARG1
769*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_or_v_d_ARG2
770*9880d681SAndroid Build Coastguard Worker  %2 = or <2 x i64> %0, %1
771*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_or_v_d_RES
772*9880d681SAndroid Build Coastguard Worker  ret void
773*9880d681SAndroid Build Coastguard Worker}
774*9880d681SAndroid Build Coastguard Worker
775*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or_v_d_test:
776*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.d
777*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.d
778*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v
779*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.d
780*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size or_v_d_test
781*9880d681SAndroid Build Coastguard Worker;
782*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_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
783*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_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
784*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_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
785*9880d681SAndroid Build Coastguard Worker
786*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_xor_v_b_test() nounwind {
787*9880d681SAndroid Build Coastguard Workerentry:
788*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_xor_v_b_ARG1
789*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_xor_v_b_ARG2
790*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <16 x i8> %0 to <16 x i8>
791*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <16 x i8> %1 to <16 x i8>
792*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.xor.v(<16 x i8> %2, <16 x i8> %3)
793*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <16 x i8>
794*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %5, <16 x i8>* @llvm_mips_xor_v_b_RES
795*9880d681SAndroid Build Coastguard Worker  ret void
796*9880d681SAndroid Build Coastguard Worker}
797*9880d681SAndroid Build Coastguard Worker
798*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_xor_v_b_test:
799*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
800*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
801*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v
802*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
803*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_xor_v_b_test
804*9880d681SAndroid Build Coastguard Worker;
805*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
806*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16
807*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_h_RES  = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
808*9880d681SAndroid Build Coastguard Worker
809*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_xor_v_h_test() nounwind {
810*9880d681SAndroid Build Coastguard Workerentry:
811*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_xor_v_h_ARG1
812*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_xor_v_h_ARG2
813*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <8 x i16> %0 to <16 x i8>
814*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <8 x i16> %1 to <16 x i8>
815*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.xor.v(<16 x i8> %2, <16 x i8> %3)
816*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <8 x i16>
817*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %5, <8 x i16>* @llvm_mips_xor_v_h_RES
818*9880d681SAndroid Build Coastguard Worker  ret void
819*9880d681SAndroid Build Coastguard Worker}
820*9880d681SAndroid Build Coastguard Worker
821*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_xor_v_h_test:
822*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
823*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
824*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v
825*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
826*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_xor_v_h_test
827*9880d681SAndroid Build Coastguard Worker;
828*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
829*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16
830*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_w_RES  = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
831*9880d681SAndroid Build Coastguard Worker
832*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_xor_v_w_test() nounwind {
833*9880d681SAndroid Build Coastguard Workerentry:
834*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_xor_v_w_ARG1
835*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_xor_v_w_ARG2
836*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <4 x i32> %0 to <16 x i8>
837*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <4 x i32> %1 to <16 x i8>
838*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.xor.v(<16 x i8> %2, <16 x i8> %3)
839*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <4 x i32>
840*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %5, <4 x i32>* @llvm_mips_xor_v_w_RES
841*9880d681SAndroid Build Coastguard Worker  ret void
842*9880d681SAndroid Build Coastguard Worker}
843*9880d681SAndroid Build Coastguard Worker
844*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_xor_v_w_test:
845*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
846*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
847*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v
848*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
849*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_xor_v_w_test
850*9880d681SAndroid Build Coastguard Worker;
851*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
852*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16
853*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_d_RES  = global <2 x i64> <i64 0, i64 0>, align 16
854*9880d681SAndroid Build Coastguard Worker
855*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_xor_v_d_test() nounwind {
856*9880d681SAndroid Build Coastguard Workerentry:
857*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_xor_v_d_ARG1
858*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_xor_v_d_ARG2
859*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <2 x i64> %0 to <16 x i8>
860*9880d681SAndroid Build Coastguard Worker  %3 = bitcast <2 x i64> %1 to <16 x i8>
861*9880d681SAndroid Build Coastguard Worker  %4 = tail call <16 x i8> @llvm.mips.xor.v(<16 x i8> %2, <16 x i8> %3)
862*9880d681SAndroid Build Coastguard Worker  %5 = bitcast <16 x i8> %4 to <2 x i64>
863*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %5, <2 x i64>* @llvm_mips_xor_v_d_RES
864*9880d681SAndroid Build Coastguard Worker  ret void
865*9880d681SAndroid Build Coastguard Worker}
866*9880d681SAndroid Build Coastguard Worker
867*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_xor_v_d_test:
868*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
869*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
870*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v
871*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
872*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_xor_v_d_test
873*9880d681SAndroid Build Coastguard Worker;
874*9880d681SAndroid Build Coastguard Workerdefine void @xor_v_b_test() nounwind {
875*9880d681SAndroid Build Coastguard Workerentry:
876*9880d681SAndroid Build Coastguard Worker  %0 = load <16 x i8>, <16 x i8>* @llvm_mips_xor_v_b_ARG1
877*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* @llvm_mips_xor_v_b_ARG2
878*9880d681SAndroid Build Coastguard Worker  %2 = xor <16 x i8> %0, %1
879*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* @llvm_mips_xor_v_b_RES
880*9880d681SAndroid Build Coastguard Worker  ret void
881*9880d681SAndroid Build Coastguard Worker}
882*9880d681SAndroid Build Coastguard Worker
883*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor_v_b_test:
884*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
885*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b
886*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v
887*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b
888*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size xor_v_b_test
889*9880d681SAndroid Build Coastguard Worker;
890*9880d681SAndroid Build Coastguard Workerdefine void @xor_v_h_test() nounwind {
891*9880d681SAndroid Build Coastguard Workerentry:
892*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x i16>, <8 x i16>* @llvm_mips_xor_v_h_ARG1
893*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* @llvm_mips_xor_v_h_ARG2
894*9880d681SAndroid Build Coastguard Worker  %2 = xor <8 x i16> %0, %1
895*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* @llvm_mips_xor_v_h_RES
896*9880d681SAndroid Build Coastguard Worker  ret void
897*9880d681SAndroid Build Coastguard Worker}
898*9880d681SAndroid Build Coastguard Worker
899*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor_v_h_test:
900*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.h
901*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.h
902*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v
903*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.h
904*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size xor_v_h_test
905*9880d681SAndroid Build Coastguard Worker;
906*9880d681SAndroid Build Coastguard Worker
907*9880d681SAndroid Build Coastguard Workerdefine void @xor_v_w_test() nounwind {
908*9880d681SAndroid Build Coastguard Workerentry:
909*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x i32>, <4 x i32>* @llvm_mips_xor_v_w_ARG1
910*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* @llvm_mips_xor_v_w_ARG2
911*9880d681SAndroid Build Coastguard Worker  %2 = xor <4 x i32> %0, %1
912*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* @llvm_mips_xor_v_w_RES
913*9880d681SAndroid Build Coastguard Worker  ret void
914*9880d681SAndroid Build Coastguard Worker}
915*9880d681SAndroid Build Coastguard Worker
916*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor_v_w_test:
917*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.w
918*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.w
919*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v
920*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.w
921*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size xor_v_w_test
922*9880d681SAndroid Build Coastguard Worker;
923*9880d681SAndroid Build Coastguard Worker
924*9880d681SAndroid Build Coastguard Workerdefine void @xor_v_d_test() nounwind {
925*9880d681SAndroid Build Coastguard Workerentry:
926*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x i64>, <2 x i64>* @llvm_mips_xor_v_d_ARG1
927*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* @llvm_mips_xor_v_d_ARG2
928*9880d681SAndroid Build Coastguard Worker  %2 = xor <2 x i64> %0, %1
929*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* @llvm_mips_xor_v_d_RES
930*9880d681SAndroid Build Coastguard Worker  ret void
931*9880d681SAndroid Build Coastguard Worker}
932*9880d681SAndroid Build Coastguard Worker
933*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor_v_d_test:
934*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.d
935*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.d
936*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v
937*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.d
938*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size xor_v_d_test
939*9880d681SAndroid Build Coastguard Worker;
940*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.and.v(<16 x i8>, <16 x i8>) nounwind
941*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.bmnz.v(<16 x i8>, <16 x i8>, <16 x i8>) nounwind
942*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.bmz.v(<16 x i8>, <16 x i8>, <16 x i8>) nounwind
943*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.bsel.v(<16 x i8>, <16 x i8>, <16 x i8>) nounwind
944*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.nor.v(<16 x i8>, <16 x i8>) nounwind
945*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.or.v(<16 x i8>, <16 x i8>) nounwind
946*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.xor.v(<16 x i8>, <16 x i8>) nounwind
947