Warning: This file is not a C or C++ file. It does not have highlighting.

1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8// Automatically generated file, do not edit!
9//===----------------------------------------------------------------------===//
10
11
12#ifndef _HVX_HEXAGON_PROTOS_H_
13#define _HVX_HEXAGON_PROTOS_H_ 1
14
15#ifdef __HVX__
16#if __HVX_LENGTH__ == 128
17#define __BUILTIN_VECTOR_WRAP(a) a ## _128B
18#else
19#define __BUILTIN_VECTOR_WRAP(a) a
20#endif
21
22#if __HVX_ARCH__ >= 60
23/* ==========================================================================
24 Assembly Syntax: Rd32=vextract(Vu32,Rs32)
25 C Intrinsic Prototype: Word32 Q6_R_vextract_VR(HVX_Vector Vu, Word32 Rs)
26 Instruction Type: LD
27 Execution Slots: SLOT0
28 ========================================================================== */
29
30#define Q6_R_vextract_VR(Vu,Rs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_extractw)(Vu,Rs)
31#endif /* __HEXAGON_ARCH___ >= 60 */
32
33#if __HVX_ARCH__ >= 60
34/* ==========================================================================
35 Assembly Syntax: Vd32=hi(Vss32)
36 C Intrinsic Prototype: HVX_Vector Q6_V_hi_W(HVX_VectorPair Vss)
37 Instruction Type: CVI_VA
38 Execution Slots: SLOT0123
39 ========================================================================== */
40
41#define Q6_V_hi_W(Vss) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_hi)(Vss)
42#endif /* __HEXAGON_ARCH___ >= 60 */
43
44#if __HVX_ARCH__ >= 60
45/* ==========================================================================
46 Assembly Syntax: Vd32=lo(Vss32)
47 C Intrinsic Prototype: HVX_Vector Q6_V_lo_W(HVX_VectorPair Vss)
48 Instruction Type: CVI_VA
49 Execution Slots: SLOT0123
50 ========================================================================== */
51
52#define Q6_V_lo_W(Vss) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lo)(Vss)
53#endif /* __HEXAGON_ARCH___ >= 60 */
54
55#if __HVX_ARCH__ >= 60
56/* ==========================================================================
57 Assembly Syntax: Vd32=vsplat(Rt32)
58 C Intrinsic Prototype: HVX_Vector Q6_V_vsplat_R(Word32 Rt)
59 Instruction Type: CVI_VX_LATE
60 Execution Slots: SLOT23
61 ========================================================================== */
62
63#define Q6_V_vsplat_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplatw)(Rt)
64#endif /* __HEXAGON_ARCH___ >= 60 */
65
66#if __HVX_ARCH__ >= 60
67/* ==========================================================================
68 Assembly Syntax: Qd4=and(Qs4,Qt4)
69 C Intrinsic Prototype: HVX_VectorPred Q6_Q_and_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
70 Instruction Type: CVI_VA_DV
71 Execution Slots: SLOT0123
72 ========================================================================== */
73
74#define Q6_Q_and_QQ(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
75#endif /* __HEXAGON_ARCH___ >= 60 */
76
77#if __HVX_ARCH__ >= 60
78/* ==========================================================================
79 Assembly Syntax: Qd4=and(Qs4,!Qt4)
80 C Intrinsic Prototype: HVX_VectorPred Q6_Q_and_QQn(HVX_VectorPred Qs, HVX_VectorPred Qt)
81 Instruction Type: CVI_VA_DV
82 Execution Slots: SLOT0123
83 ========================================================================== */
84
85#define Q6_Q_and_QQn(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_and_n)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
86#endif /* __HEXAGON_ARCH___ >= 60 */
87
88#if __HVX_ARCH__ >= 60
89/* ==========================================================================
90 Assembly Syntax: Qd4=not(Qs4)
91 C Intrinsic Prototype: HVX_VectorPred Q6_Q_not_Q(HVX_VectorPred Qs)
92 Instruction Type: CVI_VA
93 Execution Slots: SLOT0123
94 ========================================================================== */
95
96#define Q6_Q_not_Q(Qs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_not)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1))),-1)
97#endif /* __HEXAGON_ARCH___ >= 60 */
98
99#if __HVX_ARCH__ >= 60
100/* ==========================================================================
101 Assembly Syntax: Qd4=or(Qs4,Qt4)
102 C Intrinsic Prototype: HVX_VectorPred Q6_Q_or_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
103 Instruction Type: CVI_VA_DV
104 Execution Slots: SLOT0123
105 ========================================================================== */
106
107#define Q6_Q_or_QQ(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
108#endif /* __HEXAGON_ARCH___ >= 60 */
109
110#if __HVX_ARCH__ >= 60
111/* ==========================================================================
112 Assembly Syntax: Qd4=or(Qs4,!Qt4)
113 C Intrinsic Prototype: HVX_VectorPred Q6_Q_or_QQn(HVX_VectorPred Qs, HVX_VectorPred Qt)
114 Instruction Type: CVI_VA_DV
115 Execution Slots: SLOT0123
116 ========================================================================== */
117
118#define Q6_Q_or_QQn(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_or_n)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
119#endif /* __HEXAGON_ARCH___ >= 60 */
120
121#if __HVX_ARCH__ >= 60
122/* ==========================================================================
123 Assembly Syntax: Qd4=vsetq(Rt32)
124 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vsetq_R(Word32 Rt)
125 Instruction Type: CVI_VP
126 Execution Slots: SLOT0123
127 ========================================================================== */
128
129#define Q6_Q_vsetq_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_scalar2)(Rt)),-1)
130#endif /* __HEXAGON_ARCH___ >= 60 */
131
132#if __HVX_ARCH__ >= 60
133/* ==========================================================================
134 Assembly Syntax: Qd4=xor(Qs4,Qt4)
135 C Intrinsic Prototype: HVX_VectorPred Q6_Q_xor_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
136 Instruction Type: CVI_VA_DV
137 Execution Slots: SLOT0123
138 ========================================================================== */
139
140#define Q6_Q_xor_QQ(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
141#endif /* __HEXAGON_ARCH___ >= 60 */
142
143#if __HVX_ARCH__ >= 60
144/* ==========================================================================
145 Assembly Syntax: if (!Qv4) vmem(Rt32+#s4)=Vs32
146 C Intrinsic Prototype: void Q6_vmem_QnRIV(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
147 Instruction Type: CVI_VM_ST
148 Execution Slots: SLOT0
149 ========================================================================== */
150
151#define Q6_vmem_QnRIV(Qv,Rt,Vs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_nqpred_ai)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Rt,Vs)
152#endif /* __HEXAGON_ARCH___ >= 60 */
153
154#if __HVX_ARCH__ >= 60
155/* ==========================================================================
156 Assembly Syntax: if (!Qv4) vmem(Rt32+#s4):nt=Vs32
157 C Intrinsic Prototype: void Q6_vmem_QnRIV_nt(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
158 Instruction Type: CVI_VM_ST
159 Execution Slots: SLOT0
160 ========================================================================== */
161
162#define Q6_vmem_QnRIV_nt(Qv,Rt,Vs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_nt_nqpred_ai)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Rt,Vs)
163#endif /* __HEXAGON_ARCH___ >= 60 */
164
165#if __HVX_ARCH__ >= 60
166/* ==========================================================================
167 Assembly Syntax: if (Qv4) vmem(Rt32+#s4):nt=Vs32
168 C Intrinsic Prototype: void Q6_vmem_QRIV_nt(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
169 Instruction Type: CVI_VM_ST
170 Execution Slots: SLOT0
171 ========================================================================== */
172
173#define Q6_vmem_QRIV_nt(Qv,Rt,Vs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_nt_qpred_ai)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Rt,Vs)
174#endif /* __HEXAGON_ARCH___ >= 60 */
175
176#if __HVX_ARCH__ >= 60
177/* ==========================================================================
178 Assembly Syntax: if (Qv4) vmem(Rt32+#s4)=Vs32
179 C Intrinsic Prototype: void Q6_vmem_QRIV(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
180 Instruction Type: CVI_VM_ST
181 Execution Slots: SLOT0
182 ========================================================================== */
183
184#define Q6_vmem_QRIV(Qv,Rt,Vs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_qpred_ai)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Rt,Vs)
185#endif /* __HEXAGON_ARCH___ >= 60 */
186
187#if __HVX_ARCH__ >= 60
188/* ==========================================================================
189 Assembly Syntax: Vd32.uh=vabsdiff(Vu32.h,Vv32.h)
190 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vabsdiff_VhVh(HVX_Vector Vu, HVX_Vector Vv)
191 Instruction Type: CVI_VX
192 Execution Slots: SLOT23
193 ========================================================================== */
194
195#define Q6_Vuh_vabsdiff_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffh)(Vu,Vv)
196#endif /* __HEXAGON_ARCH___ >= 60 */
197
198#if __HVX_ARCH__ >= 60
199/* ==========================================================================
200 Assembly Syntax: Vd32.ub=vabsdiff(Vu32.ub,Vv32.ub)
201 C Intrinsic Prototype: HVX_Vector Q6_Vub_vabsdiff_VubVub(HVX_Vector Vu, HVX_Vector Vv)
202 Instruction Type: CVI_VX
203 Execution Slots: SLOT23
204 ========================================================================== */
205
206#define Q6_Vub_vabsdiff_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffub)(Vu,Vv)
207#endif /* __HEXAGON_ARCH___ >= 60 */
208
209#if __HVX_ARCH__ >= 60
210/* ==========================================================================
211 Assembly Syntax: Vd32.uh=vabsdiff(Vu32.uh,Vv32.uh)
212 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vabsdiff_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
213 Instruction Type: CVI_VX
214 Execution Slots: SLOT23
215 ========================================================================== */
216
217#define Q6_Vuh_vabsdiff_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffuh)(Vu,Vv)
218#endif /* __HEXAGON_ARCH___ >= 60 */
219
220#if __HVX_ARCH__ >= 60
221/* ==========================================================================
222 Assembly Syntax: Vd32.uw=vabsdiff(Vu32.w,Vv32.w)
223 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vabsdiff_VwVw(HVX_Vector Vu, HVX_Vector Vv)
224 Instruction Type: CVI_VX
225 Execution Slots: SLOT23
226 ========================================================================== */
227
228#define Q6_Vuw_vabsdiff_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffw)(Vu,Vv)
229#endif /* __HEXAGON_ARCH___ >= 60 */
230
231#if __HVX_ARCH__ >= 60
232/* ==========================================================================
233 Assembly Syntax: Vd32.h=vabs(Vu32.h)
234 C Intrinsic Prototype: HVX_Vector Q6_Vh_vabs_Vh(HVX_Vector Vu)
235 Instruction Type: CVI_VA
236 Execution Slots: SLOT0123
237 ========================================================================== */
238
239#define Q6_Vh_vabs_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsh)(Vu)
240#endif /* __HEXAGON_ARCH___ >= 60 */
241
242#if __HVX_ARCH__ >= 60
243/* ==========================================================================
244 Assembly Syntax: Vd32.h=vabs(Vu32.h):sat
245 C Intrinsic Prototype: HVX_Vector Q6_Vh_vabs_Vh_sat(HVX_Vector Vu)
246 Instruction Type: CVI_VA
247 Execution Slots: SLOT0123
248 ========================================================================== */
249
250#define Q6_Vh_vabs_Vh_sat(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsh_sat)(Vu)
251#endif /* __HEXAGON_ARCH___ >= 60 */
252
253#if __HVX_ARCH__ >= 60
254/* ==========================================================================
255 Assembly Syntax: Vd32.w=vabs(Vu32.w)
256 C Intrinsic Prototype: HVX_Vector Q6_Vw_vabs_Vw(HVX_Vector Vu)
257 Instruction Type: CVI_VA
258 Execution Slots: SLOT0123
259 ========================================================================== */
260
261#define Q6_Vw_vabs_Vw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsw)(Vu)
262#endif /* __HEXAGON_ARCH___ >= 60 */
263
264#if __HVX_ARCH__ >= 60
265/* ==========================================================================
266 Assembly Syntax: Vd32.w=vabs(Vu32.w):sat
267 C Intrinsic Prototype: HVX_Vector Q6_Vw_vabs_Vw_sat(HVX_Vector Vu)
268 Instruction Type: CVI_VA
269 Execution Slots: SLOT0123
270 ========================================================================== */
271
272#define Q6_Vw_vabs_Vw_sat(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsw_sat)(Vu)
273#endif /* __HEXAGON_ARCH___ >= 60 */
274
275#if __HVX_ARCH__ >= 60
276/* ==========================================================================
277 Assembly Syntax: Vd32.b=vadd(Vu32.b,Vv32.b)
278 C Intrinsic Prototype: HVX_Vector Q6_Vb_vadd_VbVb(HVX_Vector Vu, HVX_Vector Vv)
279 Instruction Type: CVI_VA
280 Execution Slots: SLOT0123
281 ========================================================================== */
282
283#define Q6_Vb_vadd_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddb)(Vu,Vv)
284#endif /* __HEXAGON_ARCH___ >= 60 */
285
286#if __HVX_ARCH__ >= 60
287/* ==========================================================================
288 Assembly Syntax: Vdd32.b=vadd(Vuu32.b,Vvv32.b)
289 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vadd_WbWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
290 Instruction Type: CVI_VA_DV
291 Execution Slots: SLOT0123
292 ========================================================================== */
293
294#define Q6_Wb_vadd_WbWb(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddb_dv)(Vuu,Vvv)
295#endif /* __HEXAGON_ARCH___ >= 60 */
296
297#if __HVX_ARCH__ >= 60
298/* ==========================================================================
299 Assembly Syntax: if (!Qv4) Vx32.b+=Vu32.b
300 C Intrinsic Prototype: HVX_Vector Q6_Vb_condacc_QnVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
301 Instruction Type: CVI_VA
302 Execution Slots: SLOT0123
303 ========================================================================== */
304
305#define Q6_Vb_condacc_QnVbVb(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
306#endif /* __HEXAGON_ARCH___ >= 60 */
307
308#if __HVX_ARCH__ >= 60
309/* ==========================================================================
310 Assembly Syntax: if (Qv4) Vx32.b+=Vu32.b
311 C Intrinsic Prototype: HVX_Vector Q6_Vb_condacc_QVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
312 Instruction Type: CVI_VA
313 Execution Slots: SLOT0123
314 ========================================================================== */
315
316#define Q6_Vb_condacc_QVbVb(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
317#endif /* __HEXAGON_ARCH___ >= 60 */
318
319#if __HVX_ARCH__ >= 60
320/* ==========================================================================
321 Assembly Syntax: Vd32.h=vadd(Vu32.h,Vv32.h)
322 C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_VhVh(HVX_Vector Vu, HVX_Vector Vv)
323 Instruction Type: CVI_VA
324 Execution Slots: SLOT0123
325 ========================================================================== */
326
327#define Q6_Vh_vadd_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddh)(Vu,Vv)
328#endif /* __HEXAGON_ARCH___ >= 60 */
329
330#if __HVX_ARCH__ >= 60
331/* ==========================================================================
332 Assembly Syntax: Vdd32.h=vadd(Vuu32.h,Vvv32.h)
333 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_WhWh(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
334 Instruction Type: CVI_VA_DV
335 Execution Slots: SLOT0123
336 ========================================================================== */
337
338#define Q6_Wh_vadd_WhWh(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddh_dv)(Vuu,Vvv)
339#endif /* __HEXAGON_ARCH___ >= 60 */
340
341#if __HVX_ARCH__ >= 60
342/* ==========================================================================
343 Assembly Syntax: if (!Qv4) Vx32.h+=Vu32.h
344 C Intrinsic Prototype: HVX_Vector Q6_Vh_condacc_QnVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
345 Instruction Type: CVI_VA
346 Execution Slots: SLOT0123
347 ========================================================================== */
348
349#define Q6_Vh_condacc_QnVhVh(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
350#endif /* __HEXAGON_ARCH___ >= 60 */
351
352#if __HVX_ARCH__ >= 60
353/* ==========================================================================
354 Assembly Syntax: if (Qv4) Vx32.h+=Vu32.h
355 C Intrinsic Prototype: HVX_Vector Q6_Vh_condacc_QVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
356 Instruction Type: CVI_VA
357 Execution Slots: SLOT0123
358 ========================================================================== */
359
360#define Q6_Vh_condacc_QVhVh(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
361#endif /* __HEXAGON_ARCH___ >= 60 */
362
363#if __HVX_ARCH__ >= 60
364/* ==========================================================================
365 Assembly Syntax: Vd32.h=vadd(Vu32.h,Vv32.h):sat
366 C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
367 Instruction Type: CVI_VA
368 Execution Slots: SLOT0123
369 ========================================================================== */
370
371#define Q6_Vh_vadd_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhsat)(Vu,Vv)
372#endif /* __HEXAGON_ARCH___ >= 60 */
373
374#if __HVX_ARCH__ >= 60
375/* ==========================================================================
376 Assembly Syntax: Vdd32.h=vadd(Vuu32.h,Vvv32.h):sat
377 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_WhWh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
378 Instruction Type: CVI_VA_DV
379 Execution Slots: SLOT0123
380 ========================================================================== */
381
382#define Q6_Wh_vadd_WhWh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhsat_dv)(Vuu,Vvv)
383#endif /* __HEXAGON_ARCH___ >= 60 */
384
385#if __HVX_ARCH__ >= 60
386/* ==========================================================================
387 Assembly Syntax: Vdd32.w=vadd(Vu32.h,Vv32.h)
388 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_VhVh(HVX_Vector Vu, HVX_Vector Vv)
389 Instruction Type: CVI_VX_DV
390 Execution Slots: SLOT23
391 ========================================================================== */
392
393#define Q6_Ww_vadd_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhw)(Vu,Vv)
394#endif /* __HEXAGON_ARCH___ >= 60 */
395
396#if __HVX_ARCH__ >= 60
397/* ==========================================================================
398 Assembly Syntax: Vdd32.h=vadd(Vu32.ub,Vv32.ub)
399 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_VubVub(HVX_Vector Vu, HVX_Vector Vv)
400 Instruction Type: CVI_VX_DV
401 Execution Slots: SLOT23
402 ========================================================================== */
403
404#define Q6_Wh_vadd_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubh)(Vu,Vv)
405#endif /* __HEXAGON_ARCH___ >= 60 */
406
407#if __HVX_ARCH__ >= 60
408/* ==========================================================================
409 Assembly Syntax: Vd32.ub=vadd(Vu32.ub,Vv32.ub):sat
410 C Intrinsic Prototype: HVX_Vector Q6_Vub_vadd_VubVub_sat(HVX_Vector Vu, HVX_Vector Vv)
411 Instruction Type: CVI_VA
412 Execution Slots: SLOT0123
413 ========================================================================== */
414
415#define Q6_Vub_vadd_VubVub_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubsat)(Vu,Vv)
416#endif /* __HEXAGON_ARCH___ >= 60 */
417
418#if __HVX_ARCH__ >= 60
419/* ==========================================================================
420 Assembly Syntax: Vdd32.ub=vadd(Vuu32.ub,Vvv32.ub):sat
421 C Intrinsic Prototype: HVX_VectorPair Q6_Wub_vadd_WubWub_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
422 Instruction Type: CVI_VA_DV
423 Execution Slots: SLOT0123
424 ========================================================================== */
425
426#define Q6_Wub_vadd_WubWub_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubsat_dv)(Vuu,Vvv)
427#endif /* __HEXAGON_ARCH___ >= 60 */
428
429#if __HVX_ARCH__ >= 60
430/* ==========================================================================
431 Assembly Syntax: Vd32.uh=vadd(Vu32.uh,Vv32.uh):sat
432 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vadd_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
433 Instruction Type: CVI_VA
434 Execution Slots: SLOT0123
435 ========================================================================== */
436
437#define Q6_Vuh_vadd_VuhVuh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhsat)(Vu,Vv)
438#endif /* __HEXAGON_ARCH___ >= 60 */
439
440#if __HVX_ARCH__ >= 60
441/* ==========================================================================
442 Assembly Syntax: Vdd32.uh=vadd(Vuu32.uh,Vvv32.uh):sat
443 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vadd_WuhWuh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
444 Instruction Type: CVI_VA_DV
445 Execution Slots: SLOT0123
446 ========================================================================== */
447
448#define Q6_Wuh_vadd_WuhWuh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhsat_dv)(Vuu,Vvv)
449#endif /* __HEXAGON_ARCH___ >= 60 */
450
451#if __HVX_ARCH__ >= 60
452/* ==========================================================================
453 Assembly Syntax: Vdd32.w=vadd(Vu32.uh,Vv32.uh)
454 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
455 Instruction Type: CVI_VX_DV
456 Execution Slots: SLOT23
457 ========================================================================== */
458
459#define Q6_Ww_vadd_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhw)(Vu,Vv)
460#endif /* __HEXAGON_ARCH___ >= 60 */
461
462#if __HVX_ARCH__ >= 60
463/* ==========================================================================
464 Assembly Syntax: Vd32.w=vadd(Vu32.w,Vv32.w)
465 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVw(HVX_Vector Vu, HVX_Vector Vv)
466 Instruction Type: CVI_VA
467 Execution Slots: SLOT0123
468 ========================================================================== */
469
470#define Q6_Vw_vadd_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddw)(Vu,Vv)
471#endif /* __HEXAGON_ARCH___ >= 60 */
472
473#if __HVX_ARCH__ >= 60
474/* ==========================================================================
475 Assembly Syntax: Vdd32.w=vadd(Vuu32.w,Vvv32.w)
476 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_WwWw(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
477 Instruction Type: CVI_VA_DV
478 Execution Slots: SLOT0123
479 ========================================================================== */
480
481#define Q6_Ww_vadd_WwWw(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddw_dv)(Vuu,Vvv)
482#endif /* __HEXAGON_ARCH___ >= 60 */
483
484#if __HVX_ARCH__ >= 60
485/* ==========================================================================
486 Assembly Syntax: if (!Qv4) Vx32.w+=Vu32.w
487 C Intrinsic Prototype: HVX_Vector Q6_Vw_condacc_QnVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
488 Instruction Type: CVI_VA
489 Execution Slots: SLOT0123
490 ========================================================================== */
491
492#define Q6_Vw_condacc_QnVwVw(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
493#endif /* __HEXAGON_ARCH___ >= 60 */
494
495#if __HVX_ARCH__ >= 60
496/* ==========================================================================
497 Assembly Syntax: if (Qv4) Vx32.w+=Vu32.w
498 C Intrinsic Prototype: HVX_Vector Q6_Vw_condacc_QVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
499 Instruction Type: CVI_VA
500 Execution Slots: SLOT0123
501 ========================================================================== */
502
503#define Q6_Vw_condacc_QVwVw(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
504#endif /* __HEXAGON_ARCH___ >= 60 */
505
506#if __HVX_ARCH__ >= 60
507/* ==========================================================================
508 Assembly Syntax: Vd32.w=vadd(Vu32.w,Vv32.w):sat
509 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
510 Instruction Type: CVI_VA
511 Execution Slots: SLOT0123
512 ========================================================================== */
513
514#define Q6_Vw_vadd_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwsat)(Vu,Vv)
515#endif /* __HEXAGON_ARCH___ >= 60 */
516
517#if __HVX_ARCH__ >= 60
518/* ==========================================================================
519 Assembly Syntax: Vdd32.w=vadd(Vuu32.w,Vvv32.w):sat
520 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_WwWw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
521 Instruction Type: CVI_VA_DV
522 Execution Slots: SLOT0123
523 ========================================================================== */
524
525#define Q6_Ww_vadd_WwWw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwsat_dv)(Vuu,Vvv)
526#endif /* __HEXAGON_ARCH___ >= 60 */
527
528#if __HVX_ARCH__ >= 60
529/* ==========================================================================
530 Assembly Syntax: Vd32=valign(Vu32,Vv32,Rt8)
531 C Intrinsic Prototype: HVX_Vector Q6_V_valign_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
532 Instruction Type: CVI_VP
533 Execution Slots: SLOT0123
534 ========================================================================== */
535
536#define Q6_V_valign_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_valignb)(Vu,Vv,Rt)
537#endif /* __HEXAGON_ARCH___ >= 60 */
538
539#if __HVX_ARCH__ >= 60
540/* ==========================================================================
541 Assembly Syntax: Vd32=valign(Vu32,Vv32,#u3)
542 C Intrinsic Prototype: HVX_Vector Q6_V_valign_VVI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
543 Instruction Type: CVI_VP
544 Execution Slots: SLOT0123
545 ========================================================================== */
546
547#define Q6_V_valign_VVI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_valignbi)(Vu,Vv,Iu3)
548#endif /* __HEXAGON_ARCH___ >= 60 */
549
550#if __HVX_ARCH__ >= 60
551/* ==========================================================================
552 Assembly Syntax: Vd32=vand(Vu32,Vv32)
553 C Intrinsic Prototype: HVX_Vector Q6_V_vand_VV(HVX_Vector Vu, HVX_Vector Vv)
554 Instruction Type: CVI_VA
555 Execution Slots: SLOT0123
556 ========================================================================== */
557
558#define Q6_V_vand_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vand)(Vu,Vv)
559#endif /* __HEXAGON_ARCH___ >= 60 */
560
561#if __HVX_ARCH__ >= 60
562/* ==========================================================================
563 Assembly Syntax: Vd32=vand(Qu4,Rt32)
564 C Intrinsic Prototype: HVX_Vector Q6_V_vand_QR(HVX_VectorPred Qu, Word32 Rt)
565 Instruction Type: CVI_VX_LATE
566 Execution Slots: SLOT23
567 ========================================================================== */
568
569#define Q6_V_vand_QR(Qu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qu),-1),Rt)
570#endif /* __HEXAGON_ARCH___ >= 60 */
571
572#if __HVX_ARCH__ >= 60
573/* ==========================================================================
574 Assembly Syntax: Vx32|=vand(Qu4,Rt32)
575 C Intrinsic Prototype: HVX_Vector Q6_V_vandor_VQR(HVX_Vector Vx, HVX_VectorPred Qu, Word32 Rt)
576 Instruction Type: CVI_VX_LATE
577 Execution Slots: SLOT23
578 ========================================================================== */
579
580#define Q6_V_vandor_VQR(Vx,Qu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt_acc)(Vx,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qu),-1),Rt)
581#endif /* __HEXAGON_ARCH___ >= 60 */
582
583#if __HVX_ARCH__ >= 60
584/* ==========================================================================
585 Assembly Syntax: Qd4=vand(Vu32,Rt32)
586 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vand_VR(HVX_Vector Vu, Word32 Rt)
587 Instruction Type: CVI_VX_LATE
588 Execution Slots: SLOT23
589 ========================================================================== */
590
591#define Q6_Q_vand_VR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)(Vu,Rt)),-1)
592#endif /* __HEXAGON_ARCH___ >= 60 */
593
594#if __HVX_ARCH__ >= 60
595/* ==========================================================================
596 Assembly Syntax: Qx4|=vand(Vu32,Rt32)
597 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vandor_QVR(HVX_VectorPred Qx, HVX_Vector Vu, Word32 Rt)
598 Instruction Type: CVI_VX_LATE
599 Execution Slots: SLOT23
600 ========================================================================== */
601
602#define Q6_Q_vandor_QVR(Qx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt_acc)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Rt)),-1)
603#endif /* __HEXAGON_ARCH___ >= 60 */
604
605#if __HVX_ARCH__ >= 60
606/* ==========================================================================
607 Assembly Syntax: Vd32.h=vasl(Vu32.h,Rt32)
608 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasl_VhR(HVX_Vector Vu, Word32 Rt)
609 Instruction Type: CVI_VS
610 Execution Slots: SLOT0123
611 ========================================================================== */
612
613#define Q6_Vh_vasl_VhR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslh)(Vu,Rt)
614#endif /* __HEXAGON_ARCH___ >= 60 */
615
616#if __HVX_ARCH__ >= 60
617/* ==========================================================================
618 Assembly Syntax: Vd32.h=vasl(Vu32.h,Vv32.h)
619 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasl_VhVh(HVX_Vector Vu, HVX_Vector Vv)
620 Instruction Type: CVI_VS
621 Execution Slots: SLOT0123
622 ========================================================================== */
623
624#define Q6_Vh_vasl_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslhv)(Vu,Vv)
625#endif /* __HEXAGON_ARCH___ >= 60 */
626
627#if __HVX_ARCH__ >= 60
628/* ==========================================================================
629 Assembly Syntax: Vd32.w=vasl(Vu32.w,Rt32)
630 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasl_VwR(HVX_Vector Vu, Word32 Rt)
631 Instruction Type: CVI_VS
632 Execution Slots: SLOT0123
633 ========================================================================== */
634
635#define Q6_Vw_vasl_VwR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslw)(Vu,Rt)
636#endif /* __HEXAGON_ARCH___ >= 60 */
637
638#if __HVX_ARCH__ >= 60
639/* ==========================================================================
640 Assembly Syntax: Vx32.w+=vasl(Vu32.w,Rt32)
641 C Intrinsic Prototype: HVX_Vector Q6_Vw_vaslacc_VwVwR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
642 Instruction Type: CVI_VS
643 Execution Slots: SLOT0123
644 ========================================================================== */
645
646#define Q6_Vw_vaslacc_VwVwR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslw_acc)(Vx,Vu,Rt)
647#endif /* __HEXAGON_ARCH___ >= 60 */
648
649#if __HVX_ARCH__ >= 60
650/* ==========================================================================
651 Assembly Syntax: Vd32.w=vasl(Vu32.w,Vv32.w)
652 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasl_VwVw(HVX_Vector Vu, HVX_Vector Vv)
653 Instruction Type: CVI_VS
654 Execution Slots: SLOT0123
655 ========================================================================== */
656
657#define Q6_Vw_vasl_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslwv)(Vu,Vv)
658#endif /* __HEXAGON_ARCH___ >= 60 */
659
660#if __HVX_ARCH__ >= 60
661/* ==========================================================================
662 Assembly Syntax: Vd32.h=vasr(Vu32.h,Rt32)
663 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VhR(HVX_Vector Vu, Word32 Rt)
664 Instruction Type: CVI_VS
665 Execution Slots: SLOT0123
666 ========================================================================== */
667
668#define Q6_Vh_vasr_VhR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrh)(Vu,Rt)
669#endif /* __HEXAGON_ARCH___ >= 60 */
670
671#if __HVX_ARCH__ >= 60
672/* ==========================================================================
673 Assembly Syntax: Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat
674 C Intrinsic Prototype: HVX_Vector Q6_Vb_vasr_VhVhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
675 Instruction Type: CVI_VS
676 Execution Slots: SLOT0123
677 ========================================================================== */
678
679#define Q6_Vb_vasr_VhVhR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhbrndsat)(Vu,Vv,Rt)
680#endif /* __HEXAGON_ARCH___ >= 60 */
681
682#if __HVX_ARCH__ >= 60
683/* ==========================================================================
684 Assembly Syntax: Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat
685 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VhVhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
686 Instruction Type: CVI_VS
687 Execution Slots: SLOT0123
688 ========================================================================== */
689
690#define Q6_Vub_vasr_VhVhR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhubrndsat)(Vu,Vv,Rt)
691#endif /* __HEXAGON_ARCH___ >= 60 */
692
693#if __HVX_ARCH__ >= 60
694/* ==========================================================================
695 Assembly Syntax: Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):sat
696 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VhVhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
697 Instruction Type: CVI_VS
698 Execution Slots: SLOT0123
699 ========================================================================== */
700
701#define Q6_Vub_vasr_VhVhR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhubsat)(Vu,Vv,Rt)
702#endif /* __HEXAGON_ARCH___ >= 60 */
703
704#if __HVX_ARCH__ >= 60
705/* ==========================================================================
706 Assembly Syntax: Vd32.h=vasr(Vu32.h,Vv32.h)
707 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VhVh(HVX_Vector Vu, HVX_Vector Vv)
708 Instruction Type: CVI_VS
709 Execution Slots: SLOT0123
710 ========================================================================== */
711
712#define Q6_Vh_vasr_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhv)(Vu,Vv)
713#endif /* __HEXAGON_ARCH___ >= 60 */
714
715#if __HVX_ARCH__ >= 60
716/* ==========================================================================
717 Assembly Syntax: Vd32.w=vasr(Vu32.w,Rt32)
718 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasr_VwR(HVX_Vector Vu, Word32 Rt)
719 Instruction Type: CVI_VS
720 Execution Slots: SLOT0123
721 ========================================================================== */
722
723#define Q6_Vw_vasr_VwR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrw)(Vu,Rt)
724#endif /* __HEXAGON_ARCH___ >= 60 */
725
726#if __HVX_ARCH__ >= 60
727/* ==========================================================================
728 Assembly Syntax: Vx32.w+=vasr(Vu32.w,Rt32)
729 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasracc_VwVwR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
730 Instruction Type: CVI_VS
731 Execution Slots: SLOT0123
732 ========================================================================== */
733
734#define Q6_Vw_vasracc_VwVwR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrw_acc)(Vx,Vu,Rt)
735#endif /* __HEXAGON_ARCH___ >= 60 */
736
737#if __HVX_ARCH__ >= 60
738/* ==========================================================================
739 Assembly Syntax: Vd32.h=vasr(Vu32.w,Vv32.w,Rt8)
740 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
741 Instruction Type: CVI_VS
742 Execution Slots: SLOT0123
743 ========================================================================== */
744
745#define Q6_Vh_vasr_VwVwR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwh)(Vu,Vv,Rt)
746#endif /* __HEXAGON_ARCH___ >= 60 */
747
748#if __HVX_ARCH__ >= 60
749/* ==========================================================================
750 Assembly Syntax: Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
751 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
752 Instruction Type: CVI_VS
753 Execution Slots: SLOT0123
754 ========================================================================== */
755
756#define Q6_Vh_vasr_VwVwR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwhrndsat)(Vu,Vv,Rt)
757#endif /* __HEXAGON_ARCH___ >= 60 */
758
759#if __HVX_ARCH__ >= 60
760/* ==========================================================================
761 Assembly Syntax: Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):sat
762 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
763 Instruction Type: CVI_VS
764 Execution Slots: SLOT0123
765 ========================================================================== */
766
767#define Q6_Vh_vasr_VwVwR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwhsat)(Vu,Vv,Rt)
768#endif /* __HEXAGON_ARCH___ >= 60 */
769
770#if __HVX_ARCH__ >= 60
771/* ==========================================================================
772 Assembly Syntax: Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):sat
773 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VwVwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
774 Instruction Type: CVI_VS
775 Execution Slots: SLOT0123
776 ========================================================================== */
777
778#define Q6_Vuh_vasr_VwVwR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwuhsat)(Vu,Vv,Rt)
779#endif /* __HEXAGON_ARCH___ >= 60 */
780
781#if __HVX_ARCH__ >= 60
782/* ==========================================================================
783 Assembly Syntax: Vd32.w=vasr(Vu32.w,Vv32.w)
784 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasr_VwVw(HVX_Vector Vu, HVX_Vector Vv)
785 Instruction Type: CVI_VS
786 Execution Slots: SLOT0123
787 ========================================================================== */
788
789#define Q6_Vw_vasr_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwv)(Vu,Vv)
790#endif /* __HEXAGON_ARCH___ >= 60 */
791
792#if __HVX_ARCH__ >= 60
793/* ==========================================================================
794 Assembly Syntax: Vd32=Vu32
795 C Intrinsic Prototype: HVX_Vector Q6_V_equals_V(HVX_Vector Vu)
796 Instruction Type: CVI_VA
797 Execution Slots: SLOT0123
798 ========================================================================== */
799
800#define Q6_V_equals_V(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassign)(Vu)
801#endif /* __HEXAGON_ARCH___ >= 60 */
802
803#if __HVX_ARCH__ >= 60
804/* ==========================================================================
805 Assembly Syntax: Vdd32=Vuu32
806 C Intrinsic Prototype: HVX_VectorPair Q6_W_equals_W(HVX_VectorPair Vuu)
807 Instruction Type: CVI_VA_DV
808 Execution Slots: SLOT0123
809 ========================================================================== */
810
811#define Q6_W_equals_W(Vuu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassignp)(Vuu)
812#endif /* __HEXAGON_ARCH___ >= 60 */
813
814#if __HVX_ARCH__ >= 60
815/* ==========================================================================
816 Assembly Syntax: Vd32.h=vavg(Vu32.h,Vv32.h)
817 C Intrinsic Prototype: HVX_Vector Q6_Vh_vavg_VhVh(HVX_Vector Vu, HVX_Vector Vv)
818 Instruction Type: CVI_VA
819 Execution Slots: SLOT0123
820 ========================================================================== */
821
822#define Q6_Vh_vavg_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgh)(Vu,Vv)
823#endif /* __HEXAGON_ARCH___ >= 60 */
824
825#if __HVX_ARCH__ >= 60
826/* ==========================================================================
827 Assembly Syntax: Vd32.h=vavg(Vu32.h,Vv32.h):rnd
828 C Intrinsic Prototype: HVX_Vector Q6_Vh_vavg_VhVh_rnd(HVX_Vector Vu, HVX_Vector Vv)
829 Instruction Type: CVI_VA
830 Execution Slots: SLOT0123
831 ========================================================================== */
832
833#define Q6_Vh_vavg_VhVh_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavghrnd)(Vu,Vv)
834#endif /* __HEXAGON_ARCH___ >= 60 */
835
836#if __HVX_ARCH__ >= 60
837/* ==========================================================================
838 Assembly Syntax: Vd32.ub=vavg(Vu32.ub,Vv32.ub)
839 C Intrinsic Prototype: HVX_Vector Q6_Vub_vavg_VubVub(HVX_Vector Vu, HVX_Vector Vv)
840 Instruction Type: CVI_VA
841 Execution Slots: SLOT0123
842 ========================================================================== */
843
844#define Q6_Vub_vavg_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgub)(Vu,Vv)
845#endif /* __HEXAGON_ARCH___ >= 60 */
846
847#if __HVX_ARCH__ >= 60
848/* ==========================================================================
849 Assembly Syntax: Vd32.ub=vavg(Vu32.ub,Vv32.ub):rnd
850 C Intrinsic Prototype: HVX_Vector Q6_Vub_vavg_VubVub_rnd(HVX_Vector Vu, HVX_Vector Vv)
851 Instruction Type: CVI_VA
852 Execution Slots: SLOT0123
853 ========================================================================== */
854
855#define Q6_Vub_vavg_VubVub_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgubrnd)(Vu,Vv)
856#endif /* __HEXAGON_ARCH___ >= 60 */
857
858#if __HVX_ARCH__ >= 60
859/* ==========================================================================
860 Assembly Syntax: Vd32.uh=vavg(Vu32.uh,Vv32.uh)
861 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vavg_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
862 Instruction Type: CVI_VA
863 Execution Slots: SLOT0123
864 ========================================================================== */
865
866#define Q6_Vuh_vavg_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguh)(Vu,Vv)
867#endif /* __HEXAGON_ARCH___ >= 60 */
868
869#if __HVX_ARCH__ >= 60
870/* ==========================================================================
871 Assembly Syntax: Vd32.uh=vavg(Vu32.uh,Vv32.uh):rnd
872 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vavg_VuhVuh_rnd(HVX_Vector Vu, HVX_Vector Vv)
873 Instruction Type: CVI_VA
874 Execution Slots: SLOT0123
875 ========================================================================== */
876
877#define Q6_Vuh_vavg_VuhVuh_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguhrnd)(Vu,Vv)
878#endif /* __HEXAGON_ARCH___ >= 60 */
879
880#if __HVX_ARCH__ >= 60
881/* ==========================================================================
882 Assembly Syntax: Vd32.w=vavg(Vu32.w,Vv32.w)
883 C Intrinsic Prototype: HVX_Vector Q6_Vw_vavg_VwVw(HVX_Vector Vu, HVX_Vector Vv)
884 Instruction Type: CVI_VA
885 Execution Slots: SLOT0123
886 ========================================================================== */
887
888#define Q6_Vw_vavg_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgw)(Vu,Vv)
889#endif /* __HEXAGON_ARCH___ >= 60 */
890
891#if __HVX_ARCH__ >= 60
892/* ==========================================================================
893 Assembly Syntax: Vd32.w=vavg(Vu32.w,Vv32.w):rnd
894 C Intrinsic Prototype: HVX_Vector Q6_Vw_vavg_VwVw_rnd(HVX_Vector Vu, HVX_Vector Vv)
895 Instruction Type: CVI_VA
896 Execution Slots: SLOT0123
897 ========================================================================== */
898
899#define Q6_Vw_vavg_VwVw_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgwrnd)(Vu,Vv)
900#endif /* __HEXAGON_ARCH___ >= 60 */
901
902#if __HVX_ARCH__ >= 60
903/* ==========================================================================
904 Assembly Syntax: Vd32.uh=vcl0(Vu32.uh)
905 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vcl0_Vuh(HVX_Vector Vu)
906 Instruction Type: CVI_VS
907 Execution Slots: SLOT0123
908 ========================================================================== */
909
910#define Q6_Vuh_vcl0_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcl0h)(Vu)
911#endif /* __HEXAGON_ARCH___ >= 60 */
912
913#if __HVX_ARCH__ >= 60
914/* ==========================================================================
915 Assembly Syntax: Vd32.uw=vcl0(Vu32.uw)
916 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vcl0_Vuw(HVX_Vector Vu)
917 Instruction Type: CVI_VS
918 Execution Slots: SLOT0123
919 ========================================================================== */
920
921#define Q6_Vuw_vcl0_Vuw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcl0w)(Vu)
922#endif /* __HEXAGON_ARCH___ >= 60 */
923
924#if __HVX_ARCH__ >= 60
925/* ==========================================================================
926 Assembly Syntax: Vdd32=vcombine(Vu32,Vv32)
927 C Intrinsic Prototype: HVX_VectorPair Q6_W_vcombine_VV(HVX_Vector Vu, HVX_Vector Vv)
928 Instruction Type: CVI_VA_DV
929 Execution Slots: SLOT0123
930 ========================================================================== */
931
932#define Q6_W_vcombine_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcombine)(Vu,Vv)
933#endif /* __HEXAGON_ARCH___ >= 60 */
934
935#if __HVX_ARCH__ >= 60
936/* ==========================================================================
937 Assembly Syntax: Vd32=#0
938 C Intrinsic Prototype: HVX_Vector Q6_V_vzero()
939 Instruction Type: CVI_VA
940 Execution Slots: SLOT0123
941 ========================================================================== */
942
943#define Q6_V_vzero() __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vd0)()
944#endif /* __HEXAGON_ARCH___ >= 60 */
945
946#if __HVX_ARCH__ >= 60
947/* ==========================================================================
948 Assembly Syntax: Vd32.b=vdeal(Vu32.b)
949 C Intrinsic Prototype: HVX_Vector Q6_Vb_vdeal_Vb(HVX_Vector Vu)
950 Instruction Type: CVI_VP
951 Execution Slots: SLOT0123
952 ========================================================================== */
953
954#define Q6_Vb_vdeal_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealb)(Vu)
955#endif /* __HEXAGON_ARCH___ >= 60 */
956
957#if __HVX_ARCH__ >= 60
958/* ==========================================================================
959 Assembly Syntax: Vd32.b=vdeale(Vu32.b,Vv32.b)
960 C Intrinsic Prototype: HVX_Vector Q6_Vb_vdeale_VbVb(HVX_Vector Vu, HVX_Vector Vv)
961 Instruction Type: CVI_VP
962 Execution Slots: SLOT0123
963 ========================================================================== */
964
965#define Q6_Vb_vdeale_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealb4w)(Vu,Vv)
966#endif /* __HEXAGON_ARCH___ >= 60 */
967
968#if __HVX_ARCH__ >= 60
969/* ==========================================================================
970 Assembly Syntax: Vd32.h=vdeal(Vu32.h)
971 C Intrinsic Prototype: HVX_Vector Q6_Vh_vdeal_Vh(HVX_Vector Vu)
972 Instruction Type: CVI_VP
973 Execution Slots: SLOT0123
974 ========================================================================== */
975
976#define Q6_Vh_vdeal_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealh)(Vu)
977#endif /* __HEXAGON_ARCH___ >= 60 */
978
979#if __HVX_ARCH__ >= 60
980/* ==========================================================================
981 Assembly Syntax: Vdd32=vdeal(Vu32,Vv32,Rt8)
982 C Intrinsic Prototype: HVX_VectorPair Q6_W_vdeal_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
983 Instruction Type: CVI_VP_VS
984 Execution Slots: SLOT0123
985 ========================================================================== */
986
987#define Q6_W_vdeal_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealvdd)(Vu,Vv,Rt)
988#endif /* __HEXAGON_ARCH___ >= 60 */
989
990#if __HVX_ARCH__ >= 60
991/* ==========================================================================
992 Assembly Syntax: Vd32=vdelta(Vu32,Vv32)
993 C Intrinsic Prototype: HVX_Vector Q6_V_vdelta_VV(HVX_Vector Vu, HVX_Vector Vv)
994 Instruction Type: CVI_VP
995 Execution Slots: SLOT0123
996 ========================================================================== */
997
998#define Q6_V_vdelta_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdelta)(Vu,Vv)
999#endif /* __HEXAGON_ARCH___ >= 60 */
1000
1001#if __HVX_ARCH__ >= 60
1002/* ==========================================================================
1003 Assembly Syntax: Vd32.h=vdmpy(Vu32.ub,Rt32.b)
1004 C Intrinsic Prototype: HVX_Vector Q6_Vh_vdmpy_VubRb(HVX_Vector Vu, Word32 Rt)
1005 Instruction Type: CVI_VX
1006 Execution Slots: SLOT23
1007 ========================================================================== */
1008
1009#define Q6_Vh_vdmpy_VubRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus)(Vu,Rt)
1010#endif /* __HEXAGON_ARCH___ >= 60 */
1011
1012#if __HVX_ARCH__ >= 60
1013/* ==========================================================================
1014 Assembly Syntax: Vx32.h+=vdmpy(Vu32.ub,Rt32.b)
1015 C Intrinsic Prototype: HVX_Vector Q6_Vh_vdmpyacc_VhVubRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1016 Instruction Type: CVI_VX
1017 Execution Slots: SLOT23
1018 ========================================================================== */
1019
1020#define Q6_Vh_vdmpyacc_VhVubRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_acc)(Vx,Vu,Rt)
1021#endif /* __HEXAGON_ARCH___ >= 60 */
1022
1023#if __HVX_ARCH__ >= 60
1024/* ==========================================================================
1025 Assembly Syntax: Vdd32.h=vdmpy(Vuu32.ub,Rt32.b)
1026 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vdmpy_WubRb(HVX_VectorPair Vuu, Word32 Rt)
1027 Instruction Type: CVI_VX_DV
1028 Execution Slots: SLOT23
1029 ========================================================================== */
1030
1031#define Q6_Wh_vdmpy_WubRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_dv)(Vuu,Rt)
1032#endif /* __HEXAGON_ARCH___ >= 60 */
1033
1034#if __HVX_ARCH__ >= 60
1035/* ==========================================================================
1036 Assembly Syntax: Vxx32.h+=vdmpy(Vuu32.ub,Rt32.b)
1037 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vdmpyacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1038 Instruction Type: CVI_VX_DV
1039 Execution Slots: SLOT23
1040 ========================================================================== */
1041
1042#define Q6_Wh_vdmpyacc_WhWubRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_dv_acc)(Vxx,Vuu,Rt)
1043#endif /* __HEXAGON_ARCH___ >= 60 */
1044
1045#if __HVX_ARCH__ >= 60
1046/* ==========================================================================
1047 Assembly Syntax: Vd32.w=vdmpy(Vu32.h,Rt32.b)
1048 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRb(HVX_Vector Vu, Word32 Rt)
1049 Instruction Type: CVI_VX
1050 Execution Slots: SLOT23
1051 ========================================================================== */
1052
1053#define Q6_Vw_vdmpy_VhRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb)(Vu,Rt)
1054#endif /* __HEXAGON_ARCH___ >= 60 */
1055
1056#if __HVX_ARCH__ >= 60
1057/* ==========================================================================
1058 Assembly Syntax: Vx32.w+=vdmpy(Vu32.h,Rt32.b)
1059 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1060 Instruction Type: CVI_VX
1061 Execution Slots: SLOT23
1062 ========================================================================== */
1063
1064#define Q6_Vw_vdmpyacc_VwVhRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_acc)(Vx,Vu,Rt)
1065#endif /* __HEXAGON_ARCH___ >= 60 */
1066
1067#if __HVX_ARCH__ >= 60
1068/* ==========================================================================
1069 Assembly Syntax: Vdd32.w=vdmpy(Vuu32.h,Rt32.b)
1070 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vdmpy_WhRb(HVX_VectorPair Vuu, Word32 Rt)
1071 Instruction Type: CVI_VX_DV
1072 Execution Slots: SLOT23
1073 ========================================================================== */
1074
1075#define Q6_Ww_vdmpy_WhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_dv)(Vuu,Rt)
1076#endif /* __HEXAGON_ARCH___ >= 60 */
1077
1078#if __HVX_ARCH__ >= 60
1079/* ==========================================================================
1080 Assembly Syntax: Vxx32.w+=vdmpy(Vuu32.h,Rt32.b)
1081 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vdmpyacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1082 Instruction Type: CVI_VX_DV
1083 Execution Slots: SLOT23
1084 ========================================================================== */
1085
1086#define Q6_Ww_vdmpyacc_WwWhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_dv_acc)(Vxx,Vuu,Rt)
1087#endif /* __HEXAGON_ARCH___ >= 60 */
1088
1089#if __HVX_ARCH__ >= 60
1090/* ==========================================================================
1091 Assembly Syntax: Vd32.w=vdmpy(Vuu32.h,Rt32.h):sat
1092 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_WhRh_sat(HVX_VectorPair Vuu, Word32 Rt)
1093 Instruction Type: CVI_VX_DV
1094 Execution Slots: SLOT23
1095 ========================================================================== */
1096
1097#define Q6_Vw_vdmpy_WhRh_sat(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhisat)(Vuu,Rt)
1098#endif /* __HEXAGON_ARCH___ >= 60 */
1099
1100#if __HVX_ARCH__ >= 60
1101/* ==========================================================================
1102 Assembly Syntax: Vx32.w+=vdmpy(Vuu32.h,Rt32.h):sat
1103 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwWhRh_sat(HVX_Vector Vx, HVX_VectorPair Vuu, Word32 Rt)
1104 Instruction Type: CVI_VX_DV
1105 Execution Slots: SLOT23
1106 ========================================================================== */
1107
1108#define Q6_Vw_vdmpyacc_VwWhRh_sat(Vx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhisat_acc)(Vx,Vuu,Rt)
1109#endif /* __HEXAGON_ARCH___ >= 60 */
1110
1111#if __HVX_ARCH__ >= 60
1112/* ==========================================================================
1113 Assembly Syntax: Vd32.w=vdmpy(Vu32.h,Rt32.h):sat
1114 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRh_sat(HVX_Vector Vu, Word32 Rt)
1115 Instruction Type: CVI_VX
1116 Execution Slots: SLOT23
1117 ========================================================================== */
1118
1119#define Q6_Vw_vdmpy_VhRh_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsat)(Vu,Rt)
1120#endif /* __HEXAGON_ARCH___ >= 60 */
1121
1122#if __HVX_ARCH__ >= 60
1123/* ==========================================================================
1124 Assembly Syntax: Vx32.w+=vdmpy(Vu32.h,Rt32.h):sat
1125 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRh_sat(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1126 Instruction Type: CVI_VX
1127 Execution Slots: SLOT23
1128 ========================================================================== */
1129
1130#define Q6_Vw_vdmpyacc_VwVhRh_sat(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsat_acc)(Vx,Vu,Rt)
1131#endif /* __HEXAGON_ARCH___ >= 60 */
1132
1133#if __HVX_ARCH__ >= 60
1134/* ==========================================================================
1135 Assembly Syntax: Vd32.w=vdmpy(Vuu32.h,Rt32.uh,#1):sat
1136 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_WhRuh_sat(HVX_VectorPair Vuu, Word32 Rt)
1137 Instruction Type: CVI_VX_DV
1138 Execution Slots: SLOT23
1139 ========================================================================== */
1140
1141#define Q6_Vw_vdmpy_WhRuh_sat(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsuisat)(Vuu,Rt)
1142#endif /* __HEXAGON_ARCH___ >= 60 */
1143
1144#if __HVX_ARCH__ >= 60
1145/* ==========================================================================
1146 Assembly Syntax: Vx32.w+=vdmpy(Vuu32.h,Rt32.uh,#1):sat
1147 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwWhRuh_sat(HVX_Vector Vx, HVX_VectorPair Vuu, Word32 Rt)
1148 Instruction Type: CVI_VX_DV
1149 Execution Slots: SLOT23
1150 ========================================================================== */
1151
1152#define Q6_Vw_vdmpyacc_VwWhRuh_sat(Vx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsuisat_acc)(Vx,Vuu,Rt)
1153#endif /* __HEXAGON_ARCH___ >= 60 */
1154
1155#if __HVX_ARCH__ >= 60
1156/* ==========================================================================
1157 Assembly Syntax: Vd32.w=vdmpy(Vu32.h,Rt32.uh):sat
1158 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRuh_sat(HVX_Vector Vu, Word32 Rt)
1159 Instruction Type: CVI_VX
1160 Execution Slots: SLOT23
1161 ========================================================================== */
1162
1163#define Q6_Vw_vdmpy_VhRuh_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsusat)(Vu,Rt)
1164#endif /* __HEXAGON_ARCH___ >= 60 */
1165
1166#if __HVX_ARCH__ >= 60
1167/* ==========================================================================
1168 Assembly Syntax: Vx32.w+=vdmpy(Vu32.h,Rt32.uh):sat
1169 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1170 Instruction Type: CVI_VX
1171 Execution Slots: SLOT23
1172 ========================================================================== */
1173
1174#define Q6_Vw_vdmpyacc_VwVhRuh_sat(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsusat_acc)(Vx,Vu,Rt)
1175#endif /* __HEXAGON_ARCH___ >= 60 */
1176
1177#if __HVX_ARCH__ >= 60
1178/* ==========================================================================
1179 Assembly Syntax: Vd32.w=vdmpy(Vu32.h,Vv32.h):sat
1180 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
1181 Instruction Type: CVI_VX
1182 Execution Slots: SLOT23
1183 ========================================================================== */
1184
1185#define Q6_Vw_vdmpy_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhvsat)(Vu,Vv)
1186#endif /* __HEXAGON_ARCH___ >= 60 */
1187
1188#if __HVX_ARCH__ >= 60
1189/* ==========================================================================
1190 Assembly Syntax: Vx32.w+=vdmpy(Vu32.h,Vv32.h):sat
1191 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhVh_sat(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
1192 Instruction Type: CVI_VX_DV
1193 Execution Slots: SLOT23
1194 ========================================================================== */
1195
1196#define Q6_Vw_vdmpyacc_VwVhVh_sat(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhvsat_acc)(Vx,Vu,Vv)
1197#endif /* __HEXAGON_ARCH___ >= 60 */
1198
1199#if __HVX_ARCH__ >= 60
1200/* ==========================================================================
1201 Assembly Syntax: Vdd32.uw=vdsad(Vuu32.uh,Rt32.uh)
1202 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vdsad_WuhRuh(HVX_VectorPair Vuu, Word32 Rt)
1203 Instruction Type: CVI_VX_DV
1204 Execution Slots: SLOT23
1205 ========================================================================== */
1206
1207#define Q6_Wuw_vdsad_WuhRuh(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdsaduh)(Vuu,Rt)
1208#endif /* __HEXAGON_ARCH___ >= 60 */
1209
1210#if __HVX_ARCH__ >= 60
1211/* ==========================================================================
1212 Assembly Syntax: Vxx32.uw+=vdsad(Vuu32.uh,Rt32.uh)
1213 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vdsadacc_WuwWuhRuh(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1214 Instruction Type: CVI_VX_DV
1215 Execution Slots: SLOT23
1216 ========================================================================== */
1217
1218#define Q6_Wuw_vdsadacc_WuwWuhRuh(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdsaduh_acc)(Vxx,Vuu,Rt)
1219#endif /* __HEXAGON_ARCH___ >= 60 */
1220
1221#if __HVX_ARCH__ >= 60
1222/* ==========================================================================
1223 Assembly Syntax: Qd4=vcmp.eq(Vu32.b,Vv32.b)
1224 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1225 Instruction Type: CVI_VA
1226 Execution Slots: SLOT0123
1227 ========================================================================== */
1228
1229#define Q6_Q_vcmp_eq_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb)(Vu,Vv)),-1)
1230#endif /* __HEXAGON_ARCH___ >= 60 */
1231
1232#if __HVX_ARCH__ >= 60
1233/* ==========================================================================
1234 Assembly Syntax: Qx4&=vcmp.eq(Vu32.b,Vv32.b)
1235 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1236 Instruction Type: CVI_VA
1237 Execution Slots: SLOT0123
1238 ========================================================================== */
1239
1240#define Q6_Q_vcmp_eqand_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1241#endif /* __HEXAGON_ARCH___ >= 60 */
1242
1243#if __HVX_ARCH__ >= 60
1244/* ==========================================================================
1245 Assembly Syntax: Qx4|=vcmp.eq(Vu32.b,Vv32.b)
1246 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1247 Instruction Type: CVI_VA
1248 Execution Slots: SLOT0123
1249 ========================================================================== */
1250
1251#define Q6_Q_vcmp_eqor_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1252#endif /* __HEXAGON_ARCH___ >= 60 */
1253
1254#if __HVX_ARCH__ >= 60
1255/* ==========================================================================
1256 Assembly Syntax: Qx4^=vcmp.eq(Vu32.b,Vv32.b)
1257 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1258 Instruction Type: CVI_VA
1259 Execution Slots: SLOT0123
1260 ========================================================================== */
1261
1262#define Q6_Q_vcmp_eqxacc_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1263#endif /* __HEXAGON_ARCH___ >= 60 */
1264
1265#if __HVX_ARCH__ >= 60
1266/* ==========================================================================
1267 Assembly Syntax: Qd4=vcmp.eq(Vu32.h,Vv32.h)
1268 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1269 Instruction Type: CVI_VA
1270 Execution Slots: SLOT0123
1271 ========================================================================== */
1272
1273#define Q6_Q_vcmp_eq_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh)(Vu,Vv)),-1)
1274#endif /* __HEXAGON_ARCH___ >= 60 */
1275
1276#if __HVX_ARCH__ >= 60
1277/* ==========================================================================
1278 Assembly Syntax: Qx4&=vcmp.eq(Vu32.h,Vv32.h)
1279 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1280 Instruction Type: CVI_VA
1281 Execution Slots: SLOT0123
1282 ========================================================================== */
1283
1284#define Q6_Q_vcmp_eqand_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1285#endif /* __HEXAGON_ARCH___ >= 60 */
1286
1287#if __HVX_ARCH__ >= 60
1288/* ==========================================================================
1289 Assembly Syntax: Qx4|=vcmp.eq(Vu32.h,Vv32.h)
1290 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1291 Instruction Type: CVI_VA
1292 Execution Slots: SLOT0123
1293 ========================================================================== */
1294
1295#define Q6_Q_vcmp_eqor_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1296#endif /* __HEXAGON_ARCH___ >= 60 */
1297
1298#if __HVX_ARCH__ >= 60
1299/* ==========================================================================
1300 Assembly Syntax: Qx4^=vcmp.eq(Vu32.h,Vv32.h)
1301 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1302 Instruction Type: CVI_VA
1303 Execution Slots: SLOT0123
1304 ========================================================================== */
1305
1306#define Q6_Q_vcmp_eqxacc_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1307#endif /* __HEXAGON_ARCH___ >= 60 */
1308
1309#if __HVX_ARCH__ >= 60
1310/* ==========================================================================
1311 Assembly Syntax: Qd4=vcmp.eq(Vu32.w,Vv32.w)
1312 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1313 Instruction Type: CVI_VA
1314 Execution Slots: SLOT0123
1315 ========================================================================== */
1316
1317#define Q6_Q_vcmp_eq_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw)(Vu,Vv)),-1)
1318#endif /* __HEXAGON_ARCH___ >= 60 */
1319
1320#if __HVX_ARCH__ >= 60
1321/* ==========================================================================
1322 Assembly Syntax: Qx4&=vcmp.eq(Vu32.w,Vv32.w)
1323 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1324 Instruction Type: CVI_VA
1325 Execution Slots: SLOT0123
1326 ========================================================================== */
1327
1328#define Q6_Q_vcmp_eqand_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1329#endif /* __HEXAGON_ARCH___ >= 60 */
1330
1331#if __HVX_ARCH__ >= 60
1332/* ==========================================================================
1333 Assembly Syntax: Qx4|=vcmp.eq(Vu32.w,Vv32.w)
1334 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1335 Instruction Type: CVI_VA
1336 Execution Slots: SLOT0123
1337 ========================================================================== */
1338
1339#define Q6_Q_vcmp_eqor_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1340#endif /* __HEXAGON_ARCH___ >= 60 */
1341
1342#if __HVX_ARCH__ >= 60
1343/* ==========================================================================
1344 Assembly Syntax: Qx4^=vcmp.eq(Vu32.w,Vv32.w)
1345 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1346 Instruction Type: CVI_VA
1347 Execution Slots: SLOT0123
1348 ========================================================================== */
1349
1350#define Q6_Q_vcmp_eqxacc_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1351#endif /* __HEXAGON_ARCH___ >= 60 */
1352
1353#if __HVX_ARCH__ >= 60
1354/* ==========================================================================
1355 Assembly Syntax: Qd4=vcmp.gt(Vu32.b,Vv32.b)
1356 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1357 Instruction Type: CVI_VA
1358 Execution Slots: SLOT0123
1359 ========================================================================== */
1360
1361#define Q6_Q_vcmp_gt_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb)(Vu,Vv)),-1)
1362#endif /* __HEXAGON_ARCH___ >= 60 */
1363
1364#if __HVX_ARCH__ >= 60
1365/* ==========================================================================
1366 Assembly Syntax: Qx4&=vcmp.gt(Vu32.b,Vv32.b)
1367 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1368 Instruction Type: CVI_VA
1369 Execution Slots: SLOT0123
1370 ========================================================================== */
1371
1372#define Q6_Q_vcmp_gtand_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1373#endif /* __HEXAGON_ARCH___ >= 60 */
1374
1375#if __HVX_ARCH__ >= 60
1376/* ==========================================================================
1377 Assembly Syntax: Qx4|=vcmp.gt(Vu32.b,Vv32.b)
1378 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1379 Instruction Type: CVI_VA
1380 Execution Slots: SLOT0123
1381 ========================================================================== */
1382
1383#define Q6_Q_vcmp_gtor_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1384#endif /* __HEXAGON_ARCH___ >= 60 */
1385
1386#if __HVX_ARCH__ >= 60
1387/* ==========================================================================
1388 Assembly Syntax: Qx4^=vcmp.gt(Vu32.b,Vv32.b)
1389 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1390 Instruction Type: CVI_VA
1391 Execution Slots: SLOT0123
1392 ========================================================================== */
1393
1394#define Q6_Q_vcmp_gtxacc_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1395#endif /* __HEXAGON_ARCH___ >= 60 */
1396
1397#if __HVX_ARCH__ >= 60
1398/* ==========================================================================
1399 Assembly Syntax: Qd4=vcmp.gt(Vu32.h,Vv32.h)
1400 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1401 Instruction Type: CVI_VA
1402 Execution Slots: SLOT0123
1403 ========================================================================== */
1404
1405#define Q6_Q_vcmp_gt_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth)(Vu,Vv)),-1)
1406#endif /* __HEXAGON_ARCH___ >= 60 */
1407
1408#if __HVX_ARCH__ >= 60
1409/* ==========================================================================
1410 Assembly Syntax: Qx4&=vcmp.gt(Vu32.h,Vv32.h)
1411 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1412 Instruction Type: CVI_VA
1413 Execution Slots: SLOT0123
1414 ========================================================================== */
1415
1416#define Q6_Q_vcmp_gtand_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1417#endif /* __HEXAGON_ARCH___ >= 60 */
1418
1419#if __HVX_ARCH__ >= 60
1420/* ==========================================================================
1421 Assembly Syntax: Qx4|=vcmp.gt(Vu32.h,Vv32.h)
1422 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1423 Instruction Type: CVI_VA
1424 Execution Slots: SLOT0123
1425 ========================================================================== */
1426
1427#define Q6_Q_vcmp_gtor_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1428#endif /* __HEXAGON_ARCH___ >= 60 */
1429
1430#if __HVX_ARCH__ >= 60
1431/* ==========================================================================
1432 Assembly Syntax: Qx4^=vcmp.gt(Vu32.h,Vv32.h)
1433 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1434 Instruction Type: CVI_VA
1435 Execution Slots: SLOT0123
1436 ========================================================================== */
1437
1438#define Q6_Q_vcmp_gtxacc_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1439#endif /* __HEXAGON_ARCH___ >= 60 */
1440
1441#if __HVX_ARCH__ >= 60
1442/* ==========================================================================
1443 Assembly Syntax: Qd4=vcmp.gt(Vu32.ub,Vv32.ub)
1444 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1445 Instruction Type: CVI_VA
1446 Execution Slots: SLOT0123
1447 ========================================================================== */
1448
1449#define Q6_Q_vcmp_gt_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub)(Vu,Vv)),-1)
1450#endif /* __HEXAGON_ARCH___ >= 60 */
1451
1452#if __HVX_ARCH__ >= 60
1453/* ==========================================================================
1454 Assembly Syntax: Qx4&=vcmp.gt(Vu32.ub,Vv32.ub)
1455 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1456 Instruction Type: CVI_VA
1457 Execution Slots: SLOT0123
1458 ========================================================================== */
1459
1460#define Q6_Q_vcmp_gtand_QVubVub(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1461#endif /* __HEXAGON_ARCH___ >= 60 */
1462
1463#if __HVX_ARCH__ >= 60
1464/* ==========================================================================
1465 Assembly Syntax: Qx4|=vcmp.gt(Vu32.ub,Vv32.ub)
1466 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1467 Instruction Type: CVI_VA
1468 Execution Slots: SLOT0123
1469 ========================================================================== */
1470
1471#define Q6_Q_vcmp_gtor_QVubVub(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1472#endif /* __HEXAGON_ARCH___ >= 60 */
1473
1474#if __HVX_ARCH__ >= 60
1475/* ==========================================================================
1476 Assembly Syntax: Qx4^=vcmp.gt(Vu32.ub,Vv32.ub)
1477 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1478 Instruction Type: CVI_VA
1479 Execution Slots: SLOT0123
1480 ========================================================================== */
1481
1482#define Q6_Q_vcmp_gtxacc_QVubVub(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1483#endif /* __HEXAGON_ARCH___ >= 60 */
1484
1485#if __HVX_ARCH__ >= 60
1486/* ==========================================================================
1487 Assembly Syntax: Qd4=vcmp.gt(Vu32.uh,Vv32.uh)
1488 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1489 Instruction Type: CVI_VA
1490 Execution Slots: SLOT0123
1491 ========================================================================== */
1492
1493#define Q6_Q_vcmp_gt_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh)(Vu,Vv)),-1)
1494#endif /* __HEXAGON_ARCH___ >= 60 */
1495
1496#if __HVX_ARCH__ >= 60
1497/* ==========================================================================
1498 Assembly Syntax: Qx4&=vcmp.gt(Vu32.uh,Vv32.uh)
1499 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1500 Instruction Type: CVI_VA
1501 Execution Slots: SLOT0123
1502 ========================================================================== */
1503
1504#define Q6_Q_vcmp_gtand_QVuhVuh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1505#endif /* __HEXAGON_ARCH___ >= 60 */
1506
1507#if __HVX_ARCH__ >= 60
1508/* ==========================================================================
1509 Assembly Syntax: Qx4|=vcmp.gt(Vu32.uh,Vv32.uh)
1510 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1511 Instruction Type: CVI_VA
1512 Execution Slots: SLOT0123
1513 ========================================================================== */
1514
1515#define Q6_Q_vcmp_gtor_QVuhVuh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1516#endif /* __HEXAGON_ARCH___ >= 60 */
1517
1518#if __HVX_ARCH__ >= 60
1519/* ==========================================================================
1520 Assembly Syntax: Qx4^=vcmp.gt(Vu32.uh,Vv32.uh)
1521 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1522 Instruction Type: CVI_VA
1523 Execution Slots: SLOT0123
1524 ========================================================================== */
1525
1526#define Q6_Q_vcmp_gtxacc_QVuhVuh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1527#endif /* __HEXAGON_ARCH___ >= 60 */
1528
1529#if __HVX_ARCH__ >= 60
1530/* ==========================================================================
1531 Assembly Syntax: Qd4=vcmp.gt(Vu32.uw,Vv32.uw)
1532 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
1533 Instruction Type: CVI_VA
1534 Execution Slots: SLOT0123
1535 ========================================================================== */
1536
1537#define Q6_Q_vcmp_gt_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw)(Vu,Vv)),-1)
1538#endif /* __HEXAGON_ARCH___ >= 60 */
1539
1540#if __HVX_ARCH__ >= 60
1541/* ==========================================================================
1542 Assembly Syntax: Qx4&=vcmp.gt(Vu32.uw,Vv32.uw)
1543 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1544 Instruction Type: CVI_VA
1545 Execution Slots: SLOT0123
1546 ========================================================================== */
1547
1548#define Q6_Q_vcmp_gtand_QVuwVuw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1549#endif /* __HEXAGON_ARCH___ >= 60 */
1550
1551#if __HVX_ARCH__ >= 60
1552/* ==========================================================================
1553 Assembly Syntax: Qx4|=vcmp.gt(Vu32.uw,Vv32.uw)
1554 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1555 Instruction Type: CVI_VA
1556 Execution Slots: SLOT0123
1557 ========================================================================== */
1558
1559#define Q6_Q_vcmp_gtor_QVuwVuw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1560#endif /* __HEXAGON_ARCH___ >= 60 */
1561
1562#if __HVX_ARCH__ >= 60
1563/* ==========================================================================
1564 Assembly Syntax: Qx4^=vcmp.gt(Vu32.uw,Vv32.uw)
1565 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1566 Instruction Type: CVI_VA
1567 Execution Slots: SLOT0123
1568 ========================================================================== */
1569
1570#define Q6_Q_vcmp_gtxacc_QVuwVuw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1571#endif /* __HEXAGON_ARCH___ >= 60 */
1572
1573#if __HVX_ARCH__ >= 60
1574/* ==========================================================================
1575 Assembly Syntax: Qd4=vcmp.gt(Vu32.w,Vv32.w)
1576 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1577 Instruction Type: CVI_VA
1578 Execution Slots: SLOT0123
1579 ========================================================================== */
1580
1581#define Q6_Q_vcmp_gt_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw)(Vu,Vv)),-1)
1582#endif /* __HEXAGON_ARCH___ >= 60 */
1583
1584#if __HVX_ARCH__ >= 60
1585/* ==========================================================================
1586 Assembly Syntax: Qx4&=vcmp.gt(Vu32.w,Vv32.w)
1587 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1588 Instruction Type: CVI_VA
1589 Execution Slots: SLOT0123
1590 ========================================================================== */
1591
1592#define Q6_Q_vcmp_gtand_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1593#endif /* __HEXAGON_ARCH___ >= 60 */
1594
1595#if __HVX_ARCH__ >= 60
1596/* ==========================================================================
1597 Assembly Syntax: Qx4|=vcmp.gt(Vu32.w,Vv32.w)
1598 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1599 Instruction Type: CVI_VA
1600 Execution Slots: SLOT0123
1601 ========================================================================== */
1602
1603#define Q6_Q_vcmp_gtor_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1604#endif /* __HEXAGON_ARCH___ >= 60 */
1605
1606#if __HVX_ARCH__ >= 60
1607/* ==========================================================================
1608 Assembly Syntax: Qx4^=vcmp.gt(Vu32.w,Vv32.w)
1609 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1610 Instruction Type: CVI_VA
1611 Execution Slots: SLOT0123
1612 ========================================================================== */
1613
1614#define Q6_Q_vcmp_gtxacc_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1615#endif /* __HEXAGON_ARCH___ >= 60 */
1616
1617#if __HVX_ARCH__ >= 60
1618/* ==========================================================================
1619 Assembly Syntax: Vx32.w=vinsert(Rt32)
1620 C Intrinsic Prototype: HVX_Vector Q6_Vw_vinsert_VwR(HVX_Vector Vx, Word32 Rt)
1621 Instruction Type: CVI_VX_LATE
1622 Execution Slots: SLOT23
1623 ========================================================================== */
1624
1625#define Q6_Vw_vinsert_VwR(Vx,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vinsertwr)(Vx,Rt)
1626#endif /* __HEXAGON_ARCH___ >= 60 */
1627
1628#if __HVX_ARCH__ >= 60
1629/* ==========================================================================
1630 Assembly Syntax: Vd32=vlalign(Vu32,Vv32,Rt8)
1631 C Intrinsic Prototype: HVX_Vector Q6_V_vlalign_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1632 Instruction Type: CVI_VP
1633 Execution Slots: SLOT0123
1634 ========================================================================== */
1635
1636#define Q6_V_vlalign_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlalignb)(Vu,Vv,Rt)
1637#endif /* __HEXAGON_ARCH___ >= 60 */
1638
1639#if __HVX_ARCH__ >= 60
1640/* ==========================================================================
1641 Assembly Syntax: Vd32=vlalign(Vu32,Vv32,#u3)
1642 C Intrinsic Prototype: HVX_Vector Q6_V_vlalign_VVI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
1643 Instruction Type: CVI_VP
1644 Execution Slots: SLOT0123
1645 ========================================================================== */
1646
1647#define Q6_V_vlalign_VVI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlalignbi)(Vu,Vv,Iu3)
1648#endif /* __HEXAGON_ARCH___ >= 60 */
1649
1650#if __HVX_ARCH__ >= 60
1651/* ==========================================================================
1652 Assembly Syntax: Vd32.uh=vlsr(Vu32.uh,Rt32)
1653 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vlsr_VuhR(HVX_Vector Vu, Word32 Rt)
1654 Instruction Type: CVI_VS
1655 Execution Slots: SLOT0123
1656 ========================================================================== */
1657
1658#define Q6_Vuh_vlsr_VuhR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrh)(Vu,Rt)
1659#endif /* __HEXAGON_ARCH___ >= 60 */
1660
1661#if __HVX_ARCH__ >= 60
1662/* ==========================================================================
1663 Assembly Syntax: Vd32.h=vlsr(Vu32.h,Vv32.h)
1664 C Intrinsic Prototype: HVX_Vector Q6_Vh_vlsr_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1665 Instruction Type: CVI_VS
1666 Execution Slots: SLOT0123
1667 ========================================================================== */
1668
1669#define Q6_Vh_vlsr_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrhv)(Vu,Vv)
1670#endif /* __HEXAGON_ARCH___ >= 60 */
1671
1672#if __HVX_ARCH__ >= 60
1673/* ==========================================================================
1674 Assembly Syntax: Vd32.uw=vlsr(Vu32.uw,Rt32)
1675 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vlsr_VuwR(HVX_Vector Vu, Word32 Rt)
1676 Instruction Type: CVI_VS
1677 Execution Slots: SLOT0123
1678 ========================================================================== */
1679
1680#define Q6_Vuw_vlsr_VuwR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrw)(Vu,Rt)
1681#endif /* __HEXAGON_ARCH___ >= 60 */
1682
1683#if __HVX_ARCH__ >= 60
1684/* ==========================================================================
1685 Assembly Syntax: Vd32.w=vlsr(Vu32.w,Vv32.w)
1686 C Intrinsic Prototype: HVX_Vector Q6_Vw_vlsr_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1687 Instruction Type: CVI_VS
1688 Execution Slots: SLOT0123
1689 ========================================================================== */
1690
1691#define Q6_Vw_vlsr_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrwv)(Vu,Vv)
1692#endif /* __HEXAGON_ARCH___ >= 60 */
1693
1694#if __HVX_ARCH__ >= 60
1695/* ==========================================================================
1696 Assembly Syntax: Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8)
1697 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1698 Instruction Type: CVI_VP
1699 Execution Slots: SLOT0123
1700 ========================================================================== */
1701
1702#define Q6_Vb_vlut32_VbVbR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb)(Vu,Vv,Rt)
1703#endif /* __HEXAGON_ARCH___ >= 60 */
1704
1705#if __HVX_ARCH__ >= 60
1706/* ==========================================================================
1707 Assembly Syntax: Vx32.b|=vlut32(Vu32.b,Vv32.b,Rt8)
1708 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32or_VbVbVbR(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1709 Instruction Type: CVI_VP_VS
1710 Execution Slots: SLOT0123
1711 ========================================================================== */
1712
1713#define Q6_Vb_vlut32or_VbVbVbR(Vx,Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_oracc)(Vx,Vu,Vv,Rt)
1714#endif /* __HEXAGON_ARCH___ >= 60 */
1715
1716#if __HVX_ARCH__ >= 60
1717/* ==========================================================================
1718 Assembly Syntax: Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8)
1719 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1720 Instruction Type: CVI_VP_VS
1721 Execution Slots: SLOT0123
1722 ========================================================================== */
1723
1724#define Q6_Wh_vlut16_VbVhR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh)(Vu,Vv,Rt)
1725#endif /* __HEXAGON_ARCH___ >= 60 */
1726
1727#if __HVX_ARCH__ >= 60
1728/* ==========================================================================
1729 Assembly Syntax: Vxx32.h|=vlut16(Vu32.b,Vv32.h,Rt8)
1730 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16or_WhVbVhR(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1731 Instruction Type: CVI_VP_VS
1732 Execution Slots: SLOT0123
1733 ========================================================================== */
1734
1735#define Q6_Wh_vlut16or_WhVbVhR(Vxx,Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_oracc)(Vxx,Vu,Vv,Rt)
1736#endif /* __HEXAGON_ARCH___ >= 60 */
1737
1738#if __HVX_ARCH__ >= 60
1739/* ==========================================================================
1740 Assembly Syntax: Vd32.h=vmax(Vu32.h,Vv32.h)
1741 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmax_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1742 Instruction Type: CVI_VA
1743 Execution Slots: SLOT0123
1744 ========================================================================== */
1745
1746#define Q6_Vh_vmax_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxh)(Vu,Vv)
1747#endif /* __HEXAGON_ARCH___ >= 60 */
1748
1749#if __HVX_ARCH__ >= 60
1750/* ==========================================================================
1751 Assembly Syntax: Vd32.ub=vmax(Vu32.ub,Vv32.ub)
1752 C Intrinsic Prototype: HVX_Vector Q6_Vub_vmax_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1753 Instruction Type: CVI_VA
1754 Execution Slots: SLOT0123
1755 ========================================================================== */
1756
1757#define Q6_Vub_vmax_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxub)(Vu,Vv)
1758#endif /* __HEXAGON_ARCH___ >= 60 */
1759
1760#if __HVX_ARCH__ >= 60
1761/* ==========================================================================
1762 Assembly Syntax: Vd32.uh=vmax(Vu32.uh,Vv32.uh)
1763 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmax_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1764 Instruction Type: CVI_VA
1765 Execution Slots: SLOT0123
1766 ========================================================================== */
1767
1768#define Q6_Vuh_vmax_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxuh)(Vu,Vv)
1769#endif /* __HEXAGON_ARCH___ >= 60 */
1770
1771#if __HVX_ARCH__ >= 60
1772/* ==========================================================================
1773 Assembly Syntax: Vd32.w=vmax(Vu32.w,Vv32.w)
1774 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmax_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1775 Instruction Type: CVI_VA
1776 Execution Slots: SLOT0123
1777 ========================================================================== */
1778
1779#define Q6_Vw_vmax_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxw)(Vu,Vv)
1780#endif /* __HEXAGON_ARCH___ >= 60 */
1781
1782#if __HVX_ARCH__ >= 60
1783/* ==========================================================================
1784 Assembly Syntax: Vd32.h=vmin(Vu32.h,Vv32.h)
1785 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmin_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1786 Instruction Type: CVI_VA
1787 Execution Slots: SLOT0123
1788 ========================================================================== */
1789
1790#define Q6_Vh_vmin_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminh)(Vu,Vv)
1791#endif /* __HEXAGON_ARCH___ >= 60 */
1792
1793#if __HVX_ARCH__ >= 60
1794/* ==========================================================================
1795 Assembly Syntax: Vd32.ub=vmin(Vu32.ub,Vv32.ub)
1796 C Intrinsic Prototype: HVX_Vector Q6_Vub_vmin_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1797 Instruction Type: CVI_VA
1798 Execution Slots: SLOT0123
1799 ========================================================================== */
1800
1801#define Q6_Vub_vmin_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminub)(Vu,Vv)
1802#endif /* __HEXAGON_ARCH___ >= 60 */
1803
1804#if __HVX_ARCH__ >= 60
1805/* ==========================================================================
1806 Assembly Syntax: Vd32.uh=vmin(Vu32.uh,Vv32.uh)
1807 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmin_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1808 Instruction Type: CVI_VA
1809 Execution Slots: SLOT0123
1810 ========================================================================== */
1811
1812#define Q6_Vuh_vmin_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminuh)(Vu,Vv)
1813#endif /* __HEXAGON_ARCH___ >= 60 */
1814
1815#if __HVX_ARCH__ >= 60
1816/* ==========================================================================
1817 Assembly Syntax: Vd32.w=vmin(Vu32.w,Vv32.w)
1818 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmin_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1819 Instruction Type: CVI_VA
1820 Execution Slots: SLOT0123
1821 ========================================================================== */
1822
1823#define Q6_Vw_vmin_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminw)(Vu,Vv)
1824#endif /* __HEXAGON_ARCH___ >= 60 */
1825
1826#if __HVX_ARCH__ >= 60
1827/* ==========================================================================
1828 Assembly Syntax: Vdd32.h=vmpa(Vuu32.ub,Rt32.b)
1829 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubRb(HVX_VectorPair Vuu, Word32 Rt)
1830 Instruction Type: CVI_VX_DV
1831 Execution Slots: SLOT23
1832 ========================================================================== */
1833
1834#define Q6_Wh_vmpa_WubRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabus)(Vuu,Rt)
1835#endif /* __HEXAGON_ARCH___ >= 60 */
1836
1837#if __HVX_ARCH__ >= 60
1838/* ==========================================================================
1839 Assembly Syntax: Vxx32.h+=vmpa(Vuu32.ub,Rt32.b)
1840 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpaacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1841 Instruction Type: CVI_VX_DV
1842 Execution Slots: SLOT23
1843 ========================================================================== */
1844
1845#define Q6_Wh_vmpaacc_WhWubRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabus_acc)(Vxx,Vuu,Rt)
1846#endif /* __HEXAGON_ARCH___ >= 60 */
1847
1848#if __HVX_ARCH__ >= 60
1849/* ==========================================================================
1850 Assembly Syntax: Vdd32.h=vmpa(Vuu32.ub,Vvv32.b)
1851 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
1852 Instruction Type: CVI_VX_DV
1853 Execution Slots: SLOT23
1854 ========================================================================== */
1855
1856#define Q6_Wh_vmpa_WubWb(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabusv)(Vuu,Vvv)
1857#endif /* __HEXAGON_ARCH___ >= 60 */
1858
1859#if __HVX_ARCH__ >= 60
1860/* ==========================================================================
1861 Assembly Syntax: Vdd32.h=vmpa(Vuu32.ub,Vvv32.ub)
1862 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubWub(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
1863 Instruction Type: CVI_VX_DV
1864 Execution Slots: SLOT23
1865 ========================================================================== */
1866
1867#define Q6_Wh_vmpa_WubWub(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuuv)(Vuu,Vvv)
1868#endif /* __HEXAGON_ARCH___ >= 60 */
1869
1870#if __HVX_ARCH__ >= 60
1871/* ==========================================================================
1872 Assembly Syntax: Vdd32.w=vmpa(Vuu32.h,Rt32.b)
1873 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpa_WhRb(HVX_VectorPair Vuu, Word32 Rt)
1874 Instruction Type: CVI_VX_DV
1875 Execution Slots: SLOT23
1876 ========================================================================== */
1877
1878#define Q6_Ww_vmpa_WhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahb)(Vuu,Rt)
1879#endif /* __HEXAGON_ARCH___ >= 60 */
1880
1881#if __HVX_ARCH__ >= 60
1882/* ==========================================================================
1883 Assembly Syntax: Vxx32.w+=vmpa(Vuu32.h,Rt32.b)
1884 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpaacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1885 Instruction Type: CVI_VX_DV
1886 Execution Slots: SLOT23
1887 ========================================================================== */
1888
1889#define Q6_Ww_vmpaacc_WwWhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahb_acc)(Vxx,Vuu,Rt)
1890#endif /* __HEXAGON_ARCH___ >= 60 */
1891
1892#if __HVX_ARCH__ >= 60
1893/* ==========================================================================
1894 Assembly Syntax: Vdd32.h=vmpy(Vu32.ub,Rt32.b)
1895 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VubRb(HVX_Vector Vu, Word32 Rt)
1896 Instruction Type: CVI_VX_DV
1897 Execution Slots: SLOT23
1898 ========================================================================== */
1899
1900#define Q6_Wh_vmpy_VubRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybus)(Vu,Rt)
1901#endif /* __HEXAGON_ARCH___ >= 60 */
1902
1903#if __HVX_ARCH__ >= 60
1904/* ==========================================================================
1905 Assembly Syntax: Vxx32.h+=vmpy(Vu32.ub,Rt32.b)
1906 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVubRb(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
1907 Instruction Type: CVI_VX_DV
1908 Execution Slots: SLOT23
1909 ========================================================================== */
1910
1911#define Q6_Wh_vmpyacc_WhVubRb(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybus_acc)(Vxx,Vu,Rt)
1912#endif /* __HEXAGON_ARCH___ >= 60 */
1913
1914#if __HVX_ARCH__ >= 60
1915/* ==========================================================================
1916 Assembly Syntax: Vdd32.h=vmpy(Vu32.ub,Vv32.b)
1917 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VubVb(HVX_Vector Vu, HVX_Vector Vv)
1918 Instruction Type: CVI_VX_DV
1919 Execution Slots: SLOT23
1920 ========================================================================== */
1921
1922#define Q6_Wh_vmpy_VubVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybusv)(Vu,Vv)
1923#endif /* __HEXAGON_ARCH___ >= 60 */
1924
1925#if __HVX_ARCH__ >= 60
1926/* ==========================================================================
1927 Assembly Syntax: Vxx32.h+=vmpy(Vu32.ub,Vv32.b)
1928 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVubVb(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
1929 Instruction Type: CVI_VX_DV
1930 Execution Slots: SLOT23
1931 ========================================================================== */
1932
1933#define Q6_Wh_vmpyacc_WhVubVb(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybusv_acc)(Vxx,Vu,Vv)
1934#endif /* __HEXAGON_ARCH___ >= 60 */
1935
1936#if __HVX_ARCH__ >= 60
1937/* ==========================================================================
1938 Assembly Syntax: Vdd32.h=vmpy(Vu32.b,Vv32.b)
1939 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1940 Instruction Type: CVI_VX_DV
1941 Execution Slots: SLOT23
1942 ========================================================================== */
1943
1944#define Q6_Wh_vmpy_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybv)(Vu,Vv)
1945#endif /* __HEXAGON_ARCH___ >= 60 */
1946
1947#if __HVX_ARCH__ >= 60
1948/* ==========================================================================
1949 Assembly Syntax: Vxx32.h+=vmpy(Vu32.b,Vv32.b)
1950 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVbVb(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
1951 Instruction Type: CVI_VX_DV
1952 Execution Slots: SLOT23
1953 ========================================================================== */
1954
1955#define Q6_Wh_vmpyacc_WhVbVb(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybv_acc)(Vxx,Vu,Vv)
1956#endif /* __HEXAGON_ARCH___ >= 60 */
1957
1958#if __HVX_ARCH__ >= 60
1959/* ==========================================================================
1960 Assembly Syntax: Vd32.w=vmpye(Vu32.w,Vv32.uh)
1961 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpye_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
1962 Instruction Type: CVI_VX_DV
1963 Execution Slots: SLOT23
1964 ========================================================================== */
1965
1966#define Q6_Vw_vmpye_VwVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyewuh)(Vu,Vv)
1967#endif /* __HEXAGON_ARCH___ >= 60 */
1968
1969#if __HVX_ARCH__ >= 60
1970/* ==========================================================================
1971 Assembly Syntax: Vdd32.w=vmpy(Vu32.h,Rt32.h)
1972 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhRh(HVX_Vector Vu, Word32 Rt)
1973 Instruction Type: CVI_VX_DV
1974 Execution Slots: SLOT23
1975 ========================================================================== */
1976
1977#define Q6_Ww_vmpy_VhRh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyh)(Vu,Rt)
1978#endif /* __HEXAGON_ARCH___ >= 60 */
1979
1980#if __HVX_ARCH__ >= 60
1981/* ==========================================================================
1982 Assembly Syntax: Vxx32.w+=vmpy(Vu32.h,Rt32.h):sat
1983 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhRh_sat(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
1984 Instruction Type: CVI_VX_DV
1985 Execution Slots: SLOT23
1986 ========================================================================== */
1987
1988#define Q6_Ww_vmpyacc_WwVhRh_sat(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhsat_acc)(Vxx,Vu,Rt)
1989#endif /* __HEXAGON_ARCH___ >= 60 */
1990
1991#if __HVX_ARCH__ >= 60
1992/* ==========================================================================
1993 Assembly Syntax: Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:rnd:sat
1994 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhRh_s1_rnd_sat(HVX_Vector Vu, Word32 Rt)
1995 Instruction Type: CVI_VX
1996 Execution Slots: SLOT23
1997 ========================================================================== */
1998
1999#define Q6_Vh_vmpy_VhRh_s1_rnd_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhsrs)(Vu,Rt)
2000#endif /* __HEXAGON_ARCH___ >= 60 */
2001
2002#if __HVX_ARCH__ >= 60
2003/* ==========================================================================
2004 Assembly Syntax: Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:sat
2005 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhRh_s1_sat(HVX_Vector Vu, Word32 Rt)
2006 Instruction Type: CVI_VX
2007 Execution Slots: SLOT23
2008 ========================================================================== */
2009
2010#define Q6_Vh_vmpy_VhRh_s1_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhss)(Vu,Rt)
2011#endif /* __HEXAGON_ARCH___ >= 60 */
2012
2013#if __HVX_ARCH__ >= 60
2014/* ==========================================================================
2015 Assembly Syntax: Vdd32.w=vmpy(Vu32.h,Vv32.uh)
2016 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhVuh(HVX_Vector Vu, HVX_Vector Vv)
2017 Instruction Type: CVI_VX_DV
2018 Execution Slots: SLOT23
2019 ========================================================================== */
2020
2021#define Q6_Ww_vmpy_VhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhus)(Vu,Vv)
2022#endif /* __HEXAGON_ARCH___ >= 60 */
2023
2024#if __HVX_ARCH__ >= 60
2025/* ==========================================================================
2026 Assembly Syntax: Vxx32.w+=vmpy(Vu32.h,Vv32.uh)
2027 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2028 Instruction Type: CVI_VX_DV
2029 Execution Slots: SLOT23
2030 ========================================================================== */
2031
2032#define Q6_Ww_vmpyacc_WwVhVuh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhus_acc)(Vxx,Vu,Vv)
2033#endif /* __HEXAGON_ARCH___ >= 60 */
2034
2035#if __HVX_ARCH__ >= 60
2036/* ==========================================================================
2037 Assembly Syntax: Vdd32.w=vmpy(Vu32.h,Vv32.h)
2038 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2039 Instruction Type: CVI_VX_DV
2040 Execution Slots: SLOT23
2041 ========================================================================== */
2042
2043#define Q6_Ww_vmpy_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhv)(Vu,Vv)
2044#endif /* __HEXAGON_ARCH___ >= 60 */
2045
2046#if __HVX_ARCH__ >= 60
2047/* ==========================================================================
2048 Assembly Syntax: Vxx32.w+=vmpy(Vu32.h,Vv32.h)
2049 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2050 Instruction Type: CVI_VX_DV
2051 Execution Slots: SLOT23
2052 ========================================================================== */
2053
2054#define Q6_Ww_vmpyacc_WwVhVh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhv_acc)(Vxx,Vu,Vv)
2055#endif /* __HEXAGON_ARCH___ >= 60 */
2056
2057#if __HVX_ARCH__ >= 60
2058/* ==========================================================================
2059 Assembly Syntax: Vd32.h=vmpy(Vu32.h,Vv32.h):<<1:rnd:sat
2060 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhVh_s1_rnd_sat(HVX_Vector Vu, HVX_Vector Vv)
2061 Instruction Type: CVI_VX
2062 Execution Slots: SLOT23
2063 ========================================================================== */
2064
2065#define Q6_Vh_vmpy_VhVh_s1_rnd_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhvsrs)(Vu,Vv)
2066#endif /* __HEXAGON_ARCH___ >= 60 */
2067
2068#if __HVX_ARCH__ >= 60
2069/* ==========================================================================
2070 Assembly Syntax: Vd32.w=vmpyieo(Vu32.h,Vv32.h)
2071 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieo_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2072 Instruction Type: CVI_VX
2073 Execution Slots: SLOT23
2074 ========================================================================== */
2075
2076#define Q6_Vw_vmpyieo_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyieoh)(Vu,Vv)
2077#endif /* __HEXAGON_ARCH___ >= 60 */
2078
2079#if __HVX_ARCH__ >= 60
2080/* ==========================================================================
2081 Assembly Syntax: Vx32.w+=vmpyie(Vu32.w,Vv32.h)
2082 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieacc_VwVwVh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2083 Instruction Type: CVI_VX_DV
2084 Execution Slots: SLOT23
2085 ========================================================================== */
2086
2087#define Q6_Vw_vmpyieacc_VwVwVh(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewh_acc)(Vx,Vu,Vv)
2088#endif /* __HEXAGON_ARCH___ >= 60 */
2089
2090#if __HVX_ARCH__ >= 60
2091/* ==========================================================================
2092 Assembly Syntax: Vd32.w=vmpyie(Vu32.w,Vv32.uh)
2093 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyie_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
2094 Instruction Type: CVI_VX_DV
2095 Execution Slots: SLOT23
2096 ========================================================================== */
2097
2098#define Q6_Vw_vmpyie_VwVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewuh)(Vu,Vv)
2099#endif /* __HEXAGON_ARCH___ >= 60 */
2100
2101#if __HVX_ARCH__ >= 60
2102/* ==========================================================================
2103 Assembly Syntax: Vx32.w+=vmpyie(Vu32.w,Vv32.uh)
2104 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieacc_VwVwVuh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2105 Instruction Type: CVI_VX_DV
2106 Execution Slots: SLOT23
2107 ========================================================================== */
2108
2109#define Q6_Vw_vmpyieacc_VwVwVuh(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewuh_acc)(Vx,Vu,Vv)
2110#endif /* __HEXAGON_ARCH___ >= 60 */
2111
2112#if __HVX_ARCH__ >= 60
2113/* ==========================================================================
2114 Assembly Syntax: Vd32.h=vmpyi(Vu32.h,Vv32.h)
2115 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyi_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2116 Instruction Type: CVI_VX_DV
2117 Execution Slots: SLOT23
2118 ========================================================================== */
2119
2120#define Q6_Vh_vmpyi_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyih)(Vu,Vv)
2121#endif /* __HEXAGON_ARCH___ >= 60 */
2122
2123#if __HVX_ARCH__ >= 60
2124/* ==========================================================================
2125 Assembly Syntax: Vx32.h+=vmpyi(Vu32.h,Vv32.h)
2126 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyiacc_VhVhVh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2127 Instruction Type: CVI_VX_DV
2128 Execution Slots: SLOT23
2129 ========================================================================== */
2130
2131#define Q6_Vh_vmpyiacc_VhVhVh(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyih_acc)(Vx,Vu,Vv)
2132#endif /* __HEXAGON_ARCH___ >= 60 */
2133
2134#if __HVX_ARCH__ >= 60
2135/* ==========================================================================
2136 Assembly Syntax: Vd32.h=vmpyi(Vu32.h,Rt32.b)
2137 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyi_VhRb(HVX_Vector Vu, Word32 Rt)
2138 Instruction Type: CVI_VX
2139 Execution Slots: SLOT23
2140 ========================================================================== */
2141
2142#define Q6_Vh_vmpyi_VhRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyihb)(Vu,Rt)
2143#endif /* __HEXAGON_ARCH___ >= 60 */
2144
2145#if __HVX_ARCH__ >= 60
2146/* ==========================================================================
2147 Assembly Syntax: Vx32.h+=vmpyi(Vu32.h,Rt32.b)
2148 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyiacc_VhVhRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2149 Instruction Type: CVI_VX
2150 Execution Slots: SLOT23
2151 ========================================================================== */
2152
2153#define Q6_Vh_vmpyiacc_VhVhRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyihb_acc)(Vx,Vu,Rt)
2154#endif /* __HEXAGON_ARCH___ >= 60 */
2155
2156#if __HVX_ARCH__ >= 60
2157/* ==========================================================================
2158 Assembly Syntax: Vd32.w=vmpyio(Vu32.w,Vv32.h)
2159 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyio_VwVh(HVX_Vector Vu, HVX_Vector Vv)
2160 Instruction Type: CVI_VX_DV
2161 Execution Slots: SLOT23
2162 ========================================================================== */
2163
2164#define Q6_Vw_vmpyio_VwVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiowh)(Vu,Vv)
2165#endif /* __HEXAGON_ARCH___ >= 60 */
2166
2167#if __HVX_ARCH__ >= 60
2168/* ==========================================================================
2169 Assembly Syntax: Vd32.w=vmpyi(Vu32.w,Rt32.b)
2170 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRb(HVX_Vector Vu, Word32 Rt)
2171 Instruction Type: CVI_VX
2172 Execution Slots: SLOT23
2173 ========================================================================== */
2174
2175#define Q6_Vw_vmpyi_VwRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwb)(Vu,Rt)
2176#endif /* __HEXAGON_ARCH___ >= 60 */
2177
2178#if __HVX_ARCH__ >= 60
2179/* ==========================================================================
2180 Assembly Syntax: Vx32.w+=vmpyi(Vu32.w,Rt32.b)
2181 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2182 Instruction Type: CVI_VX
2183 Execution Slots: SLOT23
2184 ========================================================================== */
2185
2186#define Q6_Vw_vmpyiacc_VwVwRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwb_acc)(Vx,Vu,Rt)
2187#endif /* __HEXAGON_ARCH___ >= 60 */
2188
2189#if __HVX_ARCH__ >= 60
2190/* ==========================================================================
2191 Assembly Syntax: Vd32.w=vmpyi(Vu32.w,Rt32.h)
2192 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRh(HVX_Vector Vu, Word32 Rt)
2193 Instruction Type: CVI_VX_DV
2194 Execution Slots: SLOT23
2195 ========================================================================== */
2196
2197#define Q6_Vw_vmpyi_VwRh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwh)(Vu,Rt)
2198#endif /* __HEXAGON_ARCH___ >= 60 */
2199
2200#if __HVX_ARCH__ >= 60
2201/* ==========================================================================
2202 Assembly Syntax: Vx32.w+=vmpyi(Vu32.w,Rt32.h)
2203 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRh(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2204 Instruction Type: CVI_VX_DV
2205 Execution Slots: SLOT23
2206 ========================================================================== */
2207
2208#define Q6_Vw_vmpyiacc_VwVwRh(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwh_acc)(Vx,Vu,Rt)
2209#endif /* __HEXAGON_ARCH___ >= 60 */
2210
2211#if __HVX_ARCH__ >= 60
2212/* ==========================================================================
2213 Assembly Syntax: Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:sat
2214 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyo_VwVh_s1_sat(HVX_Vector Vu, HVX_Vector Vv)
2215 Instruction Type: CVI_VX_DV
2216 Execution Slots: SLOT23
2217 ========================================================================== */
2218
2219#define Q6_Vw_vmpyo_VwVh_s1_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh)(Vu,Vv)
2220#endif /* __HEXAGON_ARCH___ >= 60 */
2221
2222#if __HVX_ARCH__ >= 60
2223/* ==========================================================================
2224 Assembly Syntax: Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat
2225 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyo_VwVh_s1_rnd_sat(HVX_Vector Vu, HVX_Vector Vv)
2226 Instruction Type: CVI_VX_DV
2227 Execution Slots: SLOT23
2228 ========================================================================== */
2229
2230#define Q6_Vw_vmpyo_VwVh_s1_rnd_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_rnd)(Vu,Vv)
2231#endif /* __HEXAGON_ARCH___ >= 60 */
2232
2233#if __HVX_ARCH__ >= 60
2234/* ==========================================================================
2235 Assembly Syntax: Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat:shift
2236 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyoacc_VwVwVh_s1_rnd_sat_shift(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2237 Instruction Type: CVI_VX_DV
2238 Execution Slots: SLOT23
2239 ========================================================================== */
2240
2241#define Q6_Vw_vmpyoacc_VwVwVh_s1_rnd_sat_shift(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_rnd_sacc)(Vx,Vu,Vv)
2242#endif /* __HEXAGON_ARCH___ >= 60 */
2243
2244#if __HVX_ARCH__ >= 60
2245/* ==========================================================================
2246 Assembly Syntax: Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:sat:shift
2247 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyoacc_VwVwVh_s1_sat_shift(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2248 Instruction Type: CVI_VX_DV
2249 Execution Slots: SLOT23
2250 ========================================================================== */
2251
2252#define Q6_Vw_vmpyoacc_VwVwVh_s1_sat_shift(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_sacc)(Vx,Vu,Vv)
2253#endif /* __HEXAGON_ARCH___ >= 60 */
2254
2255#if __HVX_ARCH__ >= 60
2256/* ==========================================================================
2257 Assembly Syntax: Vdd32.uh=vmpy(Vu32.ub,Rt32.ub)
2258 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpy_VubRub(HVX_Vector Vu, Word32 Rt)
2259 Instruction Type: CVI_VX_DV
2260 Execution Slots: SLOT23
2261 ========================================================================== */
2262
2263#define Q6_Wuh_vmpy_VubRub(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyub)(Vu,Rt)
2264#endif /* __HEXAGON_ARCH___ >= 60 */
2265
2266#if __HVX_ARCH__ >= 60
2267/* ==========================================================================
2268 Assembly Syntax: Vxx32.uh+=vmpy(Vu32.ub,Rt32.ub)
2269 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpyacc_WuhVubRub(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
2270 Instruction Type: CVI_VX_DV
2271 Execution Slots: SLOT23
2272 ========================================================================== */
2273
2274#define Q6_Wuh_vmpyacc_WuhVubRub(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyub_acc)(Vxx,Vu,Rt)
2275#endif /* __HEXAGON_ARCH___ >= 60 */
2276
2277#if __HVX_ARCH__ >= 60
2278/* ==========================================================================
2279 Assembly Syntax: Vdd32.uh=vmpy(Vu32.ub,Vv32.ub)
2280 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpy_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2281 Instruction Type: CVI_VX_DV
2282 Execution Slots: SLOT23
2283 ========================================================================== */
2284
2285#define Q6_Wuh_vmpy_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyubv)(Vu,Vv)
2286#endif /* __HEXAGON_ARCH___ >= 60 */
2287
2288#if __HVX_ARCH__ >= 60
2289/* ==========================================================================
2290 Assembly Syntax: Vxx32.uh+=vmpy(Vu32.ub,Vv32.ub)
2291 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpyacc_WuhVubVub(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2292 Instruction Type: CVI_VX_DV
2293 Execution Slots: SLOT23
2294 ========================================================================== */
2295
2296#define Q6_Wuh_vmpyacc_WuhVubVub(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyubv_acc)(Vxx,Vu,Vv)
2297#endif /* __HEXAGON_ARCH___ >= 60 */
2298
2299#if __HVX_ARCH__ >= 60
2300/* ==========================================================================
2301 Assembly Syntax: Vdd32.uw=vmpy(Vu32.uh,Rt32.uh)
2302 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpy_VuhRuh(HVX_Vector Vu, Word32 Rt)
2303 Instruction Type: CVI_VX_DV
2304 Execution Slots: SLOT23
2305 ========================================================================== */
2306
2307#define Q6_Wuw_vmpy_VuhRuh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuh)(Vu,Rt)
2308#endif /* __HEXAGON_ARCH___ >= 60 */
2309
2310#if __HVX_ARCH__ >= 60
2311/* ==========================================================================
2312 Assembly Syntax: Vxx32.uw+=vmpy(Vu32.uh,Rt32.uh)
2313 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpyacc_WuwVuhRuh(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
2314 Instruction Type: CVI_VX_DV
2315 Execution Slots: SLOT23
2316 ========================================================================== */
2317
2318#define Q6_Wuw_vmpyacc_WuwVuhRuh(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuh_acc)(Vxx,Vu,Rt)
2319#endif /* __HEXAGON_ARCH___ >= 60 */
2320
2321#if __HVX_ARCH__ >= 60
2322/* ==========================================================================
2323 Assembly Syntax: Vdd32.uw=vmpy(Vu32.uh,Vv32.uh)
2324 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpy_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
2325 Instruction Type: CVI_VX_DV
2326 Execution Slots: SLOT23
2327 ========================================================================== */
2328
2329#define Q6_Wuw_vmpy_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhv)(Vu,Vv)
2330#endif /* __HEXAGON_ARCH___ >= 60 */
2331
2332#if __HVX_ARCH__ >= 60
2333/* ==========================================================================
2334 Assembly Syntax: Vxx32.uw+=vmpy(Vu32.uh,Vv32.uh)
2335 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpyacc_WuwVuhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2336 Instruction Type: CVI_VX_DV
2337 Execution Slots: SLOT23
2338 ========================================================================== */
2339
2340#define Q6_Wuw_vmpyacc_WuwVuhVuh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhv_acc)(Vxx,Vu,Vv)
2341#endif /* __HEXAGON_ARCH___ >= 60 */
2342
2343#if __HVX_ARCH__ >= 60
2344/* ==========================================================================
2345 Assembly Syntax: Vd32=vmux(Qt4,Vu32,Vv32)
2346 C Intrinsic Prototype: HVX_Vector Q6_V_vmux_QVV(HVX_VectorPred Qt, HVX_Vector Vu, HVX_Vector Vv)
2347 Instruction Type: CVI_VA
2348 Execution Slots: SLOT0123
2349 ========================================================================== */
2350
2351#define Q6_V_vmux_QVV(Qt,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmux)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1),Vu,Vv)
2352#endif /* __HEXAGON_ARCH___ >= 60 */
2353
2354#if __HVX_ARCH__ >= 60
2355/* ==========================================================================
2356 Assembly Syntax: Vd32.h=vnavg(Vu32.h,Vv32.h)
2357 C Intrinsic Prototype: HVX_Vector Q6_Vh_vnavg_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2358 Instruction Type: CVI_VA
2359 Execution Slots: SLOT0123
2360 ========================================================================== */
2361
2362#define Q6_Vh_vnavg_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgh)(Vu,Vv)
2363#endif /* __HEXAGON_ARCH___ >= 60 */
2364
2365#if __HVX_ARCH__ >= 60
2366/* ==========================================================================
2367 Assembly Syntax: Vd32.b=vnavg(Vu32.ub,Vv32.ub)
2368 C Intrinsic Prototype: HVX_Vector Q6_Vb_vnavg_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2369 Instruction Type: CVI_VA
2370 Execution Slots: SLOT0123
2371 ========================================================================== */
2372
2373#define Q6_Vb_vnavg_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgub)(Vu,Vv)
2374#endif /* __HEXAGON_ARCH___ >= 60 */
2375
2376#if __HVX_ARCH__ >= 60
2377/* ==========================================================================
2378 Assembly Syntax: Vd32.w=vnavg(Vu32.w,Vv32.w)
2379 C Intrinsic Prototype: HVX_Vector Q6_Vw_vnavg_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2380 Instruction Type: CVI_VA
2381 Execution Slots: SLOT0123
2382 ========================================================================== */
2383
2384#define Q6_Vw_vnavg_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgw)(Vu,Vv)
2385#endif /* __HEXAGON_ARCH___ >= 60 */
2386
2387#if __HVX_ARCH__ >= 60
2388/* ==========================================================================
2389 Assembly Syntax: Vd32.h=vnormamt(Vu32.h)
2390 C Intrinsic Prototype: HVX_Vector Q6_Vh_vnormamt_Vh(HVX_Vector Vu)
2391 Instruction Type: CVI_VS
2392 Execution Slots: SLOT0123
2393 ========================================================================== */
2394
2395#define Q6_Vh_vnormamt_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnormamth)(Vu)
2396#endif /* __HEXAGON_ARCH___ >= 60 */
2397
2398#if __HVX_ARCH__ >= 60
2399/* ==========================================================================
2400 Assembly Syntax: Vd32.w=vnormamt(Vu32.w)
2401 C Intrinsic Prototype: HVX_Vector Q6_Vw_vnormamt_Vw(HVX_Vector Vu)
2402 Instruction Type: CVI_VS
2403 Execution Slots: SLOT0123
2404 ========================================================================== */
2405
2406#define Q6_Vw_vnormamt_Vw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnormamtw)(Vu)
2407#endif /* __HEXAGON_ARCH___ >= 60 */
2408
2409#if __HVX_ARCH__ >= 60
2410/* ==========================================================================
2411 Assembly Syntax: Vd32=vnot(Vu32)
2412 C Intrinsic Prototype: HVX_Vector Q6_V_vnot_V(HVX_Vector Vu)
2413 Instruction Type: CVI_VA
2414 Execution Slots: SLOT0123
2415 ========================================================================== */
2416
2417#define Q6_V_vnot_V(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnot)(Vu)
2418#endif /* __HEXAGON_ARCH___ >= 60 */
2419
2420#if __HVX_ARCH__ >= 60
2421/* ==========================================================================
2422 Assembly Syntax: Vd32=vor(Vu32,Vv32)
2423 C Intrinsic Prototype: HVX_Vector Q6_V_vor_VV(HVX_Vector Vu, HVX_Vector Vv)
2424 Instruction Type: CVI_VA
2425 Execution Slots: SLOT0123
2426 ========================================================================== */
2427
2428#define Q6_V_vor_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vor)(Vu,Vv)
2429#endif /* __HEXAGON_ARCH___ >= 60 */
2430
2431#if __HVX_ARCH__ >= 60
2432/* ==========================================================================
2433 Assembly Syntax: Vd32.b=vpacke(Vu32.h,Vv32.h)
2434 C Intrinsic Prototype: HVX_Vector Q6_Vb_vpacke_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2435 Instruction Type: CVI_VP
2436 Execution Slots: SLOT0123
2437 ========================================================================== */
2438
2439#define Q6_Vb_vpacke_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackeb)(Vu,Vv)
2440#endif /* __HEXAGON_ARCH___ >= 60 */
2441
2442#if __HVX_ARCH__ >= 60
2443/* ==========================================================================
2444 Assembly Syntax: Vd32.h=vpacke(Vu32.w,Vv32.w)
2445 C Intrinsic Prototype: HVX_Vector Q6_Vh_vpacke_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2446 Instruction Type: CVI_VP
2447 Execution Slots: SLOT0123
2448 ========================================================================== */
2449
2450#define Q6_Vh_vpacke_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackeh)(Vu,Vv)
2451#endif /* __HEXAGON_ARCH___ >= 60 */
2452
2453#if __HVX_ARCH__ >= 60
2454/* ==========================================================================
2455 Assembly Syntax: Vd32.b=vpack(Vu32.h,Vv32.h):sat
2456 C Intrinsic Prototype: HVX_Vector Q6_Vb_vpack_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2457 Instruction Type: CVI_VP
2458 Execution Slots: SLOT0123
2459 ========================================================================== */
2460
2461#define Q6_Vb_vpack_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackhb_sat)(Vu,Vv)
2462#endif /* __HEXAGON_ARCH___ >= 60 */
2463
2464#if __HVX_ARCH__ >= 60
2465/* ==========================================================================
2466 Assembly Syntax: Vd32.ub=vpack(Vu32.h,Vv32.h):sat
2467 C Intrinsic Prototype: HVX_Vector Q6_Vub_vpack_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2468 Instruction Type: CVI_VP
2469 Execution Slots: SLOT0123
2470 ========================================================================== */
2471
2472#define Q6_Vub_vpack_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackhub_sat)(Vu,Vv)
2473#endif /* __HEXAGON_ARCH___ >= 60 */
2474
2475#if __HVX_ARCH__ >= 60
2476/* ==========================================================================
2477 Assembly Syntax: Vd32.b=vpacko(Vu32.h,Vv32.h)
2478 C Intrinsic Prototype: HVX_Vector Q6_Vb_vpacko_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2479 Instruction Type: CVI_VP
2480 Execution Slots: SLOT0123
2481 ========================================================================== */
2482
2483#define Q6_Vb_vpacko_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackob)(Vu,Vv)
2484#endif /* __HEXAGON_ARCH___ >= 60 */
2485
2486#if __HVX_ARCH__ >= 60
2487/* ==========================================================================
2488 Assembly Syntax: Vd32.h=vpacko(Vu32.w,Vv32.w)
2489 C Intrinsic Prototype: HVX_Vector Q6_Vh_vpacko_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2490 Instruction Type: CVI_VP
2491 Execution Slots: SLOT0123
2492 ========================================================================== */
2493
2494#define Q6_Vh_vpacko_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackoh)(Vu,Vv)
2495#endif /* __HEXAGON_ARCH___ >= 60 */
2496
2497#if __HVX_ARCH__ >= 60
2498/* ==========================================================================
2499 Assembly Syntax: Vd32.h=vpack(Vu32.w,Vv32.w):sat
2500 C Intrinsic Prototype: HVX_Vector Q6_Vh_vpack_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2501 Instruction Type: CVI_VP
2502 Execution Slots: SLOT0123
2503 ========================================================================== */
2504
2505#define Q6_Vh_vpack_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackwh_sat)(Vu,Vv)
2506#endif /* __HEXAGON_ARCH___ >= 60 */
2507
2508#if __HVX_ARCH__ >= 60
2509/* ==========================================================================
2510 Assembly Syntax: Vd32.uh=vpack(Vu32.w,Vv32.w):sat
2511 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vpack_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2512 Instruction Type: CVI_VP
2513 Execution Slots: SLOT0123
2514 ========================================================================== */
2515
2516#define Q6_Vuh_vpack_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackwuh_sat)(Vu,Vv)
2517#endif /* __HEXAGON_ARCH___ >= 60 */
2518
2519#if __HVX_ARCH__ >= 60
2520/* ==========================================================================
2521 Assembly Syntax: Vd32.h=vpopcount(Vu32.h)
2522 C Intrinsic Prototype: HVX_Vector Q6_Vh_vpopcount_Vh(HVX_Vector Vu)
2523 Instruction Type: CVI_VS
2524 Execution Slots: SLOT0123
2525 ========================================================================== */
2526
2527#define Q6_Vh_vpopcount_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpopcounth)(Vu)
2528#endif /* __HEXAGON_ARCH___ >= 60 */
2529
2530#if __HVX_ARCH__ >= 60
2531/* ==========================================================================
2532 Assembly Syntax: Vd32=vrdelta(Vu32,Vv32)
2533 C Intrinsic Prototype: HVX_Vector Q6_V_vrdelta_VV(HVX_Vector Vu, HVX_Vector Vv)
2534 Instruction Type: CVI_VP
2535 Execution Slots: SLOT0123
2536 ========================================================================== */
2537
2538#define Q6_V_vrdelta_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrdelta)(Vu,Vv)
2539#endif /* __HEXAGON_ARCH___ >= 60 */
2540
2541#if __HVX_ARCH__ >= 60
2542/* ==========================================================================
2543 Assembly Syntax: Vd32.w=vrmpy(Vu32.ub,Rt32.b)
2544 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VubRb(HVX_Vector Vu, Word32 Rt)
2545 Instruction Type: CVI_VX
2546 Execution Slots: SLOT23
2547 ========================================================================== */
2548
2549#define Q6_Vw_vrmpy_VubRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybus)(Vu,Rt)
2550#endif /* __HEXAGON_ARCH___ >= 60 */
2551
2552#if __HVX_ARCH__ >= 60
2553/* ==========================================================================
2554 Assembly Syntax: Vx32.w+=vrmpy(Vu32.ub,Rt32.b)
2555 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVubRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2556 Instruction Type: CVI_VX
2557 Execution Slots: SLOT23
2558 ========================================================================== */
2559
2560#define Q6_Vw_vrmpyacc_VwVubRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybus_acc)(Vx,Vu,Rt)
2561#endif /* __HEXAGON_ARCH___ >= 60 */
2562
2563#if __HVX_ARCH__ >= 60
2564/* ==========================================================================
2565 Assembly Syntax: Vdd32.w=vrmpy(Vuu32.ub,Rt32.b,#u1)
2566 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vrmpy_WubRbI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2567 Instruction Type: CVI_VX_DV
2568 Execution Slots: SLOT23
2569 ========================================================================== */
2570
2571#define Q6_Ww_vrmpy_WubRbI(Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusi)(Vuu,Rt,Iu1)
2572#endif /* __HEXAGON_ARCH___ >= 60 */
2573
2574#if __HVX_ARCH__ >= 60
2575/* ==========================================================================
2576 Assembly Syntax: Vxx32.w+=vrmpy(Vuu32.ub,Rt32.b,#u1)
2577 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vrmpyacc_WwWubRbI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2578 Instruction Type: CVI_VX_DV
2579 Execution Slots: SLOT23
2580 ========================================================================== */
2581
2582#define Q6_Ww_vrmpyacc_WwWubRbI(Vxx,Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusi_acc)(Vxx,Vuu,Rt,Iu1)
2583#endif /* __HEXAGON_ARCH___ >= 60 */
2584
2585#if __HVX_ARCH__ >= 60
2586/* ==========================================================================
2587 Assembly Syntax: Vd32.w=vrmpy(Vu32.ub,Vv32.b)
2588 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VubVb(HVX_Vector Vu, HVX_Vector Vv)
2589 Instruction Type: CVI_VX
2590 Execution Slots: SLOT23
2591 ========================================================================== */
2592
2593#define Q6_Vw_vrmpy_VubVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusv)(Vu,Vv)
2594#endif /* __HEXAGON_ARCH___ >= 60 */
2595
2596#if __HVX_ARCH__ >= 60
2597/* ==========================================================================
2598 Assembly Syntax: Vx32.w+=vrmpy(Vu32.ub,Vv32.b)
2599 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVubVb(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2600 Instruction Type: CVI_VX
2601 Execution Slots: SLOT23
2602 ========================================================================== */
2603
2604#define Q6_Vw_vrmpyacc_VwVubVb(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusv_acc)(Vx,Vu,Vv)
2605#endif /* __HEXAGON_ARCH___ >= 60 */
2606
2607#if __HVX_ARCH__ >= 60
2608/* ==========================================================================
2609 Assembly Syntax: Vd32.w=vrmpy(Vu32.b,Vv32.b)
2610 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2611 Instruction Type: CVI_VX
2612 Execution Slots: SLOT23
2613 ========================================================================== */
2614
2615#define Q6_Vw_vrmpy_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybv)(Vu,Vv)
2616#endif /* __HEXAGON_ARCH___ >= 60 */
2617
2618#if __HVX_ARCH__ >= 60
2619/* ==========================================================================
2620 Assembly Syntax: Vx32.w+=vrmpy(Vu32.b,Vv32.b)
2621 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVbVb(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2622 Instruction Type: CVI_VX
2623 Execution Slots: SLOT23
2624 ========================================================================== */
2625
2626#define Q6_Vw_vrmpyacc_VwVbVb(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybv_acc)(Vx,Vu,Vv)
2627#endif /* __HEXAGON_ARCH___ >= 60 */
2628
2629#if __HVX_ARCH__ >= 60
2630/* ==========================================================================
2631 Assembly Syntax: Vd32.uw=vrmpy(Vu32.ub,Rt32.ub)
2632 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpy_VubRub(HVX_Vector Vu, Word32 Rt)
2633 Instruction Type: CVI_VX
2634 Execution Slots: SLOT23
2635 ========================================================================== */
2636
2637#define Q6_Vuw_vrmpy_VubRub(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyub)(Vu,Rt)
2638#endif /* __HEXAGON_ARCH___ >= 60 */
2639
2640#if __HVX_ARCH__ >= 60
2641/* ==========================================================================
2642 Assembly Syntax: Vx32.uw+=vrmpy(Vu32.ub,Rt32.ub)
2643 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpyacc_VuwVubRub(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2644 Instruction Type: CVI_VX
2645 Execution Slots: SLOT23
2646 ========================================================================== */
2647
2648#define Q6_Vuw_vrmpyacc_VuwVubRub(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyub_acc)(Vx,Vu,Rt)
2649#endif /* __HEXAGON_ARCH___ >= 60 */
2650
2651#if __HVX_ARCH__ >= 60
2652/* ==========================================================================
2653 Assembly Syntax: Vdd32.uw=vrmpy(Vuu32.ub,Rt32.ub,#u1)
2654 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrmpy_WubRubI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2655 Instruction Type: CVI_VX_DV
2656 Execution Slots: SLOT23
2657 ========================================================================== */
2658
2659#define Q6_Wuw_vrmpy_WubRubI(Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubi)(Vuu,Rt,Iu1)
2660#endif /* __HEXAGON_ARCH___ >= 60 */
2661
2662#if __HVX_ARCH__ >= 60
2663/* ==========================================================================
2664 Assembly Syntax: Vxx32.uw+=vrmpy(Vuu32.ub,Rt32.ub,#u1)
2665 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrmpyacc_WuwWubRubI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2666 Instruction Type: CVI_VX_DV
2667 Execution Slots: SLOT23
2668 ========================================================================== */
2669
2670#define Q6_Wuw_vrmpyacc_WuwWubRubI(Vxx,Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubi_acc)(Vxx,Vuu,Rt,Iu1)
2671#endif /* __HEXAGON_ARCH___ >= 60 */
2672
2673#if __HVX_ARCH__ >= 60
2674/* ==========================================================================
2675 Assembly Syntax: Vd32.uw=vrmpy(Vu32.ub,Vv32.ub)
2676 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpy_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2677 Instruction Type: CVI_VX
2678 Execution Slots: SLOT23
2679 ========================================================================== */
2680
2681#define Q6_Vuw_vrmpy_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubv)(Vu,Vv)
2682#endif /* __HEXAGON_ARCH___ >= 60 */
2683
2684#if __HVX_ARCH__ >= 60
2685/* ==========================================================================
2686 Assembly Syntax: Vx32.uw+=vrmpy(Vu32.ub,Vv32.ub)
2687 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpyacc_VuwVubVub(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2688 Instruction Type: CVI_VX
2689 Execution Slots: SLOT23
2690 ========================================================================== */
2691
2692#define Q6_Vuw_vrmpyacc_VuwVubVub(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubv_acc)(Vx,Vu,Vv)
2693#endif /* __HEXAGON_ARCH___ >= 60 */
2694
2695#if __HVX_ARCH__ >= 60
2696/* ==========================================================================
2697 Assembly Syntax: Vd32=vror(Vu32,Rt32)
2698 C Intrinsic Prototype: HVX_Vector Q6_V_vror_VR(HVX_Vector Vu, Word32 Rt)
2699 Instruction Type: CVI_VP
2700 Execution Slots: SLOT0123
2701 ========================================================================== */
2702
2703#define Q6_V_vror_VR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vror)(Vu,Rt)
2704#endif /* __HEXAGON_ARCH___ >= 60 */
2705
2706#if __HVX_ARCH__ >= 60
2707/* ==========================================================================
2708 Assembly Syntax: Vd32.b=vround(Vu32.h,Vv32.h):sat
2709 C Intrinsic Prototype: HVX_Vector Q6_Vb_vround_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2710 Instruction Type: CVI_VS
2711 Execution Slots: SLOT0123
2712 ========================================================================== */
2713
2714#define Q6_Vb_vround_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundhb)(Vu,Vv)
2715#endif /* __HEXAGON_ARCH___ >= 60 */
2716
2717#if __HVX_ARCH__ >= 60
2718/* ==========================================================================
2719 Assembly Syntax: Vd32.ub=vround(Vu32.h,Vv32.h):sat
2720 C Intrinsic Prototype: HVX_Vector Q6_Vub_vround_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2721 Instruction Type: CVI_VS
2722 Execution Slots: SLOT0123
2723 ========================================================================== */
2724
2725#define Q6_Vub_vround_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundhub)(Vu,Vv)
2726#endif /* __HEXAGON_ARCH___ >= 60 */
2727
2728#if __HVX_ARCH__ >= 60
2729/* ==========================================================================
2730 Assembly Syntax: Vd32.h=vround(Vu32.w,Vv32.w):sat
2731 C Intrinsic Prototype: HVX_Vector Q6_Vh_vround_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2732 Instruction Type: CVI_VS
2733 Execution Slots: SLOT0123
2734 ========================================================================== */
2735
2736#define Q6_Vh_vround_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundwh)(Vu,Vv)
2737#endif /* __HEXAGON_ARCH___ >= 60 */
2738
2739#if __HVX_ARCH__ >= 60
2740/* ==========================================================================
2741 Assembly Syntax: Vd32.uh=vround(Vu32.w,Vv32.w):sat
2742 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vround_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2743 Instruction Type: CVI_VS
2744 Execution Slots: SLOT0123
2745 ========================================================================== */
2746
2747#define Q6_Vuh_vround_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundwuh)(Vu,Vv)
2748#endif /* __HEXAGON_ARCH___ >= 60 */
2749
2750#if __HVX_ARCH__ >= 60
2751/* ==========================================================================
2752 Assembly Syntax: Vdd32.uw=vrsad(Vuu32.ub,Rt32.ub,#u1)
2753 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrsad_WubRubI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2754 Instruction Type: CVI_VX_DV
2755 Execution Slots: SLOT23
2756 ========================================================================== */
2757
2758#define Q6_Wuw_vrsad_WubRubI(Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrsadubi)(Vuu,Rt,Iu1)
2759#endif /* __HEXAGON_ARCH___ >= 60 */
2760
2761#if __HVX_ARCH__ >= 60
2762/* ==========================================================================
2763 Assembly Syntax: Vxx32.uw+=vrsad(Vuu32.ub,Rt32.ub,#u1)
2764 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrsadacc_WuwWubRubI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2765 Instruction Type: CVI_VX_DV
2766 Execution Slots: SLOT23
2767 ========================================================================== */
2768
2769#define Q6_Wuw_vrsadacc_WuwWubRubI(Vxx,Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrsadubi_acc)(Vxx,Vuu,Rt,Iu1)
2770#endif /* __HEXAGON_ARCH___ >= 60 */
2771
2772#if __HVX_ARCH__ >= 60
2773/* ==========================================================================
2774 Assembly Syntax: Vd32.ub=vsat(Vu32.h,Vv32.h)
2775 C Intrinsic Prototype: HVX_Vector Q6_Vub_vsat_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2776 Instruction Type: CVI_VA
2777 Execution Slots: SLOT0123
2778 ========================================================================== */
2779
2780#define Q6_Vub_vsat_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsathub)(Vu,Vv)
2781#endif /* __HEXAGON_ARCH___ >= 60 */
2782
2783#if __HVX_ARCH__ >= 60
2784/* ==========================================================================
2785 Assembly Syntax: Vd32.h=vsat(Vu32.w,Vv32.w)
2786 C Intrinsic Prototype: HVX_Vector Q6_Vh_vsat_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2787 Instruction Type: CVI_VA
2788 Execution Slots: SLOT0123
2789 ========================================================================== */
2790
2791#define Q6_Vh_vsat_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatwh)(Vu,Vv)
2792#endif /* __HEXAGON_ARCH___ >= 60 */
2793
2794#if __HVX_ARCH__ >= 60
2795/* ==========================================================================
2796 Assembly Syntax: Vdd32.h=vsxt(Vu32.b)
2797 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsxt_Vb(HVX_Vector Vu)
2798 Instruction Type: CVI_VA_DV
2799 Execution Slots: SLOT0123
2800 ========================================================================== */
2801
2802#define Q6_Wh_vsxt_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsb)(Vu)
2803#endif /* __HEXAGON_ARCH___ >= 60 */
2804
2805#if __HVX_ARCH__ >= 60
2806/* ==========================================================================
2807 Assembly Syntax: Vdd32.w=vsxt(Vu32.h)
2808 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsxt_Vh(HVX_Vector Vu)
2809 Instruction Type: CVI_VA_DV
2810 Execution Slots: SLOT0123
2811 ========================================================================== */
2812
2813#define Q6_Ww_vsxt_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsh)(Vu)
2814#endif /* __HEXAGON_ARCH___ >= 60 */
2815
2816#if __HVX_ARCH__ >= 60
2817/* ==========================================================================
2818 Assembly Syntax: Vd32.h=vshuffe(Vu32.h,Vv32.h)
2819 C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuffe_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2820 Instruction Type: CVI_VA
2821 Execution Slots: SLOT0123
2822 ========================================================================== */
2823
2824#define Q6_Vh_vshuffe_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufeh)(Vu,Vv)
2825#endif /* __HEXAGON_ARCH___ >= 60 */
2826
2827#if __HVX_ARCH__ >= 60
2828/* ==========================================================================
2829 Assembly Syntax: Vd32.b=vshuff(Vu32.b)
2830 C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuff_Vb(HVX_Vector Vu)
2831 Instruction Type: CVI_VP
2832 Execution Slots: SLOT0123
2833 ========================================================================== */
2834
2835#define Q6_Vb_vshuff_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffb)(Vu)
2836#endif /* __HEXAGON_ARCH___ >= 60 */
2837
2838#if __HVX_ARCH__ >= 60
2839/* ==========================================================================
2840 Assembly Syntax: Vd32.b=vshuffe(Vu32.b,Vv32.b)
2841 C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuffe_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2842 Instruction Type: CVI_VA
2843 Execution Slots: SLOT0123
2844 ========================================================================== */
2845
2846#define Q6_Vb_vshuffe_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffeb)(Vu,Vv)
2847#endif /* __HEXAGON_ARCH___ >= 60 */
2848
2849#if __HVX_ARCH__ >= 60
2850/* ==========================================================================
2851 Assembly Syntax: Vd32.h=vshuff(Vu32.h)
2852 C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuff_Vh(HVX_Vector Vu)
2853 Instruction Type: CVI_VP
2854 Execution Slots: SLOT0123
2855 ========================================================================== */
2856
2857#define Q6_Vh_vshuff_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffh)(Vu)
2858#endif /* __HEXAGON_ARCH___ >= 60 */
2859
2860#if __HVX_ARCH__ >= 60
2861/* ==========================================================================
2862 Assembly Syntax: Vd32.b=vshuffo(Vu32.b,Vv32.b)
2863 C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuffo_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2864 Instruction Type: CVI_VA
2865 Execution Slots: SLOT0123
2866 ========================================================================== */
2867
2868#define Q6_Vb_vshuffo_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffob)(Vu,Vv)
2869#endif /* __HEXAGON_ARCH___ >= 60 */
2870
2871#if __HVX_ARCH__ >= 60
2872/* ==========================================================================
2873 Assembly Syntax: Vdd32=vshuff(Vu32,Vv32,Rt8)
2874 C Intrinsic Prototype: HVX_VectorPair Q6_W_vshuff_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
2875 Instruction Type: CVI_VP_VS
2876 Execution Slots: SLOT0123
2877 ========================================================================== */
2878
2879#define Q6_W_vshuff_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffvdd)(Vu,Vv,Rt)
2880#endif /* __HEXAGON_ARCH___ >= 60 */
2881
2882#if __HVX_ARCH__ >= 60
2883/* ==========================================================================
2884 Assembly Syntax: Vdd32.b=vshuffoe(Vu32.b,Vv32.b)
2885 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vshuffoe_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2886 Instruction Type: CVI_VA_DV
2887 Execution Slots: SLOT0123
2888 ========================================================================== */
2889
2890#define Q6_Wb_vshuffoe_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoeb)(Vu,Vv)
2891#endif /* __HEXAGON_ARCH___ >= 60 */
2892
2893#if __HVX_ARCH__ >= 60
2894/* ==========================================================================
2895 Assembly Syntax: Vdd32.h=vshuffoe(Vu32.h,Vv32.h)
2896 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vshuffoe_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2897 Instruction Type: CVI_VA_DV
2898 Execution Slots: SLOT0123
2899 ========================================================================== */
2900
2901#define Q6_Wh_vshuffoe_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoeh)(Vu,Vv)
2902#endif /* __HEXAGON_ARCH___ >= 60 */
2903
2904#if __HVX_ARCH__ >= 60
2905/* ==========================================================================
2906 Assembly Syntax: Vd32.h=vshuffo(Vu32.h,Vv32.h)
2907 C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuffo_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2908 Instruction Type: CVI_VA
2909 Execution Slots: SLOT0123
2910 ========================================================================== */
2911
2912#define Q6_Vh_vshuffo_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoh)(Vu,Vv)
2913#endif /* __HEXAGON_ARCH___ >= 60 */
2914
2915#if __HVX_ARCH__ >= 60
2916/* ==========================================================================
2917 Assembly Syntax: Vd32.b=vsub(Vu32.b,Vv32.b)
2918 C Intrinsic Prototype: HVX_Vector Q6_Vb_vsub_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2919 Instruction Type: CVI_VA
2920 Execution Slots: SLOT0123
2921 ========================================================================== */
2922
2923#define Q6_Vb_vsub_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubb)(Vu,Vv)
2924#endif /* __HEXAGON_ARCH___ >= 60 */
2925
2926#if __HVX_ARCH__ >= 60
2927/* ==========================================================================
2928 Assembly Syntax: Vdd32.b=vsub(Vuu32.b,Vvv32.b)
2929 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vsub_WbWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
2930 Instruction Type: CVI_VA_DV
2931 Execution Slots: SLOT0123
2932 ========================================================================== */
2933
2934#define Q6_Wb_vsub_WbWb(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubb_dv)(Vuu,Vvv)
2935#endif /* __HEXAGON_ARCH___ >= 60 */
2936
2937#if __HVX_ARCH__ >= 60
2938/* ==========================================================================
2939 Assembly Syntax: if (!Qv4) Vx32.b-=Vu32.b
2940 C Intrinsic Prototype: HVX_Vector Q6_Vb_condnac_QnVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2941 Instruction Type: CVI_VA
2942 Execution Slots: SLOT0123
2943 ========================================================================== */
2944
2945#define Q6_Vb_condnac_QnVbVb(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
2946#endif /* __HEXAGON_ARCH___ >= 60 */
2947
2948#if __HVX_ARCH__ >= 60
2949/* ==========================================================================
2950 Assembly Syntax: if (Qv4) Vx32.b-=Vu32.b
2951 C Intrinsic Prototype: HVX_Vector Q6_Vb_condnac_QVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2952 Instruction Type: CVI_VA
2953 Execution Slots: SLOT0123
2954 ========================================================================== */
2955
2956#define Q6_Vb_condnac_QVbVb(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
2957#endif /* __HEXAGON_ARCH___ >= 60 */
2958
2959#if __HVX_ARCH__ >= 60
2960/* ==========================================================================
2961 Assembly Syntax: Vd32.h=vsub(Vu32.h,Vv32.h)
2962 C Intrinsic Prototype: HVX_Vector Q6_Vh_vsub_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2963 Instruction Type: CVI_VA
2964 Execution Slots: SLOT0123
2965 ========================================================================== */
2966
2967#define Q6_Vh_vsub_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubh)(Vu,Vv)
2968#endif /* __HEXAGON_ARCH___ >= 60 */
2969
2970#if __HVX_ARCH__ >= 60
2971/* ==========================================================================
2972 Assembly Syntax: Vdd32.h=vsub(Vuu32.h,Vvv32.h)
2973 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_WhWh(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
2974 Instruction Type: CVI_VA_DV
2975 Execution Slots: SLOT0123
2976 ========================================================================== */
2977
2978#define Q6_Wh_vsub_WhWh(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubh_dv)(Vuu,Vvv)
2979#endif /* __HEXAGON_ARCH___ >= 60 */
2980
2981#if __HVX_ARCH__ >= 60
2982/* ==========================================================================
2983 Assembly Syntax: if (!Qv4) Vx32.h-=Vu32.h
2984 C Intrinsic Prototype: HVX_Vector Q6_Vh_condnac_QnVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2985 Instruction Type: CVI_VA
2986 Execution Slots: SLOT0123
2987 ========================================================================== */
2988
2989#define Q6_Vh_condnac_QnVhVh(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
2990#endif /* __HEXAGON_ARCH___ >= 60 */
2991
2992#if __HVX_ARCH__ >= 60
2993/* ==========================================================================
2994 Assembly Syntax: if (Qv4) Vx32.h-=Vu32.h
2995 C Intrinsic Prototype: HVX_Vector Q6_Vh_condnac_QVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2996 Instruction Type: CVI_VA
2997 Execution Slots: SLOT0123
2998 ========================================================================== */
2999
3000#define Q6_Vh_condnac_QVhVh(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
3001#endif /* __HEXAGON_ARCH___ >= 60 */
3002
3003#if __HVX_ARCH__ >= 60
3004/* ==========================================================================
3005 Assembly Syntax: Vd32.h=vsub(Vu32.h,Vv32.h):sat
3006 C Intrinsic Prototype: HVX_Vector Q6_Vh_vsub_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
3007 Instruction Type: CVI_VA
3008 Execution Slots: SLOT0123
3009 ========================================================================== */
3010
3011#define Q6_Vh_vsub_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhsat)(Vu,Vv)
3012#endif /* __HEXAGON_ARCH___ >= 60 */
3013
3014#if __HVX_ARCH__ >= 60
3015/* ==========================================================================
3016 Assembly Syntax: Vdd32.h=vsub(Vuu32.h,Vvv32.h):sat
3017 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_WhWh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3018 Instruction Type: CVI_VA_DV
3019 Execution Slots: SLOT0123
3020 ========================================================================== */
3021
3022#define Q6_Wh_vsub_WhWh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhsat_dv)(Vuu,Vvv)
3023#endif /* __HEXAGON_ARCH___ >= 60 */
3024
3025#if __HVX_ARCH__ >= 60
3026/* ==========================================================================
3027 Assembly Syntax: Vdd32.w=vsub(Vu32.h,Vv32.h)
3028 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_VhVh(HVX_Vector Vu, HVX_Vector Vv)
3029 Instruction Type: CVI_VX_DV
3030 Execution Slots: SLOT23
3031 ========================================================================== */
3032
3033#define Q6_Ww_vsub_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhw)(Vu,Vv)
3034#endif /* __HEXAGON_ARCH___ >= 60 */
3035
3036#if __HVX_ARCH__ >= 60
3037/* ==========================================================================
3038 Assembly Syntax: Vdd32.h=vsub(Vu32.ub,Vv32.ub)
3039 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_VubVub(HVX_Vector Vu, HVX_Vector Vv)
3040 Instruction Type: CVI_VX_DV
3041 Execution Slots: SLOT23
3042 ========================================================================== */
3043
3044#define Q6_Wh_vsub_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububh)(Vu,Vv)
3045#endif /* __HEXAGON_ARCH___ >= 60 */
3046
3047#if __HVX_ARCH__ >= 60
3048/* ==========================================================================
3049 Assembly Syntax: Vd32.ub=vsub(Vu32.ub,Vv32.ub):sat
3050 C Intrinsic Prototype: HVX_Vector Q6_Vub_vsub_VubVub_sat(HVX_Vector Vu, HVX_Vector Vv)
3051 Instruction Type: CVI_VA
3052 Execution Slots: SLOT0123
3053 ========================================================================== */
3054
3055#define Q6_Vub_vsub_VubVub_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububsat)(Vu,Vv)
3056#endif /* __HEXAGON_ARCH___ >= 60 */
3057
3058#if __HVX_ARCH__ >= 60
3059/* ==========================================================================
3060 Assembly Syntax: Vdd32.ub=vsub(Vuu32.ub,Vvv32.ub):sat
3061 C Intrinsic Prototype: HVX_VectorPair Q6_Wub_vsub_WubWub_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3062 Instruction Type: CVI_VA_DV
3063 Execution Slots: SLOT0123
3064 ========================================================================== */
3065
3066#define Q6_Wub_vsub_WubWub_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububsat_dv)(Vuu,Vvv)
3067#endif /* __HEXAGON_ARCH___ >= 60 */
3068
3069#if __HVX_ARCH__ >= 60
3070/* ==========================================================================
3071 Assembly Syntax: Vd32.uh=vsub(Vu32.uh,Vv32.uh):sat
3072 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vsub_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
3073 Instruction Type: CVI_VA
3074 Execution Slots: SLOT0123
3075 ========================================================================== */
3076
3077#define Q6_Vuh_vsub_VuhVuh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhsat)(Vu,Vv)
3078#endif /* __HEXAGON_ARCH___ >= 60 */
3079
3080#if __HVX_ARCH__ >= 60
3081/* ==========================================================================
3082 Assembly Syntax: Vdd32.uh=vsub(Vuu32.uh,Vvv32.uh):sat
3083 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vsub_WuhWuh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3084 Instruction Type: CVI_VA_DV
3085 Execution Slots: SLOT0123
3086 ========================================================================== */
3087
3088#define Q6_Wuh_vsub_WuhWuh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhsat_dv)(Vuu,Vvv)
3089#endif /* __HEXAGON_ARCH___ >= 60 */
3090
3091#if __HVX_ARCH__ >= 60
3092/* ==========================================================================
3093 Assembly Syntax: Vdd32.w=vsub(Vu32.uh,Vv32.uh)
3094 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
3095 Instruction Type: CVI_VX_DV
3096 Execution Slots: SLOT23
3097 ========================================================================== */
3098
3099#define Q6_Ww_vsub_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhw)(Vu,Vv)
3100#endif /* __HEXAGON_ARCH___ >= 60 */
3101
3102#if __HVX_ARCH__ >= 60
3103/* ==========================================================================
3104 Assembly Syntax: Vd32.w=vsub(Vu32.w,Vv32.w)
3105 C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVw(HVX_Vector Vu, HVX_Vector Vv)
3106 Instruction Type: CVI_VA
3107 Execution Slots: SLOT0123
3108 ========================================================================== */
3109
3110#define Q6_Vw_vsub_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubw)(Vu,Vv)
3111#endif /* __HEXAGON_ARCH___ >= 60 */
3112
3113#if __HVX_ARCH__ >= 60
3114/* ==========================================================================
3115 Assembly Syntax: Vdd32.w=vsub(Vuu32.w,Vvv32.w)
3116 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_WwWw(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3117 Instruction Type: CVI_VA_DV
3118 Execution Slots: SLOT0123
3119 ========================================================================== */
3120
3121#define Q6_Ww_vsub_WwWw(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubw_dv)(Vuu,Vvv)
3122#endif /* __HEXAGON_ARCH___ >= 60 */
3123
3124#if __HVX_ARCH__ >= 60
3125/* ==========================================================================
3126 Assembly Syntax: if (!Qv4) Vx32.w-=Vu32.w
3127 C Intrinsic Prototype: HVX_Vector Q6_Vw_condnac_QnVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
3128 Instruction Type: CVI_VA
3129 Execution Slots: SLOT0123
3130 ========================================================================== */
3131
3132#define Q6_Vw_condnac_QnVwVw(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
3133#endif /* __HEXAGON_ARCH___ >= 60 */
3134
3135#if __HVX_ARCH__ >= 60
3136/* ==========================================================================
3137 Assembly Syntax: if (Qv4) Vx32.w-=Vu32.w
3138 C Intrinsic Prototype: HVX_Vector Q6_Vw_condnac_QVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
3139 Instruction Type: CVI_VA
3140 Execution Slots: SLOT0123
3141 ========================================================================== */
3142
3143#define Q6_Vw_condnac_QVwVw(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
3144#endif /* __HEXAGON_ARCH___ >= 60 */
3145
3146#if __HVX_ARCH__ >= 60
3147/* ==========================================================================
3148 Assembly Syntax: Vd32.w=vsub(Vu32.w,Vv32.w):sat
3149 C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
3150 Instruction Type: CVI_VA
3151 Execution Slots: SLOT0123
3152 ========================================================================== */
3153
3154#define Q6_Vw_vsub_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwsat)(Vu,Vv)
3155#endif /* __HEXAGON_ARCH___ >= 60 */
3156
3157#if __HVX_ARCH__ >= 60
3158/* ==========================================================================
3159 Assembly Syntax: Vdd32.w=vsub(Vuu32.w,Vvv32.w):sat
3160 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_WwWw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3161 Instruction Type: CVI_VA_DV
3162 Execution Slots: SLOT0123
3163 ========================================================================== */
3164
3165#define Q6_Ww_vsub_WwWw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwsat_dv)(Vuu,Vvv)
3166#endif /* __HEXAGON_ARCH___ >= 60 */
3167
3168#if __HVX_ARCH__ >= 60
3169/* ==========================================================================
3170 Assembly Syntax: Vdd32=vswap(Qt4,Vu32,Vv32)
3171 C Intrinsic Prototype: HVX_VectorPair Q6_W_vswap_QVV(HVX_VectorPred Qt, HVX_Vector Vu, HVX_Vector Vv)
3172 Instruction Type: CVI_VA_DV
3173 Execution Slots: SLOT0123
3174 ========================================================================== */
3175
3176#define Q6_W_vswap_QVV(Qt,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vswap)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1),Vu,Vv)
3177#endif /* __HEXAGON_ARCH___ >= 60 */
3178
3179#if __HVX_ARCH__ >= 60
3180/* ==========================================================================
3181 Assembly Syntax: Vdd32.h=vtmpy(Vuu32.b,Rt32.b)
3182 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpy_WbRb(HVX_VectorPair Vuu, Word32 Rt)
3183 Instruction Type: CVI_VX_DV
3184 Execution Slots: SLOT23
3185 ========================================================================== */
3186
3187#define Q6_Wh_vtmpy_WbRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyb)(Vuu,Rt)
3188#endif /* __HEXAGON_ARCH___ >= 60 */
3189
3190#if __HVX_ARCH__ >= 60
3191/* ==========================================================================
3192 Assembly Syntax: Vxx32.h+=vtmpy(Vuu32.b,Rt32.b)
3193 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpyacc_WhWbRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3194 Instruction Type: CVI_VX_DV
3195 Execution Slots: SLOT23
3196 ========================================================================== */
3197
3198#define Q6_Wh_vtmpyacc_WhWbRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyb_acc)(Vxx,Vuu,Rt)
3199#endif /* __HEXAGON_ARCH___ >= 60 */
3200
3201#if __HVX_ARCH__ >= 60
3202/* ==========================================================================
3203 Assembly Syntax: Vdd32.h=vtmpy(Vuu32.ub,Rt32.b)
3204 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpy_WubRb(HVX_VectorPair Vuu, Word32 Rt)
3205 Instruction Type: CVI_VX_DV
3206 Execution Slots: SLOT23
3207 ========================================================================== */
3208
3209#define Q6_Wh_vtmpy_WubRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpybus)(Vuu,Rt)
3210#endif /* __HEXAGON_ARCH___ >= 60 */
3211
3212#if __HVX_ARCH__ >= 60
3213/* ==========================================================================
3214 Assembly Syntax: Vxx32.h+=vtmpy(Vuu32.ub,Rt32.b)
3215 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpyacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3216 Instruction Type: CVI_VX_DV
3217 Execution Slots: SLOT23
3218 ========================================================================== */
3219
3220#define Q6_Wh_vtmpyacc_WhWubRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpybus_acc)(Vxx,Vuu,Rt)
3221#endif /* __HEXAGON_ARCH___ >= 60 */
3222
3223#if __HVX_ARCH__ >= 60
3224/* ==========================================================================
3225 Assembly Syntax: Vdd32.w=vtmpy(Vuu32.h,Rt32.b)
3226 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vtmpy_WhRb(HVX_VectorPair Vuu, Word32 Rt)
3227 Instruction Type: CVI_VX_DV
3228 Execution Slots: SLOT23
3229 ========================================================================== */
3230
3231#define Q6_Ww_vtmpy_WhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyhb)(Vuu,Rt)
3232#endif /* __HEXAGON_ARCH___ >= 60 */
3233
3234#if __HVX_ARCH__ >= 60
3235/* ==========================================================================
3236 Assembly Syntax: Vxx32.w+=vtmpy(Vuu32.h,Rt32.b)
3237 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vtmpyacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3238 Instruction Type: CVI_VX_DV
3239 Execution Slots: SLOT23
3240 ========================================================================== */
3241
3242#define Q6_Ww_vtmpyacc_WwWhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyhb_acc)(Vxx,Vuu,Rt)
3243#endif /* __HEXAGON_ARCH___ >= 60 */
3244
3245#if __HVX_ARCH__ >= 60
3246/* ==========================================================================
3247 Assembly Syntax: Vdd32.h=vunpack(Vu32.b)
3248 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vunpack_Vb(HVX_Vector Vu)
3249 Instruction Type: CVI_VP_VS
3250 Execution Slots: SLOT0123
3251 ========================================================================== */
3252
3253#define Q6_Wh_vunpack_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackb)(Vu)
3254#endif /* __HEXAGON_ARCH___ >= 60 */
3255
3256#if __HVX_ARCH__ >= 60
3257/* ==========================================================================
3258 Assembly Syntax: Vdd32.w=vunpack(Vu32.h)
3259 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vunpack_Vh(HVX_Vector Vu)
3260 Instruction Type: CVI_VP_VS
3261 Execution Slots: SLOT0123
3262 ========================================================================== */
3263
3264#define Q6_Ww_vunpack_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackh)(Vu)
3265#endif /* __HEXAGON_ARCH___ >= 60 */
3266
3267#if __HVX_ARCH__ >= 60
3268/* ==========================================================================
3269 Assembly Syntax: Vxx32.h|=vunpacko(Vu32.b)
3270 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vunpackoor_WhVb(HVX_VectorPair Vxx, HVX_Vector Vu)
3271 Instruction Type: CVI_VP_VS
3272 Execution Slots: SLOT0123
3273 ========================================================================== */
3274
3275#define Q6_Wh_vunpackoor_WhVb(Vxx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackob)(Vxx,Vu)
3276#endif /* __HEXAGON_ARCH___ >= 60 */
3277
3278#if __HVX_ARCH__ >= 60
3279/* ==========================================================================
3280 Assembly Syntax: Vxx32.w|=vunpacko(Vu32.h)
3281 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vunpackoor_WwVh(HVX_VectorPair Vxx, HVX_Vector Vu)
3282 Instruction Type: CVI_VP_VS
3283 Execution Slots: SLOT0123
3284 ========================================================================== */
3285
3286#define Q6_Ww_vunpackoor_WwVh(Vxx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackoh)(Vxx,Vu)
3287#endif /* __HEXAGON_ARCH___ >= 60 */
3288
3289#if __HVX_ARCH__ >= 60
3290/* ==========================================================================
3291 Assembly Syntax: Vdd32.uh=vunpack(Vu32.ub)
3292 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vunpack_Vub(HVX_Vector Vu)
3293 Instruction Type: CVI_VP_VS
3294 Execution Slots: SLOT0123
3295 ========================================================================== */
3296
3297#define Q6_Wuh_vunpack_Vub(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackub)(Vu)
3298#endif /* __HEXAGON_ARCH___ >= 60 */
3299
3300#if __HVX_ARCH__ >= 60
3301/* ==========================================================================
3302 Assembly Syntax: Vdd32.uw=vunpack(Vu32.uh)
3303 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vunpack_Vuh(HVX_Vector Vu)
3304 Instruction Type: CVI_VP_VS
3305 Execution Slots: SLOT0123
3306 ========================================================================== */
3307
3308#define Q6_Wuw_vunpack_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackuh)(Vu)
3309#endif /* __HEXAGON_ARCH___ >= 60 */
3310
3311#if __HVX_ARCH__ >= 60
3312/* ==========================================================================
3313 Assembly Syntax: Vd32=vxor(Vu32,Vv32)
3314 C Intrinsic Prototype: HVX_Vector Q6_V_vxor_VV(HVX_Vector Vu, HVX_Vector Vv)
3315 Instruction Type: CVI_VA
3316 Execution Slots: SLOT0123
3317 ========================================================================== */
3318
3319#define Q6_V_vxor_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vxor)(Vu,Vv)
3320#endif /* __HEXAGON_ARCH___ >= 60 */
3321
3322#if __HVX_ARCH__ >= 60
3323/* ==========================================================================
3324 Assembly Syntax: Vdd32.uh=vzxt(Vu32.ub)
3325 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vzxt_Vub(HVX_Vector Vu)
3326 Instruction Type: CVI_VA_DV
3327 Execution Slots: SLOT0123
3328 ========================================================================== */
3329
3330#define Q6_Wuh_vzxt_Vub(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vzb)(Vu)
3331#endif /* __HEXAGON_ARCH___ >= 60 */
3332
3333#if __HVX_ARCH__ >= 60
3334/* ==========================================================================
3335 Assembly Syntax: Vdd32.uw=vzxt(Vu32.uh)
3336 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vzxt_Vuh(HVX_Vector Vu)
3337 Instruction Type: CVI_VA_DV
3338 Execution Slots: SLOT0123
3339 ========================================================================== */
3340
3341#define Q6_Wuw_vzxt_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vzh)(Vu)
3342#endif /* __HEXAGON_ARCH___ >= 60 */
3343
3344#if __HVX_ARCH__ >= 62
3345/* ==========================================================================
3346 Assembly Syntax: Vd32.b=vsplat(Rt32)
3347 C Intrinsic Prototype: HVX_Vector Q6_Vb_vsplat_R(Word32 Rt)
3348 Instruction Type: CVI_VX_LATE
3349 Execution Slots: SLOT23
3350 ========================================================================== */
3351
3352#define Q6_Vb_vsplat_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplatb)(Rt)
3353#endif /* __HEXAGON_ARCH___ >= 62 */
3354
3355#if __HVX_ARCH__ >= 62
3356/* ==========================================================================
3357 Assembly Syntax: Vd32.h=vsplat(Rt32)
3358 C Intrinsic Prototype: HVX_Vector Q6_Vh_vsplat_R(Word32 Rt)
3359 Instruction Type: CVI_VX_LATE
3360 Execution Slots: SLOT23
3361 ========================================================================== */
3362
3363#define Q6_Vh_vsplat_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplath)(Rt)
3364#endif /* __HEXAGON_ARCH___ >= 62 */
3365
3366#if __HVX_ARCH__ >= 62
3367/* ==========================================================================
3368 Assembly Syntax: Qd4=vsetq2(Rt32)
3369 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vsetq2_R(Word32 Rt)
3370 Instruction Type: CVI_VP
3371 Execution Slots: SLOT0123
3372 ========================================================================== */
3373
3374#define Q6_Q_vsetq2_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_scalar2v2)(Rt)),-1)
3375#endif /* __HEXAGON_ARCH___ >= 62 */
3376
3377#if __HVX_ARCH__ >= 62
3378/* ==========================================================================
3379 Assembly Syntax: Qd4.b=vshuffe(Qs4.h,Qt4.h)
3380 C Intrinsic Prototype: HVX_VectorPred Q6_Qb_vshuffe_QhQh(HVX_VectorPred Qs, HVX_VectorPred Qt)
3381 Instruction Type: CVI_VA_DV
3382 Execution Slots: SLOT0123
3383 ========================================================================== */
3384
3385#define Q6_Qb_vshuffe_QhQh(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_shuffeqh)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
3386#endif /* __HEXAGON_ARCH___ >= 62 */
3387
3388#if __HVX_ARCH__ >= 62
3389/* ==========================================================================
3390 Assembly Syntax: Qd4.h=vshuffe(Qs4.w,Qt4.w)
3391 C Intrinsic Prototype: HVX_VectorPred Q6_Qh_vshuffe_QwQw(HVX_VectorPred Qs, HVX_VectorPred Qt)
3392 Instruction Type: CVI_VA_DV
3393 Execution Slots: SLOT0123
3394 ========================================================================== */
3395
3396#define Q6_Qh_vshuffe_QwQw(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_shuffeqw)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
3397#endif /* __HEXAGON_ARCH___ >= 62 */
3398
3399#if __HVX_ARCH__ >= 62
3400/* ==========================================================================
3401 Assembly Syntax: Vd32.b=vadd(Vu32.b,Vv32.b):sat
3402 C Intrinsic Prototype: HVX_Vector Q6_Vb_vadd_VbVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3403 Instruction Type: CVI_VA
3404 Execution Slots: SLOT0123
3405 ========================================================================== */
3406
3407#define Q6_Vb_vadd_VbVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbsat)(Vu,Vv)
3408#endif /* __HEXAGON_ARCH___ >= 62 */
3409
3410#if __HVX_ARCH__ >= 62
3411/* ==========================================================================
3412 Assembly Syntax: Vdd32.b=vadd(Vuu32.b,Vvv32.b):sat
3413 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vadd_WbWb_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3414 Instruction Type: CVI_VA_DV
3415 Execution Slots: SLOT0123
3416 ========================================================================== */
3417
3418#define Q6_Wb_vadd_WbWb_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbsat_dv)(Vuu,Vvv)
3419#endif /* __HEXAGON_ARCH___ >= 62 */
3420
3421#if __HVX_ARCH__ >= 62
3422/* ==========================================================================
3423 Assembly Syntax: Vd32.w=vadd(Vu32.w,Vv32.w,Qx4):carry
3424 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVwQ_carry(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred* Qx)
3425 Instruction Type: CVI_VA
3426 Execution Slots: SLOT0123
3427 ========================================================================== */
3428
3429#define Q6_Vw_vadd_VwVwQ_carry(Vu,Vv,Qx) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddcarry)(Vu,Vv,Qx)
3430#endif /* __HEXAGON_ARCH___ >= 62 */
3431
3432#if __HVX_ARCH__ >= 62
3433/* ==========================================================================
3434 Assembly Syntax: Vd32.h=vadd(vclb(Vu32.h),Vv32.h)
3435 C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_vclb_VhVh(HVX_Vector Vu, HVX_Vector Vv)
3436 Instruction Type: CVI_VS
3437 Execution Slots: SLOT0123
3438 ========================================================================== */
3439
3440#define Q6_Vh_vadd_vclb_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddclbh)(Vu,Vv)
3441#endif /* __HEXAGON_ARCH___ >= 62 */
3442
3443#if __HVX_ARCH__ >= 62
3444/* ==========================================================================
3445 Assembly Syntax: Vd32.w=vadd(vclb(Vu32.w),Vv32.w)
3446 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_vclb_VwVw(HVX_Vector Vu, HVX_Vector Vv)
3447 Instruction Type: CVI_VS
3448 Execution Slots: SLOT0123
3449 ========================================================================== */
3450
3451#define Q6_Vw_vadd_vclb_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddclbw)(Vu,Vv)
3452#endif /* __HEXAGON_ARCH___ >= 62 */
3453
3454#if __HVX_ARCH__ >= 62
3455/* ==========================================================================
3456 Assembly Syntax: Vxx32.w+=vadd(Vu32.h,Vv32.h)
3457 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vaddacc_WwVhVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3458 Instruction Type: CVI_VX_DV
3459 Execution Slots: SLOT23
3460 ========================================================================== */
3461
3462#define Q6_Ww_vaddacc_WwVhVh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhw_acc)(Vxx,Vu,Vv)
3463#endif /* __HEXAGON_ARCH___ >= 62 */
3464
3465#if __HVX_ARCH__ >= 62
3466/* ==========================================================================
3467 Assembly Syntax: Vxx32.h+=vadd(Vu32.ub,Vv32.ub)
3468 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vaddacc_WhVubVub(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3469 Instruction Type: CVI_VX_DV
3470 Execution Slots: SLOT23
3471 ========================================================================== */
3472
3473#define Q6_Wh_vaddacc_WhVubVub(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubh_acc)(Vxx,Vu,Vv)
3474#endif /* __HEXAGON_ARCH___ >= 62 */
3475
3476#if __HVX_ARCH__ >= 62
3477/* ==========================================================================
3478 Assembly Syntax: Vd32.ub=vadd(Vu32.ub,Vv32.b):sat
3479 C Intrinsic Prototype: HVX_Vector Q6_Vub_vadd_VubVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3480 Instruction Type: CVI_VA
3481 Execution Slots: SLOT0123
3482 ========================================================================== */
3483
3484#define Q6_Vub_vadd_VubVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddububb_sat)(Vu,Vv)
3485#endif /* __HEXAGON_ARCH___ >= 62 */
3486
3487#if __HVX_ARCH__ >= 62
3488/* ==========================================================================
3489 Assembly Syntax: Vxx32.w+=vadd(Vu32.uh,Vv32.uh)
3490 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vaddacc_WwVuhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3491 Instruction Type: CVI_VX_DV
3492 Execution Slots: SLOT23
3493 ========================================================================== */
3494
3495#define Q6_Ww_vaddacc_WwVuhVuh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhw_acc)(Vxx,Vu,Vv)
3496#endif /* __HEXAGON_ARCH___ >= 62 */
3497
3498#if __HVX_ARCH__ >= 62
3499/* ==========================================================================
3500 Assembly Syntax: Vd32.uw=vadd(Vu32.uw,Vv32.uw):sat
3501 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vadd_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3502 Instruction Type: CVI_VA
3503 Execution Slots: SLOT0123
3504 ========================================================================== */
3505
3506#define Q6_Vuw_vadd_VuwVuw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduwsat)(Vu,Vv)
3507#endif /* __HEXAGON_ARCH___ >= 62 */
3508
3509#if __HVX_ARCH__ >= 62
3510/* ==========================================================================
3511 Assembly Syntax: Vdd32.uw=vadd(Vuu32.uw,Vvv32.uw):sat
3512 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vadd_WuwWuw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3513 Instruction Type: CVI_VA_DV
3514 Execution Slots: SLOT0123
3515 ========================================================================== */
3516
3517#define Q6_Wuw_vadd_WuwWuw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduwsat_dv)(Vuu,Vvv)
3518#endif /* __HEXAGON_ARCH___ >= 62 */
3519
3520#if __HVX_ARCH__ >= 62
3521/* ==========================================================================
3522 Assembly Syntax: Vd32=vand(!Qu4,Rt32)
3523 C Intrinsic Prototype: HVX_Vector Q6_V_vand_QnR(HVX_VectorPred Qu, Word32 Rt)
3524 Instruction Type: CVI_VX_LATE
3525 Execution Slots: SLOT23
3526 ========================================================================== */
3527
3528#define Q6_V_vand_QnR(Qu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandnqrt)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qu),-1),Rt)
3529#endif /* __HEXAGON_ARCH___ >= 62 */
3530
3531#if __HVX_ARCH__ >= 62
3532/* ==========================================================================
3533 Assembly Syntax: Vx32|=vand(!Qu4,Rt32)
3534 C Intrinsic Prototype: HVX_Vector Q6_V_vandor_VQnR(HVX_Vector Vx, HVX_VectorPred Qu, Word32 Rt)
3535 Instruction Type: CVI_VX_LATE
3536 Execution Slots: SLOT23
3537 ========================================================================== */
3538
3539#define Q6_V_vandor_VQnR(Vx,Qu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandnqrt_acc)(Vx,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qu),-1),Rt)
3540#endif /* __HEXAGON_ARCH___ >= 62 */
3541
3542#if __HVX_ARCH__ >= 62
3543/* ==========================================================================
3544 Assembly Syntax: Vd32=vand(!Qv4,Vu32)
3545 C Intrinsic Prototype: HVX_Vector Q6_V_vand_QnV(HVX_VectorPred Qv, HVX_Vector Vu)
3546 Instruction Type: CVI_VA
3547 Execution Slots: SLOT0123
3548 ========================================================================== */
3549
3550#define Q6_V_vand_QnV(Qv,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvnqv)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vu)
3551#endif /* __HEXAGON_ARCH___ >= 62 */
3552
3553#if __HVX_ARCH__ >= 62
3554/* ==========================================================================
3555 Assembly Syntax: Vd32=vand(Qv4,Vu32)
3556 C Intrinsic Prototype: HVX_Vector Q6_V_vand_QV(HVX_VectorPred Qv, HVX_Vector Vu)
3557 Instruction Type: CVI_VA
3558 Execution Slots: SLOT0123
3559 ========================================================================== */
3560
3561#define Q6_V_vand_QV(Qv,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvqv)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vu)
3562#endif /* __HEXAGON_ARCH___ >= 62 */
3563
3564#if __HVX_ARCH__ >= 62
3565/* ==========================================================================
3566 Assembly Syntax: Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):sat
3567 C Intrinsic Prototype: HVX_Vector Q6_Vb_vasr_VhVhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3568 Instruction Type: CVI_VS
3569 Execution Slots: SLOT0123
3570 ========================================================================== */
3571
3572#define Q6_Vb_vasr_VhVhR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhbsat)(Vu,Vv,Rt)
3573#endif /* __HEXAGON_ARCH___ >= 62 */
3574
3575#if __HVX_ARCH__ >= 62
3576/* ==========================================================================
3577 Assembly Syntax: Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):rnd:sat
3578 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VuwVuwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3579 Instruction Type: CVI_VS
3580 Execution Slots: SLOT0123
3581 ========================================================================== */
3582
3583#define Q6_Vuh_vasr_VuwVuwR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruwuhrndsat)(Vu,Vv,Rt)
3584#endif /* __HEXAGON_ARCH___ >= 62 */
3585
3586#if __HVX_ARCH__ >= 62
3587/* ==========================================================================
3588 Assembly Syntax: Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
3589 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VwVwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3590 Instruction Type: CVI_VS
3591 Execution Slots: SLOT0123
3592 ========================================================================== */
3593
3594#define Q6_Vuh_vasr_VwVwR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwuhrndsat)(Vu,Vv,Rt)
3595#endif /* __HEXAGON_ARCH___ >= 62 */
3596
3597#if __HVX_ARCH__ >= 62
3598/* ==========================================================================
3599 Assembly Syntax: Vd32.ub=vlsr(Vu32.ub,Rt32)
3600 C Intrinsic Prototype: HVX_Vector Q6_Vub_vlsr_VubR(HVX_Vector Vu, Word32 Rt)
3601 Instruction Type: CVI_VS
3602 Execution Slots: SLOT0123
3603 ========================================================================== */
3604
3605#define Q6_Vub_vlsr_VubR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrb)(Vu,Rt)
3606#endif /* __HEXAGON_ARCH___ >= 62 */
3607
3608#if __HVX_ARCH__ >= 62
3609/* ==========================================================================
3610 Assembly Syntax: Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8):nomatch
3611 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbR_nomatch(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3612 Instruction Type: CVI_VP
3613 Execution Slots: SLOT0123
3614 ========================================================================== */
3615
3616#define Q6_Vb_vlut32_VbVbR_nomatch(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_nm)(Vu,Vv,Rt)
3617#endif /* __HEXAGON_ARCH___ >= 62 */
3618
3619#if __HVX_ARCH__ >= 62
3620/* ==========================================================================
3621 Assembly Syntax: Vx32.b|=vlut32(Vu32.b,Vv32.b,#u3)
3622 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32or_VbVbVbI(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3623 Instruction Type: CVI_VP_VS
3624 Execution Slots: SLOT0123
3625 ========================================================================== */
3626
3627#define Q6_Vb_vlut32or_VbVbVbI(Vx,Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_oracci)(Vx,Vu,Vv,Iu3)
3628#endif /* __HEXAGON_ARCH___ >= 62 */
3629
3630#if __HVX_ARCH__ >= 62
3631/* ==========================================================================
3632 Assembly Syntax: Vd32.b=vlut32(Vu32.b,Vv32.b,#u3)
3633 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3634 Instruction Type: CVI_VP
3635 Execution Slots: SLOT0123
3636 ========================================================================== */
3637
3638#define Q6_Vb_vlut32_VbVbI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvbi)(Vu,Vv,Iu3)
3639#endif /* __HEXAGON_ARCH___ >= 62 */
3640
3641#if __HVX_ARCH__ >= 62
3642/* ==========================================================================
3643 Assembly Syntax: Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8):nomatch
3644 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhR_nomatch(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3645 Instruction Type: CVI_VP_VS
3646 Execution Slots: SLOT0123
3647 ========================================================================== */
3648
3649#define Q6_Wh_vlut16_VbVhR_nomatch(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_nm)(Vu,Vv,Rt)
3650#endif /* __HEXAGON_ARCH___ >= 62 */
3651
3652#if __HVX_ARCH__ >= 62
3653/* ==========================================================================
3654 Assembly Syntax: Vxx32.h|=vlut16(Vu32.b,Vv32.h,#u3)
3655 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16or_WhVbVhI(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3656 Instruction Type: CVI_VP_VS
3657 Execution Slots: SLOT0123
3658 ========================================================================== */
3659
3660#define Q6_Wh_vlut16or_WhVbVhI(Vxx,Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_oracci)(Vxx,Vu,Vv,Iu3)
3661#endif /* __HEXAGON_ARCH___ >= 62 */
3662
3663#if __HVX_ARCH__ >= 62
3664/* ==========================================================================
3665 Assembly Syntax: Vdd32.h=vlut16(Vu32.b,Vv32.h,#u3)
3666 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3667 Instruction Type: CVI_VP_VS
3668 Execution Slots: SLOT0123
3669 ========================================================================== */
3670
3671#define Q6_Wh_vlut16_VbVhI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwhi)(Vu,Vv,Iu3)
3672#endif /* __HEXAGON_ARCH___ >= 62 */
3673
3674#if __HVX_ARCH__ >= 62
3675/* ==========================================================================
3676 Assembly Syntax: Vd32.b=vmax(Vu32.b,Vv32.b)
3677 C Intrinsic Prototype: HVX_Vector Q6_Vb_vmax_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3678 Instruction Type: CVI_VA
3679 Execution Slots: SLOT0123
3680 ========================================================================== */
3681
3682#define Q6_Vb_vmax_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxb)(Vu,Vv)
3683#endif /* __HEXAGON_ARCH___ >= 62 */
3684
3685#if __HVX_ARCH__ >= 62
3686/* ==========================================================================
3687 Assembly Syntax: Vd32.b=vmin(Vu32.b,Vv32.b)
3688 C Intrinsic Prototype: HVX_Vector Q6_Vb_vmin_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3689 Instruction Type: CVI_VA
3690 Execution Slots: SLOT0123
3691 ========================================================================== */
3692
3693#define Q6_Vb_vmin_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminb)(Vu,Vv)
3694#endif /* __HEXAGON_ARCH___ >= 62 */
3695
3696#if __HVX_ARCH__ >= 62
3697/* ==========================================================================
3698 Assembly Syntax: Vdd32.w=vmpa(Vuu32.uh,Rt32.b)
3699 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpa_WuhRb(HVX_VectorPair Vuu, Word32 Rt)
3700 Instruction Type: CVI_VX_DV
3701 Execution Slots: SLOT23
3702 ========================================================================== */
3703
3704#define Q6_Ww_vmpa_WuhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhb)(Vuu,Rt)
3705#endif /* __HEXAGON_ARCH___ >= 62 */
3706
3707#if __HVX_ARCH__ >= 62
3708/* ==========================================================================
3709 Assembly Syntax: Vxx32.w+=vmpa(Vuu32.uh,Rt32.b)
3710 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpaacc_WwWuhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3711 Instruction Type: CVI_VX_DV
3712 Execution Slots: SLOT23
3713 ========================================================================== */
3714
3715#define Q6_Ww_vmpaacc_WwWuhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhb_acc)(Vxx,Vuu,Rt)
3716#endif /* __HEXAGON_ARCH___ >= 62 */
3717
3718#if __HVX_ARCH__ >= 62
3719/* ==========================================================================
3720 Assembly Syntax: Vdd32=vmpye(Vu32.w,Vv32.uh)
3721 C Intrinsic Prototype: HVX_VectorPair Q6_W_vmpye_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
3722 Instruction Type: CVI_VX_DV
3723 Execution Slots: SLOT23
3724 ========================================================================== */
3725
3726#define Q6_W_vmpye_VwVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyewuh_64)(Vu,Vv)
3727#endif /* __HEXAGON_ARCH___ >= 62 */
3728
3729#if __HVX_ARCH__ >= 62
3730/* ==========================================================================
3731 Assembly Syntax: Vd32.w=vmpyi(Vu32.w,Rt32.ub)
3732 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRub(HVX_Vector Vu, Word32 Rt)
3733 Instruction Type: CVI_VX
3734 Execution Slots: SLOT23
3735 ========================================================================== */
3736
3737#define Q6_Vw_vmpyi_VwRub(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwub)(Vu,Rt)
3738#endif /* __HEXAGON_ARCH___ >= 62 */
3739
3740#if __HVX_ARCH__ >= 62
3741/* ==========================================================================
3742 Assembly Syntax: Vx32.w+=vmpyi(Vu32.w,Rt32.ub)
3743 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRub(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3744 Instruction Type: CVI_VX
3745 Execution Slots: SLOT23
3746 ========================================================================== */
3747
3748#define Q6_Vw_vmpyiacc_VwVwRub(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwub_acc)(Vx,Vu,Rt)
3749#endif /* __HEXAGON_ARCH___ >= 62 */
3750
3751#if __HVX_ARCH__ >= 62
3752/* ==========================================================================
3753 Assembly Syntax: Vxx32+=vmpyo(Vu32.w,Vv32.h)
3754 C Intrinsic Prototype: HVX_VectorPair Q6_W_vmpyoacc_WVwVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3755 Instruction Type: CVI_VX_DV
3756 Execution Slots: SLOT23
3757 ========================================================================== */
3758
3759#define Q6_W_vmpyoacc_WVwVh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_64_acc)(Vxx,Vu,Vv)
3760#endif /* __HEXAGON_ARCH___ >= 62 */
3761
3762#if __HVX_ARCH__ >= 62
3763/* ==========================================================================
3764 Assembly Syntax: Vd32.ub=vround(Vu32.uh,Vv32.uh):sat
3765 C Intrinsic Prototype: HVX_Vector Q6_Vub_vround_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
3766 Instruction Type: CVI_VS
3767 Execution Slots: SLOT0123
3768 ========================================================================== */
3769
3770#define Q6_Vub_vround_VuhVuh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrounduhub)(Vu,Vv)
3771#endif /* __HEXAGON_ARCH___ >= 62 */
3772
3773#if __HVX_ARCH__ >= 62
3774/* ==========================================================================
3775 Assembly Syntax: Vd32.uh=vround(Vu32.uw,Vv32.uw):sat
3776 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vround_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3777 Instruction Type: CVI_VS
3778 Execution Slots: SLOT0123
3779 ========================================================================== */
3780
3781#define Q6_Vuh_vround_VuwVuw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrounduwuh)(Vu,Vv)
3782#endif /* __HEXAGON_ARCH___ >= 62 */
3783
3784#if __HVX_ARCH__ >= 62
3785/* ==========================================================================
3786 Assembly Syntax: Vd32.uh=vsat(Vu32.uw,Vv32.uw)
3787 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vsat_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
3788 Instruction Type: CVI_VA
3789 Execution Slots: SLOT0123
3790 ========================================================================== */
3791
3792#define Q6_Vuh_vsat_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatuwuh)(Vu,Vv)
3793#endif /* __HEXAGON_ARCH___ >= 62 */
3794
3795#if __HVX_ARCH__ >= 62
3796/* ==========================================================================
3797 Assembly Syntax: Vd32.b=vsub(Vu32.b,Vv32.b):sat
3798 C Intrinsic Prototype: HVX_Vector Q6_Vb_vsub_VbVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3799 Instruction Type: CVI_VA
3800 Execution Slots: SLOT0123
3801 ========================================================================== */
3802
3803#define Q6_Vb_vsub_VbVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbsat)(Vu,Vv)
3804#endif /* __HEXAGON_ARCH___ >= 62 */
3805
3806#if __HVX_ARCH__ >= 62
3807/* ==========================================================================
3808 Assembly Syntax: Vdd32.b=vsub(Vuu32.b,Vvv32.b):sat
3809 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vsub_WbWb_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3810 Instruction Type: CVI_VA_DV
3811 Execution Slots: SLOT0123
3812 ========================================================================== */
3813
3814#define Q6_Wb_vsub_WbWb_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbsat_dv)(Vuu,Vvv)
3815#endif /* __HEXAGON_ARCH___ >= 62 */
3816
3817#if __HVX_ARCH__ >= 62
3818/* ==========================================================================
3819 Assembly Syntax: Vd32.w=vsub(Vu32.w,Vv32.w,Qx4):carry
3820 C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVwQ_carry(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred* Qx)
3821 Instruction Type: CVI_VA
3822 Execution Slots: SLOT0123
3823 ========================================================================== */
3824
3825#define Q6_Vw_vsub_VwVwQ_carry(Vu,Vv,Qx) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubcarry)(Vu,Vv,Qx)
3826#endif /* __HEXAGON_ARCH___ >= 62 */
3827
3828#if __HVX_ARCH__ >= 62
3829/* ==========================================================================
3830 Assembly Syntax: Vd32.ub=vsub(Vu32.ub,Vv32.b):sat
3831 C Intrinsic Prototype: HVX_Vector Q6_Vub_vsub_VubVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3832 Instruction Type: CVI_VA
3833 Execution Slots: SLOT0123
3834 ========================================================================== */
3835
3836#define Q6_Vub_vsub_VubVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubububb_sat)(Vu,Vv)
3837#endif /* __HEXAGON_ARCH___ >= 62 */
3838
3839#if __HVX_ARCH__ >= 62
3840/* ==========================================================================
3841 Assembly Syntax: Vd32.uw=vsub(Vu32.uw,Vv32.uw):sat
3842 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vsub_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3843 Instruction Type: CVI_VA
3844 Execution Slots: SLOT0123
3845 ========================================================================== */
3846
3847#define Q6_Vuw_vsub_VuwVuw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuwsat)(Vu,Vv)
3848#endif /* __HEXAGON_ARCH___ >= 62 */
3849
3850#if __HVX_ARCH__ >= 62
3851/* ==========================================================================
3852 Assembly Syntax: Vdd32.uw=vsub(Vuu32.uw,Vvv32.uw):sat
3853 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vsub_WuwWuw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3854 Instruction Type: CVI_VA_DV
3855 Execution Slots: SLOT0123
3856 ========================================================================== */
3857
3858#define Q6_Wuw_vsub_WuwWuw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuwsat_dv)(Vuu,Vvv)
3859#endif /* __HEXAGON_ARCH___ >= 62 */
3860
3861#if __HVX_ARCH__ >= 65
3862/* ==========================================================================
3863 Assembly Syntax: Vd32.b=vabs(Vu32.b)
3864 C Intrinsic Prototype: HVX_Vector Q6_Vb_vabs_Vb(HVX_Vector Vu)
3865 Instruction Type: CVI_VA
3866 Execution Slots: SLOT0123
3867 ========================================================================== */
3868
3869#define Q6_Vb_vabs_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsb)(Vu)
3870#endif /* __HEXAGON_ARCH___ >= 65 */
3871
3872#if __HVX_ARCH__ >= 65
3873/* ==========================================================================
3874 Assembly Syntax: Vd32.b=vabs(Vu32.b):sat
3875 C Intrinsic Prototype: HVX_Vector Q6_Vb_vabs_Vb_sat(HVX_Vector Vu)
3876 Instruction Type: CVI_VA
3877 Execution Slots: SLOT0123
3878 ========================================================================== */
3879
3880#define Q6_Vb_vabs_Vb_sat(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsb_sat)(Vu)
3881#endif /* __HEXAGON_ARCH___ >= 65 */
3882
3883#if __HVX_ARCH__ >= 65
3884/* ==========================================================================
3885 Assembly Syntax: Vx32.h+=vasl(Vu32.h,Rt32)
3886 C Intrinsic Prototype: HVX_Vector Q6_Vh_vaslacc_VhVhR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3887 Instruction Type: CVI_VS
3888 Execution Slots: SLOT0123
3889 ========================================================================== */
3890
3891#define Q6_Vh_vaslacc_VhVhR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslh_acc)(Vx,Vu,Rt)
3892#endif /* __HEXAGON_ARCH___ >= 65 */
3893
3894#if __HVX_ARCH__ >= 65
3895/* ==========================================================================
3896 Assembly Syntax: Vx32.h+=vasr(Vu32.h,Rt32)
3897 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasracc_VhVhR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3898 Instruction Type: CVI_VS
3899 Execution Slots: SLOT0123
3900 ========================================================================== */
3901
3902#define Q6_Vh_vasracc_VhVhR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrh_acc)(Vx,Vu,Rt)
3903#endif /* __HEXAGON_ARCH___ >= 65 */
3904
3905#if __HVX_ARCH__ >= 65
3906/* ==========================================================================
3907 Assembly Syntax: Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):rnd:sat
3908 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VuhVuhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3909 Instruction Type: CVI_VS
3910 Execution Slots: SLOT0123
3911 ========================================================================== */
3912
3913#define Q6_Vub_vasr_VuhVuhR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruhubrndsat)(Vu,Vv,Rt)
3914#endif /* __HEXAGON_ARCH___ >= 65 */
3915
3916#if __HVX_ARCH__ >= 65
3917/* ==========================================================================
3918 Assembly Syntax: Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):sat
3919 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VuhVuhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3920 Instruction Type: CVI_VS
3921 Execution Slots: SLOT0123
3922 ========================================================================== */
3923
3924#define Q6_Vub_vasr_VuhVuhR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruhubsat)(Vu,Vv,Rt)
3925#endif /* __HEXAGON_ARCH___ >= 65 */
3926
3927#if __HVX_ARCH__ >= 65
3928/* ==========================================================================
3929 Assembly Syntax: Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):sat
3930 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VuwVuwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3931 Instruction Type: CVI_VS
3932 Execution Slots: SLOT0123
3933 ========================================================================== */
3934
3935#define Q6_Vuh_vasr_VuwVuwR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruwuhsat)(Vu,Vv,Rt)
3936#endif /* __HEXAGON_ARCH___ >= 65 */
3937
3938#if __HVX_ARCH__ >= 65
3939/* ==========================================================================
3940 Assembly Syntax: Vd32.b=vavg(Vu32.b,Vv32.b)
3941 C Intrinsic Prototype: HVX_Vector Q6_Vb_vavg_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3942 Instruction Type: CVI_VA
3943 Execution Slots: SLOT0123
3944 ========================================================================== */
3945
3946#define Q6_Vb_vavg_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgb)(Vu,Vv)
3947#endif /* __HEXAGON_ARCH___ >= 65 */
3948
3949#if __HVX_ARCH__ >= 65
3950/* ==========================================================================
3951 Assembly Syntax: Vd32.b=vavg(Vu32.b,Vv32.b):rnd
3952 C Intrinsic Prototype: HVX_Vector Q6_Vb_vavg_VbVb_rnd(HVX_Vector Vu, HVX_Vector Vv)
3953 Instruction Type: CVI_VA
3954 Execution Slots: SLOT0123
3955 ========================================================================== */
3956
3957#define Q6_Vb_vavg_VbVb_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgbrnd)(Vu,Vv)
3958#endif /* __HEXAGON_ARCH___ >= 65 */
3959
3960#if __HVX_ARCH__ >= 65
3961/* ==========================================================================
3962 Assembly Syntax: Vd32.uw=vavg(Vu32.uw,Vv32.uw)
3963 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vavg_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
3964 Instruction Type: CVI_VA
3965 Execution Slots: SLOT0123
3966 ========================================================================== */
3967
3968#define Q6_Vuw_vavg_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguw)(Vu,Vv)
3969#endif /* __HEXAGON_ARCH___ >= 65 */
3970
3971#if __HVX_ARCH__ >= 65
3972/* ==========================================================================
3973 Assembly Syntax: Vd32.uw=vavg(Vu32.uw,Vv32.uw):rnd
3974 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vavg_VuwVuw_rnd(HVX_Vector Vu, HVX_Vector Vv)
3975 Instruction Type: CVI_VA
3976 Execution Slots: SLOT0123
3977 ========================================================================== */
3978
3979#define Q6_Vuw_vavg_VuwVuw_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguwrnd)(Vu,Vv)
3980#endif /* __HEXAGON_ARCH___ >= 65 */
3981
3982#if __HVX_ARCH__ >= 65
3983/* ==========================================================================
3984 Assembly Syntax: Vdd32=#0
3985 C Intrinsic Prototype: HVX_VectorPair Q6_W_vzero()
3986 Instruction Type: MAPPING
3987 Execution Slots: SLOT0123
3988 ========================================================================== */
3989
3990#define Q6_W_vzero() __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdd0)()
3991#endif /* __HEXAGON_ARCH___ >= 65 */
3992
3993#if __HVX_ARCH__ >= 65
3994/* ==========================================================================
3995 Assembly Syntax: vtmp.h=vgather(Rt32,Mu2,Vv32.h).h
3996 C Intrinsic Prototype: void Q6_vgather_ARMVh(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
3997 Instruction Type: CVI_GATHER
3998 Execution Slots: SLOT01
3999 ========================================================================== */
4000
4001#define Q6_vgather_ARMVh(Rs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermh)(Rs,Rt,Mu,Vv)
4002#endif /* __HEXAGON_ARCH___ >= 65 */
4003
4004#if __HVX_ARCH__ >= 65
4005/* ==========================================================================
4006 Assembly Syntax: if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vv32.h).h
4007 C Intrinsic Prototype: void Q6_vgather_AQRMVh(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4008 Instruction Type: CVI_GATHER
4009 Execution Slots: SLOT01
4010 ========================================================================== */
4011
4012#define Q6_vgather_AQRMVh(Rs,Qs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhq)(Rs,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vv)
4013#endif /* __HEXAGON_ARCH___ >= 65 */
4014
4015#if __HVX_ARCH__ >= 65
4016/* ==========================================================================
4017 Assembly Syntax: vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h
4018 C Intrinsic Prototype: void Q6_vgather_ARMWw(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv)
4019 Instruction Type: CVI_GATHER_DV
4020 Execution Slots: SLOT01
4021 ========================================================================== */
4022
4023#define Q6_vgather_ARMWw(Rs,Rt,Mu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhw)(Rs,Rt,Mu,Vvv)
4024#endif /* __HEXAGON_ARCH___ >= 65 */
4025
4026#if __HVX_ARCH__ >= 65
4027/* ==========================================================================
4028 Assembly Syntax: if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h
4029 C Intrinsic Prototype: void Q6_vgather_AQRMWw(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv)
4030 Instruction Type: CVI_GATHER_DV
4031 Execution Slots: SLOT01
4032 ========================================================================== */
4033
4034#define Q6_vgather_AQRMWw(Rs,Qs,Rt,Mu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhwq)(Rs,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vvv)
4035#endif /* __HEXAGON_ARCH___ >= 65 */
4036
4037#if __HVX_ARCH__ >= 65
4038/* ==========================================================================
4039 Assembly Syntax: vtmp.w=vgather(Rt32,Mu2,Vv32.w).w
4040 C Intrinsic Prototype: void Q6_vgather_ARMVw(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4041 Instruction Type: CVI_GATHER
4042 Execution Slots: SLOT01
4043 ========================================================================== */
4044
4045#define Q6_vgather_ARMVw(Rs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermw)(Rs,Rt,Mu,Vv)
4046#endif /* __HEXAGON_ARCH___ >= 65 */
4047
4048#if __HVX_ARCH__ >= 65
4049/* ==========================================================================
4050 Assembly Syntax: if (Qs4) vtmp.w=vgather(Rt32,Mu2,Vv32.w).w
4051 C Intrinsic Prototype: void Q6_vgather_AQRMVw(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4052 Instruction Type: CVI_GATHER
4053 Execution Slots: SLOT01
4054 ========================================================================== */
4055
4056#define Q6_vgather_AQRMVw(Rs,Qs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermwq)(Rs,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vv)
4057#endif /* __HEXAGON_ARCH___ >= 65 */
4058
4059#if __HVX_ARCH__ >= 65
4060/* ==========================================================================
4061 Assembly Syntax: Vd32.h=vlut4(Vu32.uh,Rtt32.h)
4062 C Intrinsic Prototype: HVX_Vector Q6_Vh_vlut4_VuhPh(HVX_Vector Vu, Word64 Rtt)
4063 Instruction Type: CVI_VX_DV
4064 Execution Slots: SLOT2
4065 ========================================================================== */
4066
4067#define Q6_Vh_vlut4_VuhPh(Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlut4)(Vu,Rtt)
4068#endif /* __HEXAGON_ARCH___ >= 65 */
4069
4070#if __HVX_ARCH__ >= 65
4071/* ==========================================================================
4072 Assembly Syntax: Vdd32.h=vmpa(Vuu32.ub,Rt32.ub)
4073 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubRub(HVX_VectorPair Vuu, Word32 Rt)
4074 Instruction Type: CVI_VX_DV
4075 Execution Slots: SLOT23
4076 ========================================================================== */
4077
4078#define Q6_Wh_vmpa_WubRub(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuu)(Vuu,Rt)
4079#endif /* __HEXAGON_ARCH___ >= 65 */
4080
4081#if __HVX_ARCH__ >= 65
4082/* ==========================================================================
4083 Assembly Syntax: Vxx32.h+=vmpa(Vuu32.ub,Rt32.ub)
4084 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpaacc_WhWubRub(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
4085 Instruction Type: CVI_VX_DV
4086 Execution Slots: SLOT23
4087 ========================================================================== */
4088
4089#define Q6_Wh_vmpaacc_WhWubRub(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuu_acc)(Vxx,Vuu,Rt)
4090#endif /* __HEXAGON_ARCH___ >= 65 */
4091
4092#if __HVX_ARCH__ >= 65
4093/* ==========================================================================
4094 Assembly Syntax: Vx32.h=vmpa(Vx32.h,Vu32.h,Rtt32.h):sat
4095 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpa_VhVhVhPh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4096 Instruction Type: CVI_VX_DV
4097 Execution Slots: SLOT2
4098 ========================================================================== */
4099
4100#define Q6_Vh_vmpa_VhVhVhPh_sat(Vx,Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahhsat)(Vx,Vu,Rtt)
4101#endif /* __HEXAGON_ARCH___ >= 65 */
4102
4103#if __HVX_ARCH__ >= 65
4104/* ==========================================================================
4105 Assembly Syntax: Vx32.h=vmpa(Vx32.h,Vu32.uh,Rtt32.uh):sat
4106 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpa_VhVhVuhPuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4107 Instruction Type: CVI_VX_DV
4108 Execution Slots: SLOT2
4109 ========================================================================== */
4110
4111#define Q6_Vh_vmpa_VhVhVuhPuh_sat(Vx,Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhuhsat)(Vx,Vu,Rtt)
4112#endif /* __HEXAGON_ARCH___ >= 65 */
4113
4114#if __HVX_ARCH__ >= 65
4115/* ==========================================================================
4116 Assembly Syntax: Vx32.h=vmps(Vx32.h,Vu32.uh,Rtt32.uh):sat
4117 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmps_VhVhVuhPuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4118 Instruction Type: CVI_VX_DV
4119 Execution Slots: SLOT2
4120 ========================================================================== */
4121
4122#define Q6_Vh_vmps_VhVhVuhPuh_sat(Vx,Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpsuhuhsat)(Vx,Vu,Rtt)
4123#endif /* __HEXAGON_ARCH___ >= 65 */
4124
4125#if __HVX_ARCH__ >= 65
4126/* ==========================================================================
4127 Assembly Syntax: Vxx32.w+=vmpy(Vu32.h,Rt32.h)
4128 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhRh(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
4129 Instruction Type: CVI_VX_DV
4130 Execution Slots: SLOT23
4131 ========================================================================== */
4132
4133#define Q6_Ww_vmpyacc_WwVhRh(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyh_acc)(Vxx,Vu,Rt)
4134#endif /* __HEXAGON_ARCH___ >= 65 */
4135
4136#if __HVX_ARCH__ >= 65
4137/* ==========================================================================
4138 Assembly Syntax: Vd32.uw=vmpye(Vu32.uh,Rt32.uh)
4139 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vmpye_VuhRuh(HVX_Vector Vu, Word32 Rt)
4140 Instruction Type: CVI_VX
4141 Execution Slots: SLOT23
4142 ========================================================================== */
4143
4144#define Q6_Vuw_vmpye_VuhRuh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhe)(Vu,Rt)
4145#endif /* __HEXAGON_ARCH___ >= 65 */
4146
4147#if __HVX_ARCH__ >= 65
4148/* ==========================================================================
4149 Assembly Syntax: Vx32.uw+=vmpye(Vu32.uh,Rt32.uh)
4150 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vmpyeacc_VuwVuhRuh(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
4151 Instruction Type: CVI_VX
4152 Execution Slots: SLOT23
4153 ========================================================================== */
4154
4155#define Q6_Vuw_vmpyeacc_VuwVuhRuh(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhe_acc)(Vx,Vu,Rt)
4156#endif /* __HEXAGON_ARCH___ >= 65 */
4157
4158#if __HVX_ARCH__ >= 65
4159/* ==========================================================================
4160 Assembly Syntax: Vd32.b=vnavg(Vu32.b,Vv32.b)
4161 C Intrinsic Prototype: HVX_Vector Q6_Vb_vnavg_VbVb(HVX_Vector Vu, HVX_Vector Vv)
4162 Instruction Type: CVI_VA
4163 Execution Slots: SLOT0123
4164 ========================================================================== */
4165
4166#define Q6_Vb_vnavg_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgb)(Vu,Vv)
4167#endif /* __HEXAGON_ARCH___ >= 65 */
4168
4169#if __HVX_ARCH__ >= 65
4170/* ==========================================================================
4171 Assembly Syntax: Vd32.b=prefixsum(Qv4)
4172 C Intrinsic Prototype: HVX_Vector Q6_Vb_prefixsum_Q(HVX_VectorPred Qv)
4173 Instruction Type: CVI_VS
4174 Execution Slots: SLOT0123
4175 ========================================================================== */
4176
4177#define Q6_Vb_prefixsum_Q(Qv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqb)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1))
4178#endif /* __HEXAGON_ARCH___ >= 65 */
4179
4180#if __HVX_ARCH__ >= 65
4181/* ==========================================================================
4182 Assembly Syntax: Vd32.h=prefixsum(Qv4)
4183 C Intrinsic Prototype: HVX_Vector Q6_Vh_prefixsum_Q(HVX_VectorPred Qv)
4184 Instruction Type: CVI_VS
4185 Execution Slots: SLOT0123
4186 ========================================================================== */
4187
4188#define Q6_Vh_prefixsum_Q(Qv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqh)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1))
4189#endif /* __HEXAGON_ARCH___ >= 65 */
4190
4191#if __HVX_ARCH__ >= 65
4192/* ==========================================================================
4193 Assembly Syntax: Vd32.w=prefixsum(Qv4)
4194 C Intrinsic Prototype: HVX_Vector Q6_Vw_prefixsum_Q(HVX_VectorPred Qv)
4195 Instruction Type: CVI_VS
4196 Execution Slots: SLOT0123
4197 ========================================================================== */
4198
4199#define Q6_Vw_prefixsum_Q(Qv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqw)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1))
4200#endif /* __HEXAGON_ARCH___ >= 65 */
4201
4202#if __HVX_ARCH__ >= 65
4203/* ==========================================================================
4204 Assembly Syntax: vscatter(Rt32,Mu2,Vv32.h).h=Vw32
4205 C Intrinsic Prototype: void Q6_vscatter_RMVhV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4206 Instruction Type: CVI_SCATTER
4207 Execution Slots: SLOT0
4208 ========================================================================== */
4209
4210#define Q6_vscatter_RMVhV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermh)(Rt,Mu,Vv,Vw)
4211#endif /* __HEXAGON_ARCH___ >= 65 */
4212
4213#if __HVX_ARCH__ >= 65
4214/* ==========================================================================
4215 Assembly Syntax: vscatter(Rt32,Mu2,Vv32.h).h+=Vw32
4216 C Intrinsic Prototype: void Q6_vscatteracc_RMVhV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4217 Instruction Type: CVI_SCATTER
4218 Execution Slots: SLOT0
4219 ========================================================================== */
4220
4221#define Q6_vscatteracc_RMVhV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermh_add)(Rt,Mu,Vv,Vw)
4222#endif /* __HEXAGON_ARCH___ >= 65 */
4223
4224#if __HVX_ARCH__ >= 65
4225/* ==========================================================================
4226 Assembly Syntax: if (Qs4) vscatter(Rt32,Mu2,Vv32.h).h=Vw32
4227 C Intrinsic Prototype: void Q6_vscatter_QRMVhV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4228 Instruction Type: CVI_SCATTER
4229 Execution Slots: SLOT0
4230 ========================================================================== */
4231
4232#define Q6_vscatter_QRMVhV(Qs,Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vv,Vw)
4233#endif /* __HEXAGON_ARCH___ >= 65 */
4234
4235#if __HVX_ARCH__ >= 65
4236/* ==========================================================================
4237 Assembly Syntax: vscatter(Rt32,Mu2,Vvv32.w).h=Vw32
4238 C Intrinsic Prototype: void Q6_vscatter_RMWwV(Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4239 Instruction Type: CVI_SCATTER_DV
4240 Execution Slots: SLOT0
4241 ========================================================================== */
4242
4243#define Q6_vscatter_RMWwV(Rt,Mu,Vvv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhw)(Rt,Mu,Vvv,Vw)
4244#endif /* __HEXAGON_ARCH___ >= 65 */
4245
4246#if __HVX_ARCH__ >= 65
4247/* ==========================================================================
4248 Assembly Syntax: vscatter(Rt32,Mu2,Vvv32.w).h+=Vw32
4249 C Intrinsic Prototype: void Q6_vscatteracc_RMWwV(Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4250 Instruction Type: CVI_SCATTER_DV
4251 Execution Slots: SLOT0
4252 ========================================================================== */
4253
4254#define Q6_vscatteracc_RMWwV(Rt,Mu,Vvv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhw_add)(Rt,Mu,Vvv,Vw)
4255#endif /* __HEXAGON_ARCH___ >= 65 */
4256
4257#if __HVX_ARCH__ >= 65
4258/* ==========================================================================
4259 Assembly Syntax: if (Qs4) vscatter(Rt32,Mu2,Vvv32.w).h=Vw32
4260 C Intrinsic Prototype: void Q6_vscatter_QRMWwV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4261 Instruction Type: CVI_SCATTER_DV
4262 Execution Slots: SLOT0
4263 ========================================================================== */
4264
4265#define Q6_vscatter_QRMWwV(Qs,Rt,Mu,Vvv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhwq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vvv,Vw)
4266#endif /* __HEXAGON_ARCH___ >= 65 */
4267
4268#if __HVX_ARCH__ >= 65
4269/* ==========================================================================
4270 Assembly Syntax: vscatter(Rt32,Mu2,Vv32.w).w=Vw32
4271 C Intrinsic Prototype: void Q6_vscatter_RMVwV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4272 Instruction Type: CVI_SCATTER
4273 Execution Slots: SLOT0
4274 ========================================================================== */
4275
4276#define Q6_vscatter_RMVwV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermw)(Rt,Mu,Vv,Vw)
4277#endif /* __HEXAGON_ARCH___ >= 65 */
4278
4279#if __HVX_ARCH__ >= 65
4280/* ==========================================================================
4281 Assembly Syntax: vscatter(Rt32,Mu2,Vv32.w).w+=Vw32
4282 C Intrinsic Prototype: void Q6_vscatteracc_RMVwV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4283 Instruction Type: CVI_SCATTER
4284 Execution Slots: SLOT0
4285 ========================================================================== */
4286
4287#define Q6_vscatteracc_RMVwV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermw_add)(Rt,Mu,Vv,Vw)
4288#endif /* __HEXAGON_ARCH___ >= 65 */
4289
4290#if __HVX_ARCH__ >= 65
4291/* ==========================================================================
4292 Assembly Syntax: if (Qs4) vscatter(Rt32,Mu2,Vv32.w).w=Vw32
4293 C Intrinsic Prototype: void Q6_vscatter_QRMVwV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4294 Instruction Type: CVI_SCATTER
4295 Execution Slots: SLOT0
4296 ========================================================================== */
4297
4298#define Q6_vscatter_QRMVwV(Qs,Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermwq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vv,Vw)
4299#endif /* __HEXAGON_ARCH___ >= 65 */
4300
4301#if __HVX_ARCH__ >= 66
4302/* ==========================================================================
4303 Assembly Syntax: Vd32.w=vadd(Vu32.w,Vv32.w,Qs4):carry:sat
4304 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVwQ_carry_sat(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred Qs)
4305 Instruction Type: CVI_VA
4306 Execution Slots: SLOT0123
4307 ========================================================================== */
4308
4309#define Q6_Vw_vadd_VwVwQ_carry_sat(Vu,Vv,Qs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddcarrysat)(Vu,Vv,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1))
4310#endif /* __HEXAGON_ARCH___ >= 66 */
4311
4312#if __HVX_ARCH__ >= 66
4313/* ==========================================================================
4314 Assembly Syntax: Vxx32.w=vasrinto(Vu32.w,Vv32.w)
4315 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vasrinto_WwVwVw(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
4316 Instruction Type: CVI_VP_VS
4317 Execution Slots: SLOT0123
4318 ========================================================================== */
4319
4320#define Q6_Ww_vasrinto_WwVwVw(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasr_into)(Vxx,Vu,Vv)
4321#endif /* __HEXAGON_ARCH___ >= 66 */
4322
4323#if __HVX_ARCH__ >= 66
4324/* ==========================================================================
4325 Assembly Syntax: Vd32.uw=vrotr(Vu32.uw,Vv32.uw)
4326 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrotr_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
4327 Instruction Type: CVI_VS
4328 Execution Slots: SLOT0123
4329 ========================================================================== */
4330
4331#define Q6_Vuw_vrotr_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrotr)(Vu,Vv)
4332#endif /* __HEXAGON_ARCH___ >= 66 */
4333
4334#if __HVX_ARCH__ >= 66
4335/* ==========================================================================
4336 Assembly Syntax: Vd32.w=vsatdw(Vu32.w,Vv32.w)
4337 C Intrinsic Prototype: HVX_Vector Q6_Vw_vsatdw_VwVw(HVX_Vector Vu, HVX_Vector Vv)
4338 Instruction Type: CVI_VA
4339 Execution Slots: SLOT0123
4340 ========================================================================== */
4341
4342#define Q6_Vw_vsatdw_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatdw)(Vu,Vv)
4343#endif /* __HEXAGON_ARCH___ >= 66 */
4344
4345#if __HVX_ARCH__ >= 68
4346/* ==========================================================================
4347 Assembly Syntax: Vdd32.w=v6mpy(Vuu32.ub,Vvv32.b,#u2):h
4348 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpy_WubWbI_h(HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4349 Instruction Type: CVI_VX_DV
4350 Execution Slots: SLOT23
4351 ========================================================================== */
4352
4353#define Q6_Ww_v6mpy_WubWbI_h(Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyhubs10)(Vuu,Vvv,Iu2)
4354#endif /* __HEXAGON_ARCH___ >= 68 */
4355
4356#if __HVX_ARCH__ >= 68
4357/* ==========================================================================
4358 Assembly Syntax: Vxx32.w+=v6mpy(Vuu32.ub,Vvv32.b,#u2):h
4359 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpyacc_WwWubWbI_h(HVX_VectorPair Vxx, HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4360 Instruction Type: CVI_VX_DV
4361 Execution Slots: SLOT23
4362 ========================================================================== */
4363
4364#define Q6_Ww_v6mpyacc_WwWubWbI_h(Vxx,Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyhubs10_vxx)(Vxx,Vuu,Vvv,Iu2)
4365#endif /* __HEXAGON_ARCH___ >= 68 */
4366
4367#if __HVX_ARCH__ >= 68
4368/* ==========================================================================
4369 Assembly Syntax: Vdd32.w=v6mpy(Vuu32.ub,Vvv32.b,#u2):v
4370 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpy_WubWbI_v(HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4371 Instruction Type: CVI_VX_DV
4372 Execution Slots: SLOT23
4373 ========================================================================== */
4374
4375#define Q6_Ww_v6mpy_WubWbI_v(Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyvubs10)(Vuu,Vvv,Iu2)
4376#endif /* __HEXAGON_ARCH___ >= 68 */
4377
4378#if __HVX_ARCH__ >= 68
4379/* ==========================================================================
4380 Assembly Syntax: Vxx32.w+=v6mpy(Vuu32.ub,Vvv32.b,#u2):v
4381 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpyacc_WwWubWbI_v(HVX_VectorPair Vxx, HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4382 Instruction Type: CVI_VX_DV
4383 Execution Slots: SLOT23
4384 ========================================================================== */
4385
4386#define Q6_Ww_v6mpyacc_WwWubWbI_v(Vxx,Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyvubs10_vxx)(Vxx,Vuu,Vvv,Iu2)
4387#endif /* __HEXAGON_ARCH___ >= 68 */
4388
4389#if __HVX_ARCH__ >= 68
4390/* ==========================================================================
4391 Assembly Syntax: Vd32.hf=vabs(Vu32.hf)
4392 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vabs_Vhf(HVX_Vector Vu)
4393 Instruction Type: CVI_VX_LATE
4394 Execution Slots: SLOT23
4395 ========================================================================== */
4396
4397#define Q6_Vhf_vabs_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabs_hf)(Vu)
4398#endif /* __HEXAGON_ARCH___ >= 68 */
4399
4400#if __HVX_ARCH__ >= 68
4401/* ==========================================================================
4402 Assembly Syntax: Vd32.sf=vabs(Vu32.sf)
4403 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vabs_Vsf(HVX_Vector Vu)
4404 Instruction Type: CVI_VX_LATE
4405 Execution Slots: SLOT23
4406 ========================================================================== */
4407
4408#define Q6_Vsf_vabs_Vsf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabs_sf)(Vu)
4409#endif /* __HEXAGON_ARCH___ >= 68 */
4410
4411#if __HVX_ARCH__ >= 68
4412/* ==========================================================================
4413 Assembly Syntax: Vd32.qf16=vadd(Vu32.hf,Vv32.hf)
4414 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vadd_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4415 Instruction Type: CVI_VS
4416 Execution Slots: SLOT0123
4417 ========================================================================== */
4418
4419#define Q6_Vqf16_vadd_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_hf)(Vu,Vv)
4420#endif /* __HEXAGON_ARCH___ >= 68 */
4421
4422#if __HVX_ARCH__ >= 68
4423/* ==========================================================================
4424 Assembly Syntax: Vd32.hf=vadd(Vu32.hf,Vv32.hf)
4425 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vadd_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4426 Instruction Type: CVI_VX
4427 Execution Slots: SLOT23
4428 ========================================================================== */
4429
4430#define Q6_Vhf_vadd_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_hf_hf)(Vu,Vv)
4431#endif /* __HEXAGON_ARCH___ >= 68 */
4432
4433#if __HVX_ARCH__ >= 68
4434/* ==========================================================================
4435 Assembly Syntax: Vd32.qf16=vadd(Vu32.qf16,Vv32.qf16)
4436 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vadd_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
4437 Instruction Type: CVI_VS
4438 Execution Slots: SLOT0123
4439 ========================================================================== */
4440
4441#define Q6_Vqf16_vadd_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf16)(Vu,Vv)
4442#endif /* __HEXAGON_ARCH___ >= 68 */
4443
4444#if __HVX_ARCH__ >= 68
4445/* ==========================================================================
4446 Assembly Syntax: Vd32.qf16=vadd(Vu32.qf16,Vv32.hf)
4447 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vadd_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
4448 Instruction Type: CVI_VS
4449 Execution Slots: SLOT0123
4450 ========================================================================== */
4451
4452#define Q6_Vqf16_vadd_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf16_mix)(Vu,Vv)
4453#endif /* __HEXAGON_ARCH___ >= 68 */
4454
4455#if __HVX_ARCH__ >= 68
4456/* ==========================================================================
4457 Assembly Syntax: Vd32.qf32=vadd(Vu32.qf32,Vv32.qf32)
4458 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vadd_Vqf32Vqf32(HVX_Vector Vu, HVX_Vector Vv)
4459 Instruction Type: CVI_VS
4460 Execution Slots: SLOT0123
4461 ========================================================================== */
4462
4463#define Q6_Vqf32_vadd_Vqf32Vqf32(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf32)(Vu,Vv)
4464#endif /* __HEXAGON_ARCH___ >= 68 */
4465
4466#if __HVX_ARCH__ >= 68
4467/* ==========================================================================
4468 Assembly Syntax: Vd32.qf32=vadd(Vu32.qf32,Vv32.sf)
4469 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vadd_Vqf32Vsf(HVX_Vector Vu, HVX_Vector Vv)
4470 Instruction Type: CVI_VS
4471 Execution Slots: SLOT0123
4472 ========================================================================== */
4473
4474#define Q6_Vqf32_vadd_Vqf32Vsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf32_mix)(Vu,Vv)
4475#endif /* __HEXAGON_ARCH___ >= 68 */
4476
4477#if __HVX_ARCH__ >= 68
4478/* ==========================================================================
4479 Assembly Syntax: Vd32.qf32=vadd(Vu32.sf,Vv32.sf)
4480 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vadd_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4481 Instruction Type: CVI_VS
4482 Execution Slots: SLOT0123
4483 ========================================================================== */
4484
4485#define Q6_Vqf32_vadd_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_sf)(Vu,Vv)
4486#endif /* __HEXAGON_ARCH___ >= 68 */
4487
4488#if __HVX_ARCH__ >= 68
4489/* ==========================================================================
4490 Assembly Syntax: Vdd32.sf=vadd(Vu32.hf,Vv32.hf)
4491 C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vadd_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4492 Instruction Type: CVI_VX_DV
4493 Execution Slots: SLOT23
4494 ========================================================================== */
4495
4496#define Q6_Wsf_vadd_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_sf_hf)(Vu,Vv)
4497#endif /* __HEXAGON_ARCH___ >= 68 */
4498
4499#if __HVX_ARCH__ >= 68
4500/* ==========================================================================
4501 Assembly Syntax: Vd32.sf=vadd(Vu32.sf,Vv32.sf)
4502 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vadd_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4503 Instruction Type: CVI_VX
4504 Execution Slots: SLOT23
4505 ========================================================================== */
4506
4507#define Q6_Vsf_vadd_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_sf_sf)(Vu,Vv)
4508#endif /* __HEXAGON_ARCH___ >= 68 */
4509
4510#if __HVX_ARCH__ >= 68
4511/* ==========================================================================
4512 Assembly Syntax: Vd32.w=vfmv(Vu32.w)
4513 C Intrinsic Prototype: HVX_Vector Q6_Vw_vfmv_Vw(HVX_Vector Vu)
4514 Instruction Type: CVI_VX_LATE
4515 Execution Slots: SLOT23
4516 ========================================================================== */
4517
4518#define Q6_Vw_vfmv_Vw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassign_fp)(Vu)
4519#endif /* __HEXAGON_ARCH___ >= 68 */
4520
4521#if __HVX_ARCH__ >= 68
4522/* ==========================================================================
4523 Assembly Syntax: Vd32.hf=Vu32.qf16
4524 C Intrinsic Prototype: HVX_Vector Q6_Vhf_equals_Vqf16(HVX_Vector Vu)
4525 Instruction Type: CVI_VS
4526 Execution Slots: SLOT0123
4527 ========================================================================== */
4528
4529#define Q6_Vhf_equals_Vqf16(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vconv_hf_qf16)(Vu)
4530#endif /* __HEXAGON_ARCH___ >= 68 */
4531
4532#if __HVX_ARCH__ >= 68
4533/* ==========================================================================
4534 Assembly Syntax: Vd32.hf=Vuu32.qf32
4535 C Intrinsic Prototype: HVX_Vector Q6_Vhf_equals_Wqf32(HVX_VectorPair Vuu)
4536 Instruction Type: CVI_VS
4537 Execution Slots: SLOT0123
4538 ========================================================================== */
4539
4540#define Q6_Vhf_equals_Wqf32(Vuu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vconv_hf_qf32)(Vuu)
4541#endif /* __HEXAGON_ARCH___ >= 68 */
4542
4543#if __HVX_ARCH__ >= 68
4544/* ==========================================================================
4545 Assembly Syntax: Vd32.sf=Vu32.qf32
4546 C Intrinsic Prototype: HVX_Vector Q6_Vsf_equals_Vqf32(HVX_Vector Vu)
4547 Instruction Type: CVI_VS
4548 Execution Slots: SLOT0123
4549 ========================================================================== */
4550
4551#define Q6_Vsf_equals_Vqf32(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vconv_sf_qf32)(Vu)
4552#endif /* __HEXAGON_ARCH___ >= 68 */
4553
4554#if __HVX_ARCH__ >= 68
4555/* ==========================================================================
4556 Assembly Syntax: Vd32.b=vcvt(Vu32.hf,Vv32.hf)
4557 C Intrinsic Prototype: HVX_Vector Q6_Vb_vcvt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4558 Instruction Type: CVI_VX
4559 Execution Slots: SLOT23
4560 ========================================================================== */
4561
4562#define Q6_Vb_vcvt_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_b_hf)(Vu,Vv)
4563#endif /* __HEXAGON_ARCH___ >= 68 */
4564
4565#if __HVX_ARCH__ >= 68
4566/* ==========================================================================
4567 Assembly Syntax: Vd32.h=vcvt(Vu32.hf)
4568 C Intrinsic Prototype: HVX_Vector Q6_Vh_vcvt_Vhf(HVX_Vector Vu)
4569 Instruction Type: CVI_VX
4570 Execution Slots: SLOT23
4571 ========================================================================== */
4572
4573#define Q6_Vh_vcvt_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_h_hf)(Vu)
4574#endif /* __HEXAGON_ARCH___ >= 68 */
4575
4576#if __HVX_ARCH__ >= 68
4577/* ==========================================================================
4578 Assembly Syntax: Vdd32.hf=vcvt(Vu32.b)
4579 C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vcvt_Vb(HVX_Vector Vu)
4580 Instruction Type: CVI_VX_DV
4581 Execution Slots: SLOT23
4582 ========================================================================== */
4583
4584#define Q6_Whf_vcvt_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_b)(Vu)
4585#endif /* __HEXAGON_ARCH___ >= 68 */
4586
4587#if __HVX_ARCH__ >= 68
4588/* ==========================================================================
4589 Assembly Syntax: Vd32.hf=vcvt(Vu32.h)
4590 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vcvt_Vh(HVX_Vector Vu)
4591 Instruction Type: CVI_VX
4592 Execution Slots: SLOT23
4593 ========================================================================== */
4594
4595#define Q6_Vhf_vcvt_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_h)(Vu)
4596#endif /* __HEXAGON_ARCH___ >= 68 */
4597
4598#if __HVX_ARCH__ >= 68
4599/* ==========================================================================
4600 Assembly Syntax: Vd32.hf=vcvt(Vu32.sf,Vv32.sf)
4601 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vcvt_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4602 Instruction Type: CVI_VX
4603 Execution Slots: SLOT23
4604 ========================================================================== */
4605
4606#define Q6_Vhf_vcvt_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_sf)(Vu,Vv)
4607#endif /* __HEXAGON_ARCH___ >= 68 */
4608
4609#if __HVX_ARCH__ >= 68
4610/* ==========================================================================
4611 Assembly Syntax: Vdd32.hf=vcvt(Vu32.ub)
4612 C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vcvt_Vub(HVX_Vector Vu)
4613 Instruction Type: CVI_VX_DV
4614 Execution Slots: SLOT23
4615 ========================================================================== */
4616
4617#define Q6_Whf_vcvt_Vub(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_ub)(Vu)
4618#endif /* __HEXAGON_ARCH___ >= 68 */
4619
4620#if __HVX_ARCH__ >= 68
4621/* ==========================================================================
4622 Assembly Syntax: Vd32.hf=vcvt(Vu32.uh)
4623 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vcvt_Vuh(HVX_Vector Vu)
4624 Instruction Type: CVI_VX
4625 Execution Slots: SLOT23
4626 ========================================================================== */
4627
4628#define Q6_Vhf_vcvt_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_uh)(Vu)
4629#endif /* __HEXAGON_ARCH___ >= 68 */
4630
4631#if __HVX_ARCH__ >= 68
4632/* ==========================================================================
4633 Assembly Syntax: Vdd32.sf=vcvt(Vu32.hf)
4634 C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vcvt_Vhf(HVX_Vector Vu)
4635 Instruction Type: CVI_VX_DV
4636 Execution Slots: SLOT23
4637 ========================================================================== */
4638
4639#define Q6_Wsf_vcvt_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_sf_hf)(Vu)
4640#endif /* __HEXAGON_ARCH___ >= 68 */
4641
4642#if __HVX_ARCH__ >= 68
4643/* ==========================================================================
4644 Assembly Syntax: Vd32.ub=vcvt(Vu32.hf,Vv32.hf)
4645 C Intrinsic Prototype: HVX_Vector Q6_Vub_vcvt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4646 Instruction Type: CVI_VX
4647 Execution Slots: SLOT23
4648 ========================================================================== */
4649
4650#define Q6_Vub_vcvt_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_ub_hf)(Vu,Vv)
4651#endif /* __HEXAGON_ARCH___ >= 68 */
4652
4653#if __HVX_ARCH__ >= 68
4654/* ==========================================================================
4655 Assembly Syntax: Vd32.uh=vcvt(Vu32.hf)
4656 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vcvt_Vhf(HVX_Vector Vu)
4657 Instruction Type: CVI_VX
4658 Execution Slots: SLOT23
4659 ========================================================================== */
4660
4661#define Q6_Vuh_vcvt_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_uh_hf)(Vu)
4662#endif /* __HEXAGON_ARCH___ >= 68 */
4663
4664#if __HVX_ARCH__ >= 68
4665/* ==========================================================================
4666 Assembly Syntax: Vd32.sf=vdmpy(Vu32.hf,Vv32.hf)
4667 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vdmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4668 Instruction Type: CVI_VX
4669 Execution Slots: SLOT23
4670 ========================================================================== */
4671
4672#define Q6_Vsf_vdmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpy_sf_hf)(Vu,Vv)
4673#endif /* __HEXAGON_ARCH___ >= 68 */
4674
4675#if __HVX_ARCH__ >= 68
4676/* ==========================================================================
4677 Assembly Syntax: Vx32.sf+=vdmpy(Vu32.hf,Vv32.hf)
4678 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vdmpyacc_VsfVhfVhf(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
4679 Instruction Type: CVI_VX
4680 Execution Slots: SLOT23
4681 ========================================================================== */
4682
4683#define Q6_Vsf_vdmpyacc_VsfVhfVhf(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpy_sf_hf_acc)(Vx,Vu,Vv)
4684#endif /* __HEXAGON_ARCH___ >= 68 */
4685
4686#if __HVX_ARCH__ >= 68
4687/* ==========================================================================
4688 Assembly Syntax: Vd32.hf=vfmax(Vu32.hf,Vv32.hf)
4689 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vfmax_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4690 Instruction Type: CVI_VX_LATE
4691 Execution Slots: SLOT23
4692 ========================================================================== */
4693
4694#define Q6_Vhf_vfmax_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmax_hf)(Vu,Vv)
4695#endif /* __HEXAGON_ARCH___ >= 68 */
4696
4697#if __HVX_ARCH__ >= 68
4698/* ==========================================================================
4699 Assembly Syntax: Vd32.sf=vfmax(Vu32.sf,Vv32.sf)
4700 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vfmax_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4701 Instruction Type: CVI_VX_LATE
4702 Execution Slots: SLOT23
4703 ========================================================================== */
4704
4705#define Q6_Vsf_vfmax_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmax_sf)(Vu,Vv)
4706#endif /* __HEXAGON_ARCH___ >= 68 */
4707
4708#if __HVX_ARCH__ >= 68
4709/* ==========================================================================
4710 Assembly Syntax: Vd32.hf=vfmin(Vu32.hf,Vv32.hf)
4711 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vfmin_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4712 Instruction Type: CVI_VX_LATE
4713 Execution Slots: SLOT23
4714 ========================================================================== */
4715
4716#define Q6_Vhf_vfmin_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmin_hf)(Vu,Vv)
4717#endif /* __HEXAGON_ARCH___ >= 68 */
4718
4719#if __HVX_ARCH__ >= 68
4720/* ==========================================================================
4721 Assembly Syntax: Vd32.sf=vfmin(Vu32.sf,Vv32.sf)
4722 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vfmin_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4723 Instruction Type: CVI_VX_LATE
4724 Execution Slots: SLOT23
4725 ========================================================================== */
4726
4727#define Q6_Vsf_vfmin_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmin_sf)(Vu,Vv)
4728#endif /* __HEXAGON_ARCH___ >= 68 */
4729
4730#if __HVX_ARCH__ >= 68
4731/* ==========================================================================
4732 Assembly Syntax: Vd32.hf=vfneg(Vu32.hf)
4733 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vfneg_Vhf(HVX_Vector Vu)
4734 Instruction Type: CVI_VX_LATE
4735 Execution Slots: SLOT23
4736 ========================================================================== */
4737
4738#define Q6_Vhf_vfneg_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfneg_hf)(Vu)
4739#endif /* __HEXAGON_ARCH___ >= 68 */
4740
4741#if __HVX_ARCH__ >= 68
4742/* ==========================================================================
4743 Assembly Syntax: Vd32.sf=vfneg(Vu32.sf)
4744 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vfneg_Vsf(HVX_Vector Vu)
4745 Instruction Type: CVI_VX_LATE
4746 Execution Slots: SLOT23
4747 ========================================================================== */
4748
4749#define Q6_Vsf_vfneg_Vsf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfneg_sf)(Vu)
4750#endif /* __HEXAGON_ARCH___ >= 68 */
4751
4752#if __HVX_ARCH__ >= 68
4753/* ==========================================================================
4754 Assembly Syntax: Qd4=vcmp.gt(Vu32.hf,Vv32.hf)
4755 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4756 Instruction Type: CVI_VA
4757 Execution Slots: SLOT0123
4758 ========================================================================== */
4759
4760#define Q6_Q_vcmp_gt_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgthf)(Vu,Vv)),-1)
4761#endif /* __HEXAGON_ARCH___ >= 68 */
4762
4763#if __HVX_ARCH__ >= 68
4764/* ==========================================================================
4765 Assembly Syntax: Qx4&=vcmp.gt(Vu32.hf,Vv32.hf)
4766 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4767 Instruction Type: CVI_VA
4768 Execution Slots: SLOT0123
4769 ========================================================================== */
4770
4771#define Q6_Q_vcmp_gtand_QVhfVhf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgthf_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4772#endif /* __HEXAGON_ARCH___ >= 68 */
4773
4774#if __HVX_ARCH__ >= 68
4775/* ==========================================================================
4776 Assembly Syntax: Qx4|=vcmp.gt(Vu32.hf,Vv32.hf)
4777 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4778 Instruction Type: CVI_VA
4779 Execution Slots: SLOT0123
4780 ========================================================================== */
4781
4782#define Q6_Q_vcmp_gtor_QVhfVhf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgthf_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4783#endif /* __HEXAGON_ARCH___ >= 68 */
4784
4785#if __HVX_ARCH__ >= 68
4786/* ==========================================================================
4787 Assembly Syntax: Qx4^=vcmp.gt(Vu32.hf,Vv32.hf)
4788 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4789 Instruction Type: CVI_VA
4790 Execution Slots: SLOT0123
4791 ========================================================================== */
4792
4793#define Q6_Q_vcmp_gtxacc_QVhfVhf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgthf_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4794#endif /* __HEXAGON_ARCH___ >= 68 */
4795
4796#if __HVX_ARCH__ >= 68
4797/* ==========================================================================
4798 Assembly Syntax: Qd4=vcmp.gt(Vu32.sf,Vv32.sf)
4799 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4800 Instruction Type: CVI_VA
4801 Execution Slots: SLOT0123
4802 ========================================================================== */
4803
4804#define Q6_Q_vcmp_gt_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtsf)(Vu,Vv)),-1)
4805#endif /* __HEXAGON_ARCH___ >= 68 */
4806
4807#if __HVX_ARCH__ >= 68
4808/* ==========================================================================
4809 Assembly Syntax: Qx4&=vcmp.gt(Vu32.sf,Vv32.sf)
4810 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4811 Instruction Type: CVI_VA
4812 Execution Slots: SLOT0123
4813 ========================================================================== */
4814
4815#define Q6_Q_vcmp_gtand_QVsfVsf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtsf_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4816#endif /* __HEXAGON_ARCH___ >= 68 */
4817
4818#if __HVX_ARCH__ >= 68
4819/* ==========================================================================
4820 Assembly Syntax: Qx4|=vcmp.gt(Vu32.sf,Vv32.sf)
4821 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4822 Instruction Type: CVI_VA
4823 Execution Slots: SLOT0123
4824 ========================================================================== */
4825
4826#define Q6_Q_vcmp_gtor_QVsfVsf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtsf_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4827#endif /* __HEXAGON_ARCH___ >= 68 */
4828
4829#if __HVX_ARCH__ >= 68
4830/* ==========================================================================
4831 Assembly Syntax: Qx4^=vcmp.gt(Vu32.sf,Vv32.sf)
4832 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4833 Instruction Type: CVI_VA
4834 Execution Slots: SLOT0123
4835 ========================================================================== */
4836
4837#define Q6_Q_vcmp_gtxacc_QVsfVsf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtsf_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4838#endif /* __HEXAGON_ARCH___ >= 68 */
4839
4840#if __HVX_ARCH__ >= 68
4841/* ==========================================================================
4842 Assembly Syntax: Vd32.hf=vmax(Vu32.hf,Vv32.hf)
4843 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmax_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4844 Instruction Type: CVI_VA
4845 Execution Slots: SLOT0123
4846 ========================================================================== */
4847
4848#define Q6_Vhf_vmax_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmax_hf)(Vu,Vv)
4849#endif /* __HEXAGON_ARCH___ >= 68 */
4850
4851#if __HVX_ARCH__ >= 68
4852/* ==========================================================================
4853 Assembly Syntax: Vd32.sf=vmax(Vu32.sf,Vv32.sf)
4854 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vmax_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4855 Instruction Type: CVI_VA
4856 Execution Slots: SLOT0123
4857 ========================================================================== */
4858
4859#define Q6_Vsf_vmax_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmax_sf)(Vu,Vv)
4860#endif /* __HEXAGON_ARCH___ >= 68 */
4861
4862#if __HVX_ARCH__ >= 68
4863/* ==========================================================================
4864 Assembly Syntax: Vd32.hf=vmin(Vu32.hf,Vv32.hf)
4865 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmin_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4866 Instruction Type: CVI_VA
4867 Execution Slots: SLOT0123
4868 ========================================================================== */
4869
4870#define Q6_Vhf_vmin_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmin_hf)(Vu,Vv)
4871#endif /* __HEXAGON_ARCH___ >= 68 */
4872
4873#if __HVX_ARCH__ >= 68
4874/* ==========================================================================
4875 Assembly Syntax: Vd32.sf=vmin(Vu32.sf,Vv32.sf)
4876 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vmin_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4877 Instruction Type: CVI_VA
4878 Execution Slots: SLOT0123
4879 ========================================================================== */
4880
4881#define Q6_Vsf_vmin_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmin_sf)(Vu,Vv)
4882#endif /* __HEXAGON_ARCH___ >= 68 */
4883
4884#if __HVX_ARCH__ >= 68
4885/* ==========================================================================
4886 Assembly Syntax: Vd32.hf=vmpy(Vu32.hf,Vv32.hf)
4887 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4888 Instruction Type: CVI_VX
4889 Execution Slots: SLOT23
4890 ========================================================================== */
4891
4892#define Q6_Vhf_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_hf_hf)(Vu,Vv)
4893#endif /* __HEXAGON_ARCH___ >= 68 */
4894
4895#if __HVX_ARCH__ >= 68
4896/* ==========================================================================
4897 Assembly Syntax: Vx32.hf+=vmpy(Vu32.hf,Vv32.hf)
4898 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmpyacc_VhfVhfVhf(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
4899 Instruction Type: CVI_VX
4900 Execution Slots: SLOT23
4901 ========================================================================== */
4902
4903#define Q6_Vhf_vmpyacc_VhfVhfVhf(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_hf_hf_acc)(Vx,Vu,Vv)
4904#endif /* __HEXAGON_ARCH___ >= 68 */
4905
4906#if __HVX_ARCH__ >= 68
4907/* ==========================================================================
4908 Assembly Syntax: Vd32.qf16=vmpy(Vu32.qf16,Vv32.qf16)
4909 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
4910 Instruction Type: CVI_VX_DV
4911 Execution Slots: SLOT23
4912 ========================================================================== */
4913
4914#define Q6_Vqf16_vmpy_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf16)(Vu,Vv)
4915#endif /* __HEXAGON_ARCH___ >= 68 */
4916
4917#if __HVX_ARCH__ >= 68
4918/* ==========================================================================
4919 Assembly Syntax: Vd32.qf16=vmpy(Vu32.hf,Vv32.hf)
4920 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4921 Instruction Type: CVI_VX_DV
4922 Execution Slots: SLOT23
4923 ========================================================================== */
4924
4925#define Q6_Vqf16_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf16_hf)(Vu,Vv)
4926#endif /* __HEXAGON_ARCH___ >= 68 */
4927
4928#if __HVX_ARCH__ >= 68
4929/* ==========================================================================
4930 Assembly Syntax: Vd32.qf16=vmpy(Vu32.qf16,Vv32.hf)
4931 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
4932 Instruction Type: CVI_VX_DV
4933 Execution Slots: SLOT23
4934 ========================================================================== */
4935
4936#define Q6_Vqf16_vmpy_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf16_mix_hf)(Vu,Vv)
4937#endif /* __HEXAGON_ARCH___ >= 68 */
4938
4939#if __HVX_ARCH__ >= 68
4940/* ==========================================================================
4941 Assembly Syntax: Vd32.qf32=vmpy(Vu32.qf32,Vv32.qf32)
4942 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vmpy_Vqf32Vqf32(HVX_Vector Vu, HVX_Vector Vv)
4943 Instruction Type: CVI_VX_DV
4944 Execution Slots: SLOT23
4945 ========================================================================== */
4946
4947#define Q6_Vqf32_vmpy_Vqf32Vqf32(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32)(Vu,Vv)
4948#endif /* __HEXAGON_ARCH___ >= 68 */
4949
4950#if __HVX_ARCH__ >= 68
4951/* ==========================================================================
4952 Assembly Syntax: Vdd32.qf32=vmpy(Vu32.hf,Vv32.hf)
4953 C Intrinsic Prototype: HVX_VectorPair Q6_Wqf32_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4954 Instruction Type: CVI_VX_DV
4955 Execution Slots: SLOT23
4956 ========================================================================== */
4957
4958#define Q6_Wqf32_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_hf)(Vu,Vv)
4959#endif /* __HEXAGON_ARCH___ >= 68 */
4960
4961#if __HVX_ARCH__ >= 68
4962/* ==========================================================================
4963 Assembly Syntax: Vdd32.qf32=vmpy(Vu32.qf16,Vv32.hf)
4964 C Intrinsic Prototype: HVX_VectorPair Q6_Wqf32_vmpy_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
4965 Instruction Type: CVI_VX_DV
4966 Execution Slots: SLOT23
4967 ========================================================================== */
4968
4969#define Q6_Wqf32_vmpy_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_mix_hf)(Vu,Vv)
4970#endif /* __HEXAGON_ARCH___ >= 68 */
4971
4972#if __HVX_ARCH__ >= 68
4973/* ==========================================================================
4974 Assembly Syntax: Vdd32.qf32=vmpy(Vu32.qf16,Vv32.qf16)
4975 C Intrinsic Prototype: HVX_VectorPair Q6_Wqf32_vmpy_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
4976 Instruction Type: CVI_VX_DV
4977 Execution Slots: SLOT23
4978 ========================================================================== */
4979
4980#define Q6_Wqf32_vmpy_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_qf16)(Vu,Vv)
4981#endif /* __HEXAGON_ARCH___ >= 68 */
4982
4983#if __HVX_ARCH__ >= 68
4984/* ==========================================================================
4985 Assembly Syntax: Vd32.qf32=vmpy(Vu32.sf,Vv32.sf)
4986 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vmpy_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4987 Instruction Type: CVI_VX_DV
4988 Execution Slots: SLOT23
4989 ========================================================================== */
4990
4991#define Q6_Vqf32_vmpy_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_sf)(Vu,Vv)
4992#endif /* __HEXAGON_ARCH___ >= 68 */
4993
4994#if __HVX_ARCH__ >= 68
4995/* ==========================================================================
4996 Assembly Syntax: Vdd32.sf=vmpy(Vu32.hf,Vv32.hf)
4997 C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4998 Instruction Type: CVI_VX_DV
4999 Execution Slots: SLOT23
5000 ========================================================================== */
5001
5002#define Q6_Wsf_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_sf_hf)(Vu,Vv)
5003#endif /* __HEXAGON_ARCH___ >= 68 */
5004
5005#if __HVX_ARCH__ >= 68
5006/* ==========================================================================
5007 Assembly Syntax: Vxx32.sf+=vmpy(Vu32.hf,Vv32.hf)
5008 C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vmpyacc_WsfVhfVhf(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
5009 Instruction Type: CVI_VX_DV
5010 Execution Slots: SLOT23
5011 ========================================================================== */
5012
5013#define Q6_Wsf_vmpyacc_WsfVhfVhf(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_sf_hf_acc)(Vxx,Vu,Vv)
5014#endif /* __HEXAGON_ARCH___ >= 68 */
5015
5016#if __HVX_ARCH__ >= 68
5017/* ==========================================================================
5018 Assembly Syntax: Vd32.sf=vmpy(Vu32.sf,Vv32.sf)
5019 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vmpy_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5020 Instruction Type: CVI_VX_DV
5021 Execution Slots: SLOT23
5022 ========================================================================== */
5023
5024#define Q6_Vsf_vmpy_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_sf_sf)(Vu,Vv)
5025#endif /* __HEXAGON_ARCH___ >= 68 */
5026
5027#if __HVX_ARCH__ >= 68
5028/* ==========================================================================
5029 Assembly Syntax: Vd32.qf16=vsub(Vu32.hf,Vv32.hf)
5030 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5031 Instruction Type: CVI_VS
5032 Execution Slots: SLOT0123
5033 ========================================================================== */
5034
5035#define Q6_Vqf16_vsub_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_hf)(Vu,Vv)
5036#endif /* __HEXAGON_ARCH___ >= 68 */
5037
5038#if __HVX_ARCH__ >= 68
5039/* ==========================================================================
5040 Assembly Syntax: Vd32.hf=vsub(Vu32.hf,Vv32.hf)
5041 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vsub_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5042 Instruction Type: CVI_VX
5043 Execution Slots: SLOT23
5044 ========================================================================== */
5045
5046#define Q6_Vhf_vsub_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_hf_hf)(Vu,Vv)
5047#endif /* __HEXAGON_ARCH___ >= 68 */
5048
5049#if __HVX_ARCH__ >= 68
5050/* ==========================================================================
5051 Assembly Syntax: Vd32.qf16=vsub(Vu32.qf16,Vv32.qf16)
5052 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
5053 Instruction Type: CVI_VS
5054 Execution Slots: SLOT0123
5055 ========================================================================== */
5056
5057#define Q6_Vqf16_vsub_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf16)(Vu,Vv)
5058#endif /* __HEXAGON_ARCH___ >= 68 */
5059
5060#if __HVX_ARCH__ >= 68
5061/* ==========================================================================
5062 Assembly Syntax: Vd32.qf16=vsub(Vu32.qf16,Vv32.hf)
5063 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
5064 Instruction Type: CVI_VS
5065 Execution Slots: SLOT0123
5066 ========================================================================== */
5067
5068#define Q6_Vqf16_vsub_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf16_mix)(Vu,Vv)
5069#endif /* __HEXAGON_ARCH___ >= 68 */
5070
5071#if __HVX_ARCH__ >= 68
5072/* ==========================================================================
5073 Assembly Syntax: Vd32.qf32=vsub(Vu32.qf32,Vv32.qf32)
5074 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_Vqf32Vqf32(HVX_Vector Vu, HVX_Vector Vv)
5075 Instruction Type: CVI_VS
5076 Execution Slots: SLOT0123
5077 ========================================================================== */
5078
5079#define Q6_Vqf32_vsub_Vqf32Vqf32(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf32)(Vu,Vv)
5080#endif /* __HEXAGON_ARCH___ >= 68 */
5081
5082#if __HVX_ARCH__ >= 68
5083/* ==========================================================================
5084 Assembly Syntax: Vd32.qf32=vsub(Vu32.qf32,Vv32.sf)
5085 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_Vqf32Vsf(HVX_Vector Vu, HVX_Vector Vv)
5086 Instruction Type: CVI_VS
5087 Execution Slots: SLOT0123
5088 ========================================================================== */
5089
5090#define Q6_Vqf32_vsub_Vqf32Vsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf32_mix)(Vu,Vv)
5091#endif /* __HEXAGON_ARCH___ >= 68 */
5092
5093#if __HVX_ARCH__ >= 68
5094/* ==========================================================================
5095 Assembly Syntax: Vd32.qf32=vsub(Vu32.sf,Vv32.sf)
5096 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5097 Instruction Type: CVI_VS
5098 Execution Slots: SLOT0123
5099 ========================================================================== */
5100
5101#define Q6_Vqf32_vsub_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_sf)(Vu,Vv)
5102#endif /* __HEXAGON_ARCH___ >= 68 */
5103
5104#if __HVX_ARCH__ >= 68
5105/* ==========================================================================
5106 Assembly Syntax: Vdd32.sf=vsub(Vu32.hf,Vv32.hf)
5107 C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vsub_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5108 Instruction Type: CVI_VX_DV
5109 Execution Slots: SLOT23
5110 ========================================================================== */
5111
5112#define Q6_Wsf_vsub_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_sf_hf)(Vu,Vv)
5113#endif /* __HEXAGON_ARCH___ >= 68 */
5114
5115#if __HVX_ARCH__ >= 68
5116/* ==========================================================================
5117 Assembly Syntax: Vd32.sf=vsub(Vu32.sf,Vv32.sf)
5118 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vsub_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5119 Instruction Type: CVI_VX
5120 Execution Slots: SLOT23
5121 ========================================================================== */
5122
5123#define Q6_Vsf_vsub_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_sf_sf)(Vu,Vv)
5124#endif /* __HEXAGON_ARCH___ >= 68 */
5125
5126#if __HVX_ARCH__ >= 69
5127/* ==========================================================================
5128 Assembly Syntax: Vd32.ub=vasr(Vuu32.uh,Vv32.ub):rnd:sat
5129 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_WuhVub_rnd_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5130 Instruction Type: CVI_VS
5131 Execution Slots: SLOT0123
5132 ========================================================================== */
5133
5134#define Q6_Vub_vasr_WuhVub_rnd_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvuhubrndsat)(Vuu,Vv)
5135#endif /* __HEXAGON_ARCH___ >= 69 */
5136
5137#if __HVX_ARCH__ >= 69
5138/* ==========================================================================
5139 Assembly Syntax: Vd32.ub=vasr(Vuu32.uh,Vv32.ub):sat
5140 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_WuhVub_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5141 Instruction Type: CVI_VS
5142 Execution Slots: SLOT0123
5143 ========================================================================== */
5144
5145#define Q6_Vub_vasr_WuhVub_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvuhubsat)(Vuu,Vv)
5146#endif /* __HEXAGON_ARCH___ >= 69 */
5147
5148#if __HVX_ARCH__ >= 69
5149/* ==========================================================================
5150 Assembly Syntax: Vd32.uh=vasr(Vuu32.w,Vv32.uh):rnd:sat
5151 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_WwVuh_rnd_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5152 Instruction Type: CVI_VS
5153 Execution Slots: SLOT0123
5154 ========================================================================== */
5155
5156#define Q6_Vuh_vasr_WwVuh_rnd_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvwuhrndsat)(Vuu,Vv)
5157#endif /* __HEXAGON_ARCH___ >= 69 */
5158
5159#if __HVX_ARCH__ >= 69
5160/* ==========================================================================
5161 Assembly Syntax: Vd32.uh=vasr(Vuu32.w,Vv32.uh):sat
5162 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_WwVuh_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5163 Instruction Type: CVI_VS
5164 Execution Slots: SLOT0123
5165 ========================================================================== */
5166
5167#define Q6_Vuh_vasr_WwVuh_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvwuhsat)(Vuu,Vv)
5168#endif /* __HEXAGON_ARCH___ >= 69 */
5169
5170#if __HVX_ARCH__ >= 69
5171/* ==========================================================================
5172 Assembly Syntax: Vd32.uh=vmpy(Vu32.uh,Vv32.uh):>>16
5173 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmpy_VuhVuh_rs16(HVX_Vector Vu, HVX_Vector Vv)
5174 Instruction Type: CVI_VX
5175 Execution Slots: SLOT23
5176 ========================================================================== */
5177
5178#define Q6_Vuh_vmpy_VuhVuh_rs16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhvs)(Vu,Vv)
5179#endif /* __HEXAGON_ARCH___ >= 69 */
5180
5181#endif /* __HVX__ */
5182
5183#endif
5184

Warning: This file is not a C or C++ file. It does not have highlighting.

source code of clang/lib/Headers/hvx_hexagon_protos.h