• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -march=hexagon < %s | FileCheck %s
2
3@d = external global <16 x i32>, align 64
4
5; CHECK-LABEL: test1:
6; CHECK: q{{[0-9]}} &= vcmp.eq(v{{[0-9]+}}.b,v{{[0-9]+}}.b)
7define void @test1(<16 x i32> %a, <16 x i32> %b) #0 {
8entry:
9  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
14  ret void
15}
16
17; CHECK-LABEL: test2:
18; CHECK: q{{[0-9]}} &= vcmp.eq(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
19define void @test2(<16 x i32> %a, <16 x i32> %b) #0 {
20entry:
21  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
26  ret void
27}
28
29; CHECK-LABEL: test3:
30; CHECK: q{{[0-9]}} &= vcmp.eq(v{{[0-9]+}}.w,v{{[0-9]+}}.w)
31define void @test3(<16 x i32> %a, <16 x i32> %b) #0 {
32entry:
33  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
38  ret void
39}
40
41; CHECK-LABEL: test4:
42; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.b,v{{[0-9]+}}.b)
43define void @test4(<16 x i32> %a, <16 x i32> %b) #0 {
44entry:
45  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
50  ret void
51}
52
53; CHECK-LABEL: test5:
54; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
55define void @test5(<16 x i32> %a, <16 x i32> %b) #0 {
56entry:
57  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
62  ret void
63}
64
65; CHECK-LABEL: test6:
66; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.w,v{{[0-9]+}}.w)
67define void @test6(<16 x i32> %a, <16 x i32> %b) #0 {
68entry:
69  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
74  ret void
75}
76
77; CHECK-LABEL: test7:
78; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.ub,v{{[0-9]+}}.ub)
79define void @test7(<16 x i32> %a, <16 x i32> %b) #0 {
80entry:
81  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
86  ret void
87}
88
89; CHECK-LABEL: test8:
90; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.uh,v{{[0-9]+}}.uh)
91define void @test8(<16 x i32> %a, <16 x i32> %b) #0 {
92entry:
93  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
98  ret void
99}
100
101; CHECK-LABEL: test9:
102; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.uw,v{{[0-9]+}}.uw)
103define void @test9(<16 x i32> %a, <16 x i32> %b) #0 {
104entry:
105  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
110  ret void
111}
112
113; CHECK-LABEL: test10:
114; CHECK: q{{[0-9]}} |= vcmp.eq(v{{[0-9]+}}.b,v{{[0-9]+}}.b)
115define void @test10(<16 x i32> %a, <16 x i32> %b) #0 {
116entry:
117  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
122  ret void
123}
124
125; CHECK-LABEL: test11:
126; CHECK: q{{[0-9]}} |= vcmp.eq(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
127define void @test11(<16 x i32> %a, <16 x i32> %b) #0 {
128entry:
129  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
134  ret void
135}
136
137; CHECK-LABEL: test12:
138; CHECK: q{{[0-9]}} |= vcmp.eq(v{{[0-9]+}}.w,v{{[0-9]+}}.w)
139define void @test12(<16 x i32> %a, <16 x i32> %b) #0 {
140entry:
141  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
146  ret void
147}
148
149; CHECK-LABEL: test13:
150; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.b,v{{[0-9]+}}.b)
151define void @test13(<16 x i32> %a, <16 x i32> %b) #0 {
152entry:
153  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
158  ret void
159}
160
161; CHECK-LABEL: test14:
162; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
163define void @test14(<16 x i32> %a, <16 x i32> %b) #0 {
164entry:
165  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
170  ret void
171}
172
173; CHECK-LABEL: test15:
174; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.w,v{{[0-9]+}}.w)
175define void @test15(<16 x i32> %a, <16 x i32> %b) #0 {
176entry:
177  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
182  ret void
183}
184
185; CHECK-LABEL: test16:
186; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.ub,v{{[0-9]+}}.ub)
187define void @test16(<16 x i32> %a, <16 x i32> %b) #0 {
188entry:
189  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
194  ret void
195}
196
197; CHECK-LABEL: test17:
198; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.uh,v{{[0-9]+}}.uh)
199define void @test17(<16 x i32> %a, <16 x i32> %b) #0 {
200entry:
201  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
206  ret void
207}
208
209; CHECK-LABEL: test18:
210; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.uw,v{{[0-9]+}}.uw)
211define void @test18(<16 x i32> %a, <16 x i32> %b) #0 {
212entry:
213  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
218  ret void
219}
220
221; CHECK-LABEL: test19:
222; CHECK: q{{[0-9]}} ^= vcmp.eq(v{{[0-9]+}}.b,v{{[0-9]+}}.b)
223define void @test19(<16 x i32> %a, <16 x i32> %b) #0 {
224entry:
225  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
230  ret void
231}
232
233; CHECK-LABEL: test20:
234; CHECK: q{{[0-9]}} ^= vcmp.eq(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
235define void @test20(<16 x i32> %a, <16 x i32> %b) #0 {
236entry:
237  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
242  ret void
243}
244
245; CHECK-LABEL: test21:
246; CHECK: q{{[0-9]}} ^= vcmp.eq(v{{[0-9]+}}.w,v{{[0-9]+}}.w)
247define void @test21(<16 x i32> %a, <16 x i32> %b) #0 {
248entry:
249  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
254  ret void
255}
256
257; CHECK-LABEL: test22:
258; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.b,v{{[0-9]+}}.b)
259define void @test22(<16 x i32> %a, <16 x i32> %b) #0 {
260entry:
261  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
266  ret void
267}
268
269; CHECK-LABEL: test23:
270; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
271define void @test23(<16 x i32> %a, <16 x i32> %b) #0 {
272entry:
273  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
278  ret void
279}
280
281; CHECK-LABEL: test24:
282; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.w,v{{[0-9]+}}.w)
283define void @test24(<16 x i32> %a, <16 x i32> %b) #0 {
284entry:
285  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
290  ret void
291}
292
293; CHECK-LABEL: test25:
294; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.ub,v{{[0-9]+}}.ub)
295define void @test25(<16 x i32> %a, <16 x i32> %b) #0 {
296entry:
297  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
302  ret void
303}
304
305; CHECK-LABEL: test26:
306; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.uh,v{{[0-9]+}}.uh)
307define void @test26(<16 x i32> %a, <16 x i32> %b) #0 {
308entry:
309  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
314  ret void
315}
316
317; CHECK-LABEL: test27:
318; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.uw,v{{[0-9]+}}.uw)
319define void @test27(<16 x i32> %a, <16 x i32> %b) #0 {
320entry:
321  %v0 = load <16 x i32>, <16 x i32>* @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, <16 x i32>* @d, align 64
326  ret void
327}
328
329declare <64 x i1> @llvm.hexagon.V6.veqb.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
330declare <64 x i1> @llvm.hexagon.V6.veqh.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
331declare <64 x i1> @llvm.hexagon.V6.veqw.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
332declare <64 x i1> @llvm.hexagon.V6.vgtb.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
333declare <64 x i1> @llvm.hexagon.V6.vgth.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
334declare <64 x i1> @llvm.hexagon.V6.vgtw.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
335declare <64 x i1> @llvm.hexagon.V6.vgtub.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
336declare <64 x i1> @llvm.hexagon.V6.vgtuh.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
337declare <64 x i1> @llvm.hexagon.V6.vgtuw.and(<64 x i1>, <16 x i32>, <16 x i32>) #0
338declare <64 x i1> @llvm.hexagon.V6.veqb.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
339declare <64 x i1> @llvm.hexagon.V6.veqh.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
340declare <64 x i1> @llvm.hexagon.V6.veqw.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
341declare <64 x i1> @llvm.hexagon.V6.vgtb.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
342declare <64 x i1> @llvm.hexagon.V6.vgth.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
343declare <64 x i1> @llvm.hexagon.V6.vgtw.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
344declare <64 x i1> @llvm.hexagon.V6.vgtub.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
345declare <64 x i1> @llvm.hexagon.V6.vgtuh.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
346declare <64 x i1> @llvm.hexagon.V6.vgtuw.or(<64 x i1>, <16 x i32>, <16 x i32>) #0
347declare <64 x i1> @llvm.hexagon.V6.veqb.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
348declare <64 x i1> @llvm.hexagon.V6.veqh.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
349declare <64 x i1> @llvm.hexagon.V6.veqw.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
350declare <64 x i1> @llvm.hexagon.V6.vgtb.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
351declare <64 x i1> @llvm.hexagon.V6.vgth.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
352declare <64 x i1> @llvm.hexagon.V6.vgtw.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
353declare <64 x i1> @llvm.hexagon.V6.vgtub.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
354declare <64 x i1> @llvm.hexagon.V6.vgtuh.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
355declare <64 x i1> @llvm.hexagon.V6.vgtuw.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0
356declare <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1>, i32) #0
357declare <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32>, i32) #0
358
359attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvxv60,+hvx-length64b" }
360