1 ; Test the MSA intrinsics that are encoded with the I5 instruction format.
2 ; There are lots of these so this covers those beginning with 'b'
4 ; RUN: llc -march=mips -mattr=+msa,+fp64 < %s | FileCheck %s
6 @llvm_mips_bclri_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 @llvm_mips_bclri_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 define void @llvm_mips_bclri_b_test() nounwind {
11 %0 = load <16 x i8>* @llvm_mips_bclri_b_ARG1
12 %1 = tail call <16 x i8> @llvm.mips.bclri.b(<16 x i8> %0, i32 7)
13 store <16 x i8> %1, <16 x i8>* @llvm_mips_bclri_b_RES
17 declare <16 x i8> @llvm.mips.bclri.b(<16 x i8>, i32) nounwind
19 ; CHECK: llvm_mips_bclri_b_test:
21 ; andi.b is equivalent to bclri.b
22 ; CHECK: andi.b {{\$w[0-9]}}, {{\$w[0-9]}}, 127
24 ; CHECK: .size llvm_mips_bclri_b_test
26 @llvm_mips_bclri_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
27 @llvm_mips_bclri_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
29 define void @llvm_mips_bclri_h_test() nounwind {
31 %0 = load <8 x i16>* @llvm_mips_bclri_h_ARG1
32 %1 = tail call <8 x i16> @llvm.mips.bclri.h(<8 x i16> %0, i32 7)
33 store <8 x i16> %1, <8 x i16>* @llvm_mips_bclri_h_RES
37 declare <8 x i16> @llvm.mips.bclri.h(<8 x i16>, i32) nounwind
39 ; CHECK: llvm_mips_bclri_h_test:
43 ; CHECK: .size llvm_mips_bclri_h_test
45 @llvm_mips_bclri_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
46 @llvm_mips_bclri_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
48 define void @llvm_mips_bclri_w_test() nounwind {
50 %0 = load <4 x i32>* @llvm_mips_bclri_w_ARG1
51 %1 = tail call <4 x i32> @llvm.mips.bclri.w(<4 x i32> %0, i32 7)
52 store <4 x i32> %1, <4 x i32>* @llvm_mips_bclri_w_RES
56 declare <4 x i32> @llvm.mips.bclri.w(<4 x i32>, i32) nounwind
58 ; CHECK: llvm_mips_bclri_w_test:
62 ; CHECK: .size llvm_mips_bclri_w_test
64 @llvm_mips_bclri_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
65 @llvm_mips_bclri_d_RES = global <2 x i64> <i64 0, i64 0>, align 16
67 define void @llvm_mips_bclri_d_test() nounwind {
69 %0 = load <2 x i64>* @llvm_mips_bclri_d_ARG1
70 %1 = tail call <2 x i64> @llvm.mips.bclri.d(<2 x i64> %0, i32 7)
71 store <2 x i64> %1, <2 x i64>* @llvm_mips_bclri_d_RES
75 declare <2 x i64> @llvm.mips.bclri.d(<2 x i64>, i32) nounwind
77 ; CHECK: llvm_mips_bclri_d_test:
81 ; CHECK: .size llvm_mips_bclri_d_test
83 @llvm_mips_binsli_b_ARG1 = global <16 x i8> zeroinitializer, align 16
84 @llvm_mips_binsli_b_ARG2 = 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
85 @llvm_mips_binsli_b_RES = global <16 x i8> zeroinitializer, align 16
87 define void @llvm_mips_binsli_b_test() nounwind {
89 %0 = load <16 x i8>* @llvm_mips_binsli_b_ARG1
90 %1 = load <16 x i8>* @llvm_mips_binsli_b_ARG2
91 %2 = tail call <16 x i8> @llvm.mips.binsli.b(<16 x i8> %0, <16 x i8> %1, i32 7)
92 store <16 x i8> %2, <16 x i8>* @llvm_mips_binsli_b_RES
96 declare <16 x i8> @llvm.mips.binsli.b(<16 x i8>, <16 x i8>, i32) nounwind
98 ; CHECK: llvm_mips_binsli_b_test:
99 ; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_binsli_b_ARG1)(
100 ; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_binsli_b_ARG2)(
101 ; CHECK-DAG: ld.b [[R3:\$w[0-9]+]], 0([[R1]])
102 ; CHECK-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R2]])
103 ; CHECK-DAG: binsli.b [[R3]], [[R4]], 7
104 ; CHECK-DAG: lw [[R5:\$[0-9]+]], %got(llvm_mips_binsli_b_RES)(
105 ; CHECK-DAG: st.b [[R3]], 0([[R5]])
106 ; CHECK: .size llvm_mips_binsli_b_test
108 @llvm_mips_binsli_h_ARG1 = global <8 x i16> zeroinitializer, align 16
109 @llvm_mips_binsli_h_ARG2 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
110 @llvm_mips_binsli_h_RES = global <8 x i16> zeroinitializer, align 16
112 define void @llvm_mips_binsli_h_test() nounwind {
114 %0 = load <8 x i16>* @llvm_mips_binsli_h_ARG1
115 %1 = load <8 x i16>* @llvm_mips_binsli_h_ARG2
116 %2 = tail call <8 x i16> @llvm.mips.binsli.h(<8 x i16> %0, <8 x i16> %1, i32 7)
117 store <8 x i16> %2, <8 x i16>* @llvm_mips_binsli_h_RES
121 declare <8 x i16> @llvm.mips.binsli.h(<8 x i16>, <8 x i16>, i32) nounwind
123 ; CHECK: llvm_mips_binsli_h_test:
124 ; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_binsli_h_ARG1)(
125 ; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_binsli_h_ARG2)(
126 ; CHECK-DAG: ld.h [[R3:\$w[0-9]+]], 0([[R1]])
127 ; CHECK-DAG: ld.h [[R4:\$w[0-9]+]], 0([[R2]])
128 ; CHECK-DAG: binsli.h [[R3]], [[R4]], 7
129 ; CHECK-DAG: lw [[R5:\$[0-9]+]], %got(llvm_mips_binsli_h_RES)(
130 ; CHECK-DAG: st.h [[R3]], 0([[R5]])
131 ; CHECK: .size llvm_mips_binsli_h_test
133 @llvm_mips_binsli_w_ARG1 = global <4 x i32> zeroinitializer, align 16
134 @llvm_mips_binsli_w_ARG2 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
135 @llvm_mips_binsli_w_RES = global <4 x i32> zeroinitializer, align 16
137 define void @llvm_mips_binsli_w_test() nounwind {
139 %0 = load <4 x i32>* @llvm_mips_binsli_w_ARG1
140 %1 = load <4 x i32>* @llvm_mips_binsli_w_ARG2
141 %2 = tail call <4 x i32> @llvm.mips.binsli.w(<4 x i32> %0, <4 x i32> %1, i32 7)
142 store <4 x i32> %2, <4 x i32>* @llvm_mips_binsli_w_RES
146 declare <4 x i32> @llvm.mips.binsli.w(<4 x i32>, <4 x i32>, i32) nounwind
148 ; CHECK: llvm_mips_binsli_w_test:
149 ; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_binsli_w_ARG1)(
150 ; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_binsli_w_ARG2)(
151 ; CHECK-DAG: ld.w [[R3:\$w[0-9]+]], 0([[R1]])
152 ; CHECK-DAG: ld.w [[R4:\$w[0-9]+]], 0([[R2]])
153 ; CHECK-DAG: binsli.w [[R3]], [[R4]], 7
154 ; CHECK-DAG: lw [[R5:\$[0-9]+]], %got(llvm_mips_binsli_w_RES)(
155 ; CHECK-DAG: st.w [[R3]], 0([[R5]])
156 ; CHECK: .size llvm_mips_binsli_w_test
158 @llvm_mips_binsli_d_ARG1 = global <2 x i64> zeroinitializer, align 16
159 @llvm_mips_binsli_d_ARG2 = global <2 x i64> <i64 0, i64 1>, align 16
160 @llvm_mips_binsli_d_RES = global <2 x i64> zeroinitializer, align 16
162 define void @llvm_mips_binsli_d_test() nounwind {
164 %0 = load <2 x i64>* @llvm_mips_binsli_d_ARG1
165 %1 = load <2 x i64>* @llvm_mips_binsli_d_ARG2
166 ; TODO: We use a particularly wide mask here to work around a legalization
167 ; issue. If the mask doesn't fit within a 10-bit immediate, it gets
168 ; legalized into a constant pool. We should add a test to cover the
169 ; other cases once they correctly select binsli.d.
170 %2 = tail call <2 x i64> @llvm.mips.binsli.d(<2 x i64> %0, <2 x i64> %1, i32 61)
171 store <2 x i64> %2, <2 x i64>* @llvm_mips_binsli_d_RES
175 declare <2 x i64> @llvm.mips.binsli.d(<2 x i64>, <2 x i64>, i32) nounwind
177 ; CHECK: llvm_mips_binsli_d_test:
178 ; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_binsli_d_ARG1)(
179 ; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_binsli_d_ARG2)(
180 ; CHECK-DAG: ld.d [[R3:\$w[0-9]+]], 0([[R1]])
181 ; CHECK-DAG: ld.d [[R4:\$w[0-9]+]], 0([[R2]])
182 ; CHECK-DAG: binsli.d [[R3]], [[R4]], 61
183 ; CHECK-DAG: lw [[R5:\$[0-9]+]], %got(llvm_mips_binsli_d_RES)(
184 ; CHECK-DAG: st.d [[R3]], 0([[R5]])
185 ; CHECK: .size llvm_mips_binsli_d_test
187 @llvm_mips_binsri_b_ARG1 = global <16 x i8> zeroinitializer, align 16
188 @llvm_mips_binsri_b_ARG2 = 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
189 @llvm_mips_binsri_b_RES = global <16 x i8> zeroinitializer, align 16
191 define void @llvm_mips_binsri_b_test() nounwind {
193 %0 = load <16 x i8>* @llvm_mips_binsri_b_ARG1
194 %1 = load <16 x i8>* @llvm_mips_binsri_b_ARG2
195 %2 = tail call <16 x i8> @llvm.mips.binsri.b(<16 x i8> %0, <16 x i8> %1, i32 7)
196 store <16 x i8> %2, <16 x i8>* @llvm_mips_binsri_b_RES
200 declare <16 x i8> @llvm.mips.binsri.b(<16 x i8>, <16 x i8>, i32) nounwind
202 ; CHECK: llvm_mips_binsri_b_test:
203 ; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_binsri_b_ARG1)(
204 ; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_binsri_b_ARG2)(
205 ; CHECK-DAG: ld.b [[R3:\$w[0-9]+]], 0([[R1]])
206 ; CHECK-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R2]])
207 ; CHECK-DAG: binsri.b [[R3]], [[R4]], 7
208 ; CHECK-DAG: lw [[R5:\$[0-9]+]], %got(llvm_mips_binsri_b_RES)(
209 ; CHECK-DAG: st.b [[R3]], 0([[R5]])
210 ; CHECK: .size llvm_mips_binsri_b_test
212 @llvm_mips_binsri_h_ARG1 = global <8 x i16> zeroinitializer, align 16
213 @llvm_mips_binsri_h_ARG2 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
214 @llvm_mips_binsri_h_RES = global <8 x i16> zeroinitializer, align 16
216 define void @llvm_mips_binsri_h_test() nounwind {
218 %0 = load <8 x i16>* @llvm_mips_binsri_h_ARG1
219 %1 = load <8 x i16>* @llvm_mips_binsri_h_ARG2
220 %2 = tail call <8 x i16> @llvm.mips.binsri.h(<8 x i16> %0, <8 x i16> %1, i32 7)
221 store <8 x i16> %2, <8 x i16>* @llvm_mips_binsri_h_RES
225 declare <8 x i16> @llvm.mips.binsri.h(<8 x i16>, <8 x i16>, i32) nounwind
227 ; CHECK: llvm_mips_binsri_h_test:
228 ; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_binsri_h_ARG1)(
229 ; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_binsri_h_ARG2)(
230 ; CHECK-DAG: ld.h [[R3:\$w[0-9]+]], 0([[R1]])
231 ; CHECK-DAG: ld.h [[R4:\$w[0-9]+]], 0([[R2]])
232 ; CHECK-DAG: binsri.h [[R3]], [[R4]], 7
233 ; CHECK-DAG: lw [[R5:\$[0-9]+]], %got(llvm_mips_binsri_h_RES)(
234 ; CHECK-DAG: st.h [[R3]], 0([[R5]])
235 ; CHECK: .size llvm_mips_binsri_h_test
237 @llvm_mips_binsri_w_ARG1 = global <4 x i32> zeroinitializer, align 16
238 @llvm_mips_binsri_w_ARG2 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
239 @llvm_mips_binsri_w_RES = global <4 x i32> zeroinitializer, align 16
241 define void @llvm_mips_binsri_w_test() nounwind {
243 %0 = load <4 x i32>* @llvm_mips_binsri_w_ARG1
244 %1 = load <4 x i32>* @llvm_mips_binsri_w_ARG2
245 %2 = tail call <4 x i32> @llvm.mips.binsri.w(<4 x i32> %0, <4 x i32> %1, i32 7)
246 store <4 x i32> %2, <4 x i32>* @llvm_mips_binsri_w_RES
250 declare <4 x i32> @llvm.mips.binsri.w(<4 x i32>, <4 x i32>, i32) nounwind
252 ; CHECK: llvm_mips_binsri_w_test:
253 ; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_binsri_w_ARG1)(
254 ; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_binsri_w_ARG2)(
255 ; CHECK-DAG: ld.w [[R3:\$w[0-9]+]], 0([[R1]])
256 ; CHECK-DAG: ld.w [[R4:\$w[0-9]+]], 0([[R2]])
257 ; CHECK-DAG: binsri.w [[R3]], [[R4]], 7
258 ; CHECK-DAG: lw [[R5:\$[0-9]+]], %got(llvm_mips_binsri_w_RES)(
259 ; CHECK-DAG: st.w [[R3]], 0([[R5]])
260 ; CHECK: .size llvm_mips_binsri_w_test
262 @llvm_mips_binsri_d_ARG1 = global <2 x i64> zeroinitializer, align 16
263 @llvm_mips_binsri_d_ARG2 = global <2 x i64> <i64 0, i64 1>, align 16
264 @llvm_mips_binsri_d_RES = global <2 x i64> zeroinitializer, align 16
266 define void @llvm_mips_binsri_d_test() nounwind {
268 %0 = load <2 x i64>* @llvm_mips_binsri_d_ARG1
269 %1 = load <2 x i64>* @llvm_mips_binsri_d_ARG2
270 %2 = tail call <2 x i64> @llvm.mips.binsri.d(<2 x i64> %0, <2 x i64> %1, i32 7)
271 store <2 x i64> %2, <2 x i64>* @llvm_mips_binsri_d_RES
275 declare <2 x i64> @llvm.mips.binsri.d(<2 x i64>, <2 x i64>, i32) nounwind
277 ; CHECK: llvm_mips_binsri_d_test:
278 ; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_binsri_d_ARG1)(
279 ; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_binsri_d_ARG2)(
280 ; CHECK-DAG: ld.d [[R3:\$w[0-9]+]], 0([[R1]])
281 ; CHECK-DAG: ld.d [[R4:\$w[0-9]+]], 0([[R2]])
282 ; CHECK-DAG: binsri.d [[R3]], [[R4]], 7
283 ; CHECK-DAG: lw [[R5:\$[0-9]+]], %got(llvm_mips_binsri_d_RES)(
284 ; CHECK-DAG: st.d [[R3]], 0([[R5]])
285 ; CHECK: .size llvm_mips_binsri_d_test
287 @llvm_mips_bnegi_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
288 @llvm_mips_bnegi_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
290 define void @llvm_mips_bnegi_b_test() nounwind {
292 %0 = load <16 x i8>* @llvm_mips_bnegi_b_ARG1
293 %1 = tail call <16 x i8> @llvm.mips.bnegi.b(<16 x i8> %0, i32 7)
294 store <16 x i8> %1, <16 x i8>* @llvm_mips_bnegi_b_RES
298 declare <16 x i8> @llvm.mips.bnegi.b(<16 x i8>, i32) nounwind
300 ; CHECK: llvm_mips_bnegi_b_test:
304 ; CHECK: .size llvm_mips_bnegi_b_test
306 @llvm_mips_bnegi_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
307 @llvm_mips_bnegi_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
309 define void @llvm_mips_bnegi_h_test() nounwind {
311 %0 = load <8 x i16>* @llvm_mips_bnegi_h_ARG1
312 %1 = tail call <8 x i16> @llvm.mips.bnegi.h(<8 x i16> %0, i32 7)
313 store <8 x i16> %1, <8 x i16>* @llvm_mips_bnegi_h_RES
317 declare <8 x i16> @llvm.mips.bnegi.h(<8 x i16>, i32) nounwind
319 ; CHECK: llvm_mips_bnegi_h_test:
323 ; CHECK: .size llvm_mips_bnegi_h_test
325 @llvm_mips_bnegi_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
326 @llvm_mips_bnegi_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
328 define void @llvm_mips_bnegi_w_test() nounwind {
330 %0 = load <4 x i32>* @llvm_mips_bnegi_w_ARG1
331 %1 = tail call <4 x i32> @llvm.mips.bnegi.w(<4 x i32> %0, i32 7)
332 store <4 x i32> %1, <4 x i32>* @llvm_mips_bnegi_w_RES
336 declare <4 x i32> @llvm.mips.bnegi.w(<4 x i32>, i32) nounwind
338 ; CHECK: llvm_mips_bnegi_w_test:
342 ; CHECK: .size llvm_mips_bnegi_w_test
344 @llvm_mips_bnegi_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
345 @llvm_mips_bnegi_d_RES = global <2 x i64> <i64 0, i64 0>, align 16
347 define void @llvm_mips_bnegi_d_test() nounwind {
349 %0 = load <2 x i64>* @llvm_mips_bnegi_d_ARG1
350 %1 = tail call <2 x i64> @llvm.mips.bnegi.d(<2 x i64> %0, i32 7)
351 store <2 x i64> %1, <2 x i64>* @llvm_mips_bnegi_d_RES
355 declare <2 x i64> @llvm.mips.bnegi.d(<2 x i64>, i32) nounwind
357 ; CHECK: llvm_mips_bnegi_d_test:
361 ; CHECK: .size llvm_mips_bnegi_d_test
363 @llvm_mips_bseti_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
364 @llvm_mips_bseti_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
366 define void @llvm_mips_bseti_b_test() nounwind {
368 %0 = load <16 x i8>* @llvm_mips_bseti_b_ARG1
369 %1 = tail call <16 x i8> @llvm.mips.bseti.b(<16 x i8> %0, i32 7)
370 store <16 x i8> %1, <16 x i8>* @llvm_mips_bseti_b_RES
374 declare <16 x i8> @llvm.mips.bseti.b(<16 x i8>, i32) nounwind
376 ; CHECK: llvm_mips_bseti_b_test:
380 ; CHECK: .size llvm_mips_bseti_b_test
382 @llvm_mips_bseti_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16
383 @llvm_mips_bseti_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16
385 define void @llvm_mips_bseti_h_test() nounwind {
387 %0 = load <8 x i16>* @llvm_mips_bseti_h_ARG1
388 %1 = tail call <8 x i16> @llvm.mips.bseti.h(<8 x i16> %0, i32 7)
389 store <8 x i16> %1, <8 x i16>* @llvm_mips_bseti_h_RES
393 declare <8 x i16> @llvm.mips.bseti.h(<8 x i16>, i32) nounwind
395 ; CHECK: llvm_mips_bseti_h_test:
399 ; CHECK: .size llvm_mips_bseti_h_test
401 @llvm_mips_bseti_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16
402 @llvm_mips_bseti_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16
404 define void @llvm_mips_bseti_w_test() nounwind {
406 %0 = load <4 x i32>* @llvm_mips_bseti_w_ARG1
407 %1 = tail call <4 x i32> @llvm.mips.bseti.w(<4 x i32> %0, i32 7)
408 store <4 x i32> %1, <4 x i32>* @llvm_mips_bseti_w_RES
412 declare <4 x i32> @llvm.mips.bseti.w(<4 x i32>, i32) nounwind
414 ; CHECK: llvm_mips_bseti_w_test:
418 ; CHECK: .size llvm_mips_bseti_w_test
420 @llvm_mips_bseti_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16
421 @llvm_mips_bseti_d_RES = global <2 x i64> <i64 0, i64 0>, align 16
423 define void @llvm_mips_bseti_d_test() nounwind {
425 %0 = load <2 x i64>* @llvm_mips_bseti_d_ARG1
426 %1 = tail call <2 x i64> @llvm.mips.bseti.d(<2 x i64> %0, i32 7)
427 store <2 x i64> %1, <2 x i64>* @llvm_mips_bseti_d_RES
431 declare <2 x i64> @llvm.mips.bseti.d(<2 x i64>, i32) nounwind
433 ; CHECK: llvm_mips_bseti_d_test:
437 ; CHECK: .size llvm_mips_bseti_d_test