[NFC][Py Reformat] Reformat python files in llvm
[llvm-project.git] / llvm / test / CodeGen / Hexagon / intrinsics-v60-vcmp.ll
blob43953d9dca7691f7de56061cca92e909215ce412
1 ; RUN: llc -march=hexagon < %s | FileCheck %s
3 @d = external global <16 x i32>, align 64
5 ; CHECK-LABEL: test1:
6 ; CHECK: q{{[0-9]}} &= vcmp.eq(v{{[0-9]+}}.b,v{{[0-9]+}}.b)
7 define void @test1(<16 x i32> %a, <16 x i32> %b) #0 {
8 entry:
9   %v0 = load <16 x i32>, ptr @d, align 64
10   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
11   %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqb.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
12   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
13   store <16 x i32> %v3, ptr @d, align 64
14   ret void
17 ; CHECK-LABEL: test2:
18 ; CHECK: q{{[0-9]}} &= vcmp.eq(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
19 define void @test2(<16 x i32> %a, <16 x i32> %b) #0 {
20 entry:
21   %v0 = load <16 x i32>, ptr @d, align 64
22   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
23   %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqh.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
24   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
25   store <16 x i32> %v3, ptr @d, align 64
26   ret void
29 ; CHECK-LABEL: test3:
30 ; CHECK: q{{[0-9]}} &= vcmp.eq(v{{[0-9]+}}.w,v{{[0-9]+}}.w)
31 define void @test3(<16 x i32> %a, <16 x i32> %b) #0 {
32 entry:
33   %v0 = load <16 x i32>, ptr @d, align 64
34   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
35   %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqw.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
36   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
37   store <16 x i32> %v3, ptr @d, align 64
38   ret void
41 ; CHECK-LABEL: test4:
42 ; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.b,v{{[0-9]+}}.b)
43 define void @test4(<16 x i32> %a, <16 x i32> %b) #0 {
44 entry:
45   %v0 = load <16 x i32>, ptr @d, align 64
46   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
47   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtb.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
48   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
49   store <16 x i32> %v3, ptr @d, align 64
50   ret void
53 ; CHECK-LABEL: test5:
54 ; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
55 define void @test5(<16 x i32> %a, <16 x i32> %b) #0 {
56 entry:
57   %v0 = load <16 x i32>, ptr @d, align 64
58   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
59   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgth.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
60   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
61   store <16 x i32> %v3, ptr @d, align 64
62   ret void
65 ; CHECK-LABEL: test6:
66 ; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.w,v{{[0-9]+}}.w)
67 define void @test6(<16 x i32> %a, <16 x i32> %b) #0 {
68 entry:
69   %v0 = load <16 x i32>, ptr @d, align 64
70   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
71   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtw.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
72   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
73   store <16 x i32> %v3, ptr @d, align 64
74   ret void
77 ; CHECK-LABEL: test7:
78 ; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.ub,v{{[0-9]+}}.ub)
79 define void @test7(<16 x i32> %a, <16 x i32> %b) #0 {
80 entry:
81   %v0 = load <16 x i32>, ptr @d, align 64
82   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
83   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtub.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
84   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
85   store <16 x i32> %v3, ptr @d, align 64
86   ret void
89 ; CHECK-LABEL: test8:
90 ; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.uh,v{{[0-9]+}}.uh)
91 define void @test8(<16 x i32> %a, <16 x i32> %b) #0 {
92 entry:
93   %v0 = load <16 x i32>, ptr @d, align 64
94   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
95   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtuh.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
96   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
97   store <16 x i32> %v3, ptr @d, align 64
98   ret void
101 ; CHECK-LABEL: test9:
102 ; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.uw,v{{[0-9]+}}.uw)
103 define void @test9(<16 x i32> %a, <16 x i32> %b) #0 {
104 entry:
105   %v0 = load <16 x i32>, ptr @d, align 64
106   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
107   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtuw.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
108   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
109   store <16 x i32> %v3, ptr @d, align 64
110   ret void
113 ; CHECK-LABEL: test10:
114 ; CHECK: q{{[0-9]}} |= vcmp.eq(v{{[0-9]+}}.b,v{{[0-9]+}}.b)
115 define void @test10(<16 x i32> %a, <16 x i32> %b) #0 {
116 entry:
117   %v0 = load <16 x i32>, ptr @d, align 64
118   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
119   %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqb.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
120   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
121   store <16 x i32> %v3, ptr @d, align 64
122   ret void
125 ; CHECK-LABEL: test11:
126 ; CHECK: q{{[0-9]}} |= vcmp.eq(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
127 define void @test11(<16 x i32> %a, <16 x i32> %b) #0 {
128 entry:
129   %v0 = load <16 x i32>, ptr @d, align 64
130   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
131   %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqh.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
132   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
133   store <16 x i32> %v3, ptr @d, align 64
134   ret void
137 ; CHECK-LABEL: test12:
138 ; CHECK: q{{[0-9]}} |= vcmp.eq(v{{[0-9]+}}.w,v{{[0-9]+}}.w)
139 define void @test12(<16 x i32> %a, <16 x i32> %b) #0 {
140 entry:
141   %v0 = load <16 x i32>, ptr @d, align 64
142   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
143   %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqw.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
144   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
145   store <16 x i32> %v3, ptr @d, align 64
146   ret void
149 ; CHECK-LABEL: test13:
150 ; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.b,v{{[0-9]+}}.b)
151 define void @test13(<16 x i32> %a, <16 x i32> %b) #0 {
152 entry:
153   %v0 = load <16 x i32>, ptr @d, align 64
154   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
155   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtb.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
156   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
157   store <16 x i32> %v3, ptr @d, align 64
158   ret void
161 ; CHECK-LABEL: test14:
162 ; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
163 define void @test14(<16 x i32> %a, <16 x i32> %b) #0 {
164 entry:
165   %v0 = load <16 x i32>, ptr @d, align 64
166   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
167   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgth.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
168   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
169   store <16 x i32> %v3, ptr @d, align 64
170   ret void
173 ; CHECK-LABEL: test15:
174 ; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.w,v{{[0-9]+}}.w)
175 define void @test15(<16 x i32> %a, <16 x i32> %b) #0 {
176 entry:
177   %v0 = load <16 x i32>, ptr @d, align 64
178   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
179   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtw.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
180   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
181   store <16 x i32> %v3, ptr @d, align 64
182   ret void
185 ; CHECK-LABEL: test16:
186 ; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.ub,v{{[0-9]+}}.ub)
187 define void @test16(<16 x i32> %a, <16 x i32> %b) #0 {
188 entry:
189   %v0 = load <16 x i32>, ptr @d, align 64
190   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
191   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtub.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
192   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
193   store <16 x i32> %v3, ptr @d, align 64
194   ret void
197 ; CHECK-LABEL: test17:
198 ; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.uh,v{{[0-9]+}}.uh)
199 define void @test17(<16 x i32> %a, <16 x i32> %b) #0 {
200 entry:
201   %v0 = load <16 x i32>, ptr @d, align 64
202   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
203   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtuh.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
204   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
205   store <16 x i32> %v3, ptr @d, align 64
206   ret void
209 ; CHECK-LABEL: test18:
210 ; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.uw,v{{[0-9]+}}.uw)
211 define void @test18(<16 x i32> %a, <16 x i32> %b) #0 {
212 entry:
213   %v0 = load <16 x i32>, ptr @d, align 64
214   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
215   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtuw.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
216   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
217   store <16 x i32> %v3, ptr @d, align 64
218   ret void
221 ; CHECK-LABEL: test19:
222 ; CHECK: q{{[0-9]}} ^= vcmp.eq(v{{[0-9]+}}.b,v{{[0-9]+}}.b)
223 define void @test19(<16 x i32> %a, <16 x i32> %b) #0 {
224 entry:
225   %v0 = load <16 x i32>, ptr @d, align 64
226   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
227   %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqb.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
228   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
229   store <16 x i32> %v3, ptr @d, align 64
230   ret void
233 ; CHECK-LABEL: test20:
234 ; CHECK: q{{[0-9]}} ^= vcmp.eq(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
235 define void @test20(<16 x i32> %a, <16 x i32> %b) #0 {
236 entry:
237   %v0 = load <16 x i32>, ptr @d, align 64
238   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
239   %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqh.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
240   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
241   store <16 x i32> %v3, ptr @d, align 64
242   ret void
245 ; CHECK-LABEL: test21:
246 ; CHECK: q{{[0-9]}} ^= vcmp.eq(v{{[0-9]+}}.w,v{{[0-9]+}}.w)
247 define void @test21(<16 x i32> %a, <16 x i32> %b) #0 {
248 entry:
249   %v0 = load <16 x i32>, ptr @d, align 64
250   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
251   %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqw.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
252   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
253   store <16 x i32> %v3, ptr @d, align 64
254   ret void
257 ; CHECK-LABEL: test22:
258 ; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.b,v{{[0-9]+}}.b)
259 define void @test22(<16 x i32> %a, <16 x i32> %b) #0 {
260 entry:
261   %v0 = load <16 x i32>, ptr @d, align 64
262   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
263   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtb.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
264   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
265   store <16 x i32> %v3, ptr @d, align 64
266   ret void
269 ; CHECK-LABEL: test23:
270 ; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
271 define void @test23(<16 x i32> %a, <16 x i32> %b) #0 {
272 entry:
273   %v0 = load <16 x i32>, ptr @d, align 64
274   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
275   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgth.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
276   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
277   store <16 x i32> %v3, ptr @d, align 64
278   ret void
281 ; CHECK-LABEL: test24:
282 ; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.w,v{{[0-9]+}}.w)
283 define void @test24(<16 x i32> %a, <16 x i32> %b) #0 {
284 entry:
285   %v0 = load <16 x i32>, ptr @d, align 64
286   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
287   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtw.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
288   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
289   store <16 x i32> %v3, ptr @d, align 64
290   ret void
293 ; CHECK-LABEL: test25:
294 ; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.ub,v{{[0-9]+}}.ub)
295 define void @test25(<16 x i32> %a, <16 x i32> %b) #0 {
296 entry:
297   %v0 = load <16 x i32>, ptr @d, align 64
298   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
299   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtub.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
300   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
301   store <16 x i32> %v3, ptr @d, align 64
302   ret void
305 ; CHECK-LABEL: test26:
306 ; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.uh,v{{[0-9]+}}.uh)
307 define void @test26(<16 x i32> %a, <16 x i32> %b) #0 {
308 entry:
309   %v0 = load <16 x i32>, ptr @d, align 64
310   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
311   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtuh.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
312   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
313   store <16 x i32> %v3, ptr @d, align 64
314   ret void
317 ; CHECK-LABEL: test27:
318 ; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.uw,v{{[0-9]+}}.uw)
319 define void @test27(<16 x i32> %a, <16 x i32> %b) #0 {
320 entry:
321   %v0 = load <16 x i32>, ptr @d, align 64
322   %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1)
323   %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtuw.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b)
324   %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1)
325   store <16 x i32> %v3, ptr @d, align 64
326   ret void
329 declare <64 x i1> @llvm.hexagon.V6.veqb.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
330 declare <64 x i1> @llvm.hexagon.V6.veqh.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
331 declare <64 x i1> @llvm.hexagon.V6.veqw.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
332 declare <64 x i1> @llvm.hexagon.V6.vgtb.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
333 declare <64 x i1> @llvm.hexagon.V6.vgth.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
334 declare <64 x i1> @llvm.hexagon.V6.vgtw.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
335 declare <64 x i1> @llvm.hexagon.V6.vgtub.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
336 declare <64 x i1> @llvm.hexagon.V6.vgtuh.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
337 declare <64 x i1> @llvm.hexagon.V6.vgtuw.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
338 declare <64 x i1> @llvm.hexagon.V6.veqb.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
339 declare <64 x i1> @llvm.hexagon.V6.veqh.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
340 declare <64 x i1> @llvm.hexagon.V6.veqw.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
341 declare <64 x i1> @llvm.hexagon.V6.vgtb.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
342 declare <64 x i1> @llvm.hexagon.V6.vgth.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
343 declare <64 x i1> @llvm.hexagon.V6.vgtw.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
344 declare <64 x i1> @llvm.hexagon.V6.vgtub.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
345 declare <64 x i1> @llvm.hexagon.V6.vgtuh.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
346 declare <64 x i1> @llvm.hexagon.V6.vgtuw.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
347 declare <64 x i1> @llvm.hexagon.V6.veqb.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
348 declare <64 x i1> @llvm.hexagon.V6.veqh.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
349 declare <64 x i1> @llvm.hexagon.V6.veqw.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
350 declare <64 x i1> @llvm.hexagon.V6.vgtb.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
351 declare <64 x i1> @llvm.hexagon.V6.vgth.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
352 declare <64 x i1> @llvm.hexagon.V6.vgtw.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
353 declare <64 x i1> @llvm.hexagon.V6.vgtub.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
354 declare <64 x i1> @llvm.hexagon.V6.vgtuh.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
355 declare <64 x i1> @llvm.hexagon.V6.vgtuw.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
356 declare <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1>, i32) #0
357 declare <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32>, i32) #0
359 attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvxv60,+hvx-length64b" }