1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -march=hexagon < %s | FileCheck %s
4 declare <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32>, i32) #0
5 declare <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1>, i32) #0
6 declare <32 x i1> @llvm.hexagon.V6.pred.typecast.128B.v32i1.v128i1(<128 x i1>) #0
7 declare <128 x i1> @llvm.hexagon.V6.pred.typecast.128B.v128i1.v32i1(<32 x i1>) #0
8 declare <64 x i1> @llvm.hexagon.V6.pred.typecast.128B.v64i1.v128i1(<128 x i1>) #0
9 declare <128 x i1> @llvm.hexagon.V6.pred.typecast.128B.v128i1.v64i1(<64 x i1>) #0
11 define <32 x i32> @f0(<32 x i32> %a0, <32 x i32> %a1) #1 {
13 ; CHECK: // %bb.0: // %b0
15 ; CHECK-NEXT: r0 = #-1
18 ; CHECK-NEXT: q0 = vand(v0,r0)
21 ; CHECK-NEXT: q1 = vand(v1,r0)
24 ; CHECK-NEXT: q0 = and(q0,q1)
27 ; CHECK-NEXT: v0 = vand(q0,r0)
30 ; CHECK-NEXT: jumpr r31
33 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
34 %v1 = call <32 x i1> @llvm.hexagon.V6.pred.typecast.128B.v32i1.v128i1(<128 x i1> %v0)
35 %v2 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
36 %v3 = call <32 x i1> @llvm.hexagon.V6.pred.typecast.128B.v32i1.v128i1(<128 x i1> %v2)
37 %v4 = and <32 x i1> %v1, %v3
38 %v5 = call <128 x i1> @llvm.hexagon.V6.pred.typecast.128B.v128i1.v32i1(<32 x i1> %v4)
39 %v6 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v5, i32 -1)
43 define <32 x i32> @f1(<32 x i32> %a0, <32 x i32> %a1) #1 {
45 ; CHECK: // %bb.0: // %b0
47 ; CHECK-NEXT: r0 = #-1
50 ; CHECK-NEXT: q0 = vand(v0,r0)
53 ; CHECK-NEXT: q1 = vand(v1,r0)
56 ; CHECK-NEXT: q0 = or(q0,q1)
59 ; CHECK-NEXT: v0 = vand(q0,r0)
62 ; CHECK-NEXT: jumpr r31
65 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
66 %v1 = call <32 x i1> @llvm.hexagon.V6.pred.typecast.128B.v32i1.v128i1(<128 x i1> %v0)
67 %v2 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
68 %v3 = call <32 x i1> @llvm.hexagon.V6.pred.typecast.128B.v32i1.v128i1(<128 x i1> %v2)
69 %v4 = or <32 x i1> %v1, %v3
70 %v5 = call <128 x i1> @llvm.hexagon.V6.pred.typecast.128B.v128i1.v32i1(<32 x i1> %v4)
71 %v6 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v5, i32 -1)
75 define <32 x i32> @f2(<32 x i32> %a0, <32 x i32> %a1) #1 {
77 ; CHECK: // %bb.0: // %b0
79 ; CHECK-NEXT: r0 = #-1
82 ; CHECK-NEXT: q0 = vand(v0,r0)
85 ; CHECK-NEXT: q1 = vand(v1,r0)
88 ; CHECK-NEXT: q0 = xor(q0,q1)
91 ; CHECK-NEXT: v0 = vand(q0,r0)
94 ; CHECK-NEXT: jumpr r31
97 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
98 %v1 = call <32 x i1> @llvm.hexagon.V6.pred.typecast.128B.v32i1.v128i1(<128 x i1> %v0)
99 %v2 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
100 %v3 = call <32 x i1> @llvm.hexagon.V6.pred.typecast.128B.v32i1.v128i1(<128 x i1> %v2)
101 %v4 = xor <32 x i1> %v1, %v3
102 %v5 = call <128 x i1> @llvm.hexagon.V6.pred.typecast.128B.v128i1.v32i1(<32 x i1> %v4)
103 %v6 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v5, i32 -1)
107 define <32 x i32> @f3(<32 x i32> %a0, <32 x i32> %a1) #1 {
109 ; CHECK: // %bb.0: // %b0
111 ; CHECK-NEXT: r0 = #-1
114 ; CHECK-NEXT: q0 = vand(v0,r0)
117 ; CHECK-NEXT: q1 = vand(v1,r0)
120 ; CHECK-NEXT: q0 = and(q0,!q1)
123 ; CHECK-NEXT: v0 = vand(q0,r0)
126 ; CHECK-NEXT: jumpr r31
129 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
130 %v1 = call <32 x i1> @llvm.hexagon.V6.pred.typecast.128B.v32i1.v128i1(<128 x i1> %v0)
131 %v2 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
132 %v3 = call <32 x i1> @llvm.hexagon.V6.pred.typecast.128B.v32i1.v128i1(<128 x i1> %v2)
133 %v4 = xor <32 x i1> %v3, <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>
134 %v5 = and <32 x i1> %v1, %v4
135 %v6 = call <128 x i1> @llvm.hexagon.V6.pred.typecast.128B.v128i1.v32i1(<32 x i1> %v5)
136 %v7 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v6, i32 -1)
140 define <32 x i32> @f4(<32 x i32> %a0, <32 x i32> %a1) #1 {
142 ; CHECK: // %bb.0: // %b0
144 ; CHECK-NEXT: r0 = #-1
147 ; CHECK-NEXT: q0 = vand(v0,r0)
150 ; CHECK-NEXT: q1 = vand(v1,r0)
153 ; CHECK-NEXT: q0 = or(q0,!q1)
156 ; CHECK-NEXT: v0 = vand(q0,r0)
159 ; CHECK-NEXT: jumpr r31
162 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
163 %v1 = call <32 x i1> @llvm.hexagon.V6.pred.typecast.128B.v32i1.v128i1(<128 x i1> %v0)
164 %v2 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
165 %v3 = call <32 x i1> @llvm.hexagon.V6.pred.typecast.128B.v32i1.v128i1(<128 x i1> %v2)
166 %v4 = xor <32 x i1> %v3, <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>
167 %v5 = or <32 x i1> %v1, %v4
168 %v6 = call <128 x i1> @llvm.hexagon.V6.pred.typecast.128B.v128i1.v32i1(<32 x i1> %v5)
169 %v7 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v6, i32 -1)
173 define <32 x i32> @f5(<32 x i32> %a0, <32 x i32> %a1) #1 {
175 ; CHECK: // %bb.0: // %b0
177 ; CHECK-NEXT: r0 = #-1
180 ; CHECK-NEXT: q0 = vand(v0,r0)
183 ; CHECK-NEXT: q1 = vand(v1,r0)
186 ; CHECK-NEXT: q0 = and(q0,q1)
189 ; CHECK-NEXT: v0 = vand(q0,r0)
192 ; CHECK-NEXT: jumpr r31
195 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
196 %v1 = call <64 x i1> @llvm.hexagon.V6.pred.typecast.128B.v64i1.v128i1(<128 x i1> %v0)
197 %v2 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
198 %v3 = call <64 x i1> @llvm.hexagon.V6.pred.typecast.128B.v64i1.v128i1(<128 x i1> %v2)
199 %v4 = and <64 x i1> %v1, %v3
200 %v5 = call <128 x i1> @llvm.hexagon.V6.pred.typecast.128B.v128i1.v64i1(<64 x i1> %v4)
201 %v6 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v5, i32 -1)
205 define <32 x i32> @f6(<32 x i32> %a0, <32 x i32> %a1) #1 {
207 ; CHECK: // %bb.0: // %b0
209 ; CHECK-NEXT: r0 = #-1
212 ; CHECK-NEXT: q0 = vand(v0,r0)
215 ; CHECK-NEXT: q1 = vand(v1,r0)
218 ; CHECK-NEXT: q0 = or(q0,q1)
221 ; CHECK-NEXT: v0 = vand(q0,r0)
224 ; CHECK-NEXT: jumpr r31
227 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
228 %v1 = call <64 x i1> @llvm.hexagon.V6.pred.typecast.128B.v64i1.v128i1(<128 x i1> %v0)
229 %v2 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
230 %v3 = call <64 x i1> @llvm.hexagon.V6.pred.typecast.128B.v64i1.v128i1(<128 x i1> %v2)
231 %v4 = or <64 x i1> %v1, %v3
232 %v5 = call <128 x i1> @llvm.hexagon.V6.pred.typecast.128B.v128i1.v64i1(<64 x i1> %v4)
233 %v6 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v5, i32 -1)
237 define <32 x i32> @f7(<32 x i32> %a0, <32 x i32> %a1) #1 {
239 ; CHECK: // %bb.0: // %b0
241 ; CHECK-NEXT: r0 = #-1
244 ; CHECK-NEXT: q0 = vand(v0,r0)
247 ; CHECK-NEXT: q1 = vand(v1,r0)
250 ; CHECK-NEXT: q0 = xor(q0,q1)
253 ; CHECK-NEXT: v0 = vand(q0,r0)
256 ; CHECK-NEXT: jumpr r31
259 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
260 %v1 = call <64 x i1> @llvm.hexagon.V6.pred.typecast.128B.v64i1.v128i1(<128 x i1> %v0)
261 %v2 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
262 %v3 = call <64 x i1> @llvm.hexagon.V6.pred.typecast.128B.v64i1.v128i1(<128 x i1> %v2)
263 %v4 = xor <64 x i1> %v1, %v3
264 %v5 = call <128 x i1> @llvm.hexagon.V6.pred.typecast.128B.v128i1.v64i1(<64 x i1> %v4)
265 %v6 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v5, i32 -1)
269 define <32 x i32> @f8(<32 x i32> %a0, <32 x i32> %a1) #1 {
271 ; CHECK: // %bb.0: // %b0
273 ; CHECK-NEXT: r0 = #-1
276 ; CHECK-NEXT: q0 = vand(v0,r0)
279 ; CHECK-NEXT: q1 = vand(v1,r0)
282 ; CHECK-NEXT: q0 = and(q0,!q1)
285 ; CHECK-NEXT: v0 = vand(q0,r0)
288 ; CHECK-NEXT: jumpr r31
291 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
292 %v1 = call <64 x i1> @llvm.hexagon.V6.pred.typecast.128B.v64i1.v128i1(<128 x i1> %v0)
293 %v2 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
294 %v3 = call <64 x i1> @llvm.hexagon.V6.pred.typecast.128B.v64i1.v128i1(<128 x i1> %v2)
295 %v4 = xor <64 x i1> %v3, <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>
296 %v5 = and <64 x i1> %v1, %v4
297 %v6 = call <128 x i1> @llvm.hexagon.V6.pred.typecast.128B.v128i1.v64i1(<64 x i1> %v5)
298 %v7 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v6, i32 -1)
302 define <32 x i32> @f9(<32 x i32> %a0, <32 x i32> %a1) #1 {
304 ; CHECK: // %bb.0: // %b0
306 ; CHECK-NEXT: r0 = #-1
309 ; CHECK-NEXT: q0 = vand(v0,r0)
312 ; CHECK-NEXT: q1 = vand(v1,r0)
315 ; CHECK-NEXT: q0 = or(q0,!q1)
318 ; CHECK-NEXT: v0 = vand(q0,r0)
321 ; CHECK-NEXT: jumpr r31
324 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
325 %v1 = call <64 x i1> @llvm.hexagon.V6.pred.typecast.128B.v64i1.v128i1(<128 x i1> %v0)
326 %v2 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
327 %v3 = call <64 x i1> @llvm.hexagon.V6.pred.typecast.128B.v64i1.v128i1(<128 x i1> %v2)
328 %v4 = xor <64 x i1> %v3, <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>
329 %v5 = or <64 x i1> %v1, %v4
330 %v6 = call <128 x i1> @llvm.hexagon.V6.pred.typecast.128B.v128i1.v64i1(<64 x i1> %v5)
331 %v7 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v6, i32 -1)
335 define <32 x i32> @f10(<32 x i32> %a0, <32 x i32> %a1) #1 {
337 ; CHECK: // %bb.0: // %b0
339 ; CHECK-NEXT: r0 = #-1
342 ; CHECK-NEXT: q0 = vand(v0,r0)
345 ; CHECK-NEXT: q1 = vand(v1,r0)
348 ; CHECK-NEXT: q0 = and(q0,q1)
351 ; CHECK-NEXT: v0 = vand(q0,r0)
354 ; CHECK-NEXT: jumpr r31
357 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
358 %v1 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
359 %v2 = and <128 x i1> %v0, %v1
360 %v3 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v2, i32 -1)
364 define <32 x i32> @f11(<32 x i32> %a0, <32 x i32> %a1) #1 {
366 ; CHECK: // %bb.0: // %b0
368 ; CHECK-NEXT: r0 = #-1
371 ; CHECK-NEXT: q0 = vand(v0,r0)
374 ; CHECK-NEXT: q1 = vand(v1,r0)
377 ; CHECK-NEXT: q0 = or(q0,q1)
380 ; CHECK-NEXT: v0 = vand(q0,r0)
383 ; CHECK-NEXT: jumpr r31
386 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
387 %v1 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
388 %v2 = or <128 x i1> %v0, %v1
389 %v3 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v2, i32 -1)
393 define <32 x i32> @f12(<32 x i32> %a0, <32 x i32> %a1) #1 {
395 ; CHECK: // %bb.0: // %b0
397 ; CHECK-NEXT: r0 = #-1
400 ; CHECK-NEXT: q0 = vand(v0,r0)
403 ; CHECK-NEXT: q1 = vand(v1,r0)
406 ; CHECK-NEXT: q0 = xor(q0,q1)
409 ; CHECK-NEXT: v0 = vand(q0,r0)
412 ; CHECK-NEXT: jumpr r31
415 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
416 %v1 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
417 %v2 = xor <128 x i1> %v0, %v1
418 %v3 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v2, i32 -1)
422 define <32 x i32> @f13(<32 x i32> %a0, <32 x i32> %a1) #1 {
424 ; CHECK: // %bb.0: // %b0
426 ; CHECK-NEXT: r0 = #-1
429 ; CHECK-NEXT: q0 = vand(v0,r0)
432 ; CHECK-NEXT: q1 = vand(v1,r0)
435 ; CHECK-NEXT: q0 = and(q0,!q1)
438 ; CHECK-NEXT: v0 = vand(q0,r0)
441 ; CHECK-NEXT: jumpr r31
444 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
445 %v1 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
446 %v2 = xor <128 x i1> %v1, <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>
447 %v3 = and <128 x i1> %v0, %v2
448 %v4 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v3, i32 -1)
452 define <32 x i32> @f14(<32 x i32> %a0, <32 x i32> %a1) #1 {
454 ; CHECK: // %bb.0: // %b0
456 ; CHECK-NEXT: r0 = #-1
459 ; CHECK-NEXT: q0 = vand(v0,r0)
462 ; CHECK-NEXT: q1 = vand(v1,r0)
465 ; CHECK-NEXT: q0 = or(q0,!q1)
468 ; CHECK-NEXT: v0 = vand(q0,r0)
471 ; CHECK-NEXT: jumpr r31
474 %v0 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a0, i32 -1)
475 %v1 = call <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32> %a1, i32 -1)
476 %v2 = xor <128 x i1> %v1, <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>
477 %v3 = or <128 x i1> %v0, %v2
478 %v4 = call <32 x i32> @llvm.hexagon.V6.vandqrt.128B(<128 x i1> %v3, i32 -1)
482 attributes #0 = { nounwind readnone }
483 attributes #1 = { nounwind "target-cpu"="hexagonv66" "target-features"="+hvxv66,+hvx-length128b,-packets" }