blob: 41ce7a6b93e93f5b139a1cf4a1285ca56b3163a7 [file] [log] [blame]
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08001//===----------------------------------------------------------------------===//
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
13#ifndef _HVX_HEXAGON_PROTOS_H_
14#define _HVX_HEXAGON_PROTOS_H_ 1
15
16#ifdef __HVX__
17#if __HVX_LENGTH__ == 128
18#define __BUILTIN_VECTOR_WRAP(a) a ## _128B
19#else
20#define __BUILTIN_VECTOR_WRAP(a) a
21#endif
22
23#if __HVX_ARCH__ >= 60
24/* ==========================================================================
25 Assembly Syntax: Rd32=vextract(Vu32,Rs32)
26 C Intrinsic Prototype: Word32 Q6_R_vextract_VR(HVX_Vector Vu, Word32 Rs)
27 Instruction Type: LD
28 Execution Slots: SLOT0
29 ========================================================================== */
30
31#define Q6_R_vextract_VR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_extractw)
32#endif /* __HEXAGON_ARCH___ >= 60 */
33
34#if __HVX_ARCH__ >= 60
35/* ==========================================================================
36 Assembly Syntax: Vd32=hi(Vss32)
37 C Intrinsic Prototype: HVX_Vector Q6_V_hi_W(HVX_VectorPair Vss)
38 Instruction Type: CVI_VA
39 Execution Slots: SLOT0123
40 ========================================================================== */
41
42#define Q6_V_hi_W __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_hi)
43#endif /* __HEXAGON_ARCH___ >= 60 */
44
45#if __HVX_ARCH__ >= 60
46/* ==========================================================================
47 Assembly Syntax: Vd32=lo(Vss32)
48 C Intrinsic Prototype: HVX_Vector Q6_V_lo_W(HVX_VectorPair Vss)
49 Instruction Type: CVI_VA
50 Execution Slots: SLOT0123
51 ========================================================================== */
52
53#define Q6_V_lo_W __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lo)
54#endif /* __HEXAGON_ARCH___ >= 60 */
55
56#if __HVX_ARCH__ >= 60
57/* ==========================================================================
58 Assembly Syntax: Vd32=vsplat(Rt32)
59 C Intrinsic Prototype: HVX_Vector Q6_V_vsplat_R(Word32 Rt)
60 Instruction Type: CVI_VX_LATE
61 Execution Slots: SLOT23
62 ========================================================================== */
63
64#define Q6_V_vsplat_R __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplatw)
65#endif /* __HEXAGON_ARCH___ >= 60 */
66
67#if __HVX_ARCH__ >= 60
68/* ==========================================================================
69 Assembly Syntax: Qd4=and(Qs4,Qt4)
70 C Intrinsic Prototype: HVX_VectorPred Q6_Q_and_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
71 Instruction Type: CVI_VA_DV
72 Execution Slots: SLOT0123
73 ========================================================================== */
74
75#define Q6_Q_and_QQ __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_and)
76#endif /* __HEXAGON_ARCH___ >= 60 */
77
78#if __HVX_ARCH__ >= 60
79/* ==========================================================================
80 Assembly Syntax: Qd4=and(Qs4,!Qt4)
81 C Intrinsic Prototype: HVX_VectorPred Q6_Q_and_QQn(HVX_VectorPred Qs, HVX_VectorPred Qt)
82 Instruction Type: CVI_VA_DV
83 Execution Slots: SLOT0123
84 ========================================================================== */
85
86#define Q6_Q_and_QQn __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_and_n)
87#endif /* __HEXAGON_ARCH___ >= 60 */
88
89#if __HVX_ARCH__ >= 60
90/* ==========================================================================
91 Assembly Syntax: Qd4=not(Qs4)
92 C Intrinsic Prototype: HVX_VectorPred Q6_Q_not_Q(HVX_VectorPred Qs)
93 Instruction Type: CVI_VA
94 Execution Slots: SLOT0123
95 ========================================================================== */
96
97#define Q6_Q_not_Q __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_not)
98#endif /* __HEXAGON_ARCH___ >= 60 */
99
100#if __HVX_ARCH__ >= 60
101/* ==========================================================================
102 Assembly Syntax: Qd4=or(Qs4,Qt4)
103 C Intrinsic Prototype: HVX_VectorPred Q6_Q_or_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
104 Instruction Type: CVI_VA_DV
105 Execution Slots: SLOT0123
106 ========================================================================== */
107
108#define Q6_Q_or_QQ __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_or)
109#endif /* __HEXAGON_ARCH___ >= 60 */
110
111#if __HVX_ARCH__ >= 60
112/* ==========================================================================
113 Assembly Syntax: Qd4=or(Qs4,!Qt4)
114 C Intrinsic Prototype: HVX_VectorPred Q6_Q_or_QQn(HVX_VectorPred Qs, HVX_VectorPred Qt)
115 Instruction Type: CVI_VA_DV
116 Execution Slots: SLOT0123
117 ========================================================================== */
118
119#define Q6_Q_or_QQn __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_or_n)
120#endif /* __HEXAGON_ARCH___ >= 60 */
121
122#if __HVX_ARCH__ >= 60
123/* ==========================================================================
124 Assembly Syntax: Qd4=vsetq(Rt32)
125 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vsetq_R(Word32 Rt)
126 Instruction Type: CVI_VP
127 Execution Slots: SLOT0123
128 ========================================================================== */
129
130#define Q6_Q_vsetq_R __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_scalar2)
131#endif /* __HEXAGON_ARCH___ >= 60 */
132
133#if __HVX_ARCH__ >= 60
134/* ==========================================================================
135 Assembly Syntax: Qd4=xor(Qs4,Qt4)
136 C Intrinsic Prototype: HVX_VectorPred Q6_Q_xor_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
137 Instruction Type: CVI_VA_DV
138 Execution Slots: SLOT0123
139 ========================================================================== */
140
141#define Q6_Q_xor_QQ __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_xor)
142#endif /* __HEXAGON_ARCH___ >= 60 */
143
144#if __HVX_ARCH__ >= 60
145/* ==========================================================================
146 Assembly Syntax: if (!Qv4) vmem(Rt32+#s4)=Vs32
147 C Intrinsic Prototype: void Q6_vmem_QnRIV(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
148 Instruction Type: CVI_VM_ST
149 Execution Slots: SLOT0
150 ========================================================================== */
151
152#define Q6_vmem_QnRIV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_nqpred_ai)
153#endif /* __HEXAGON_ARCH___ >= 60 */
154
155#if __HVX_ARCH__ >= 60
156/* ==========================================================================
157 Assembly Syntax: if (!Qv4) vmem(Rt32+#s4):nt=Vs32
158 C Intrinsic Prototype: void Q6_vmem_QnRIV_nt(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
159 Instruction Type: CVI_VM_ST
160 Execution Slots: SLOT0
161 ========================================================================== */
162
163#define Q6_vmem_QnRIV_nt __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_nt_nqpred_ai)
164#endif /* __HEXAGON_ARCH___ >= 60 */
165
166#if __HVX_ARCH__ >= 60
167/* ==========================================================================
168 Assembly Syntax: if (Qv4) vmem(Rt32+#s4):nt=Vs32
169 C Intrinsic Prototype: void Q6_vmem_QRIV_nt(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
170 Instruction Type: CVI_VM_ST
171 Execution Slots: SLOT0
172 ========================================================================== */
173
174#define Q6_vmem_QRIV_nt __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_nt_qpred_ai)
175#endif /* __HEXAGON_ARCH___ >= 60 */
176
177#if __HVX_ARCH__ >= 60
178/* ==========================================================================
179 Assembly Syntax: if (Qv4) vmem(Rt32+#s4)=Vs32
180 C Intrinsic Prototype: void Q6_vmem_QRIV(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
181 Instruction Type: CVI_VM_ST
182 Execution Slots: SLOT0
183 ========================================================================== */
184
185#define Q6_vmem_QRIV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_qpred_ai)
186#endif /* __HEXAGON_ARCH___ >= 60 */
187
188#if __HVX_ARCH__ >= 60
189/* ==========================================================================
190 Assembly Syntax: Vd32.uh=vabsdiff(Vu32.h,Vv32.h)
191 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vabsdiff_VhVh(HVX_Vector Vu, HVX_Vector Vv)
192 Instruction Type: CVI_VX
193 Execution Slots: SLOT23
194 ========================================================================== */
195
196#define Q6_Vuh_vabsdiff_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffh)
197#endif /* __HEXAGON_ARCH___ >= 60 */
198
199#if __HVX_ARCH__ >= 60
200/* ==========================================================================
201 Assembly Syntax: Vd32.ub=vabsdiff(Vu32.ub,Vv32.ub)
202 C Intrinsic Prototype: HVX_Vector Q6_Vub_vabsdiff_VubVub(HVX_Vector Vu, HVX_Vector Vv)
203 Instruction Type: CVI_VX
204 Execution Slots: SLOT23
205 ========================================================================== */
206
207#define Q6_Vub_vabsdiff_VubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffub)
208#endif /* __HEXAGON_ARCH___ >= 60 */
209
210#if __HVX_ARCH__ >= 60
211/* ==========================================================================
212 Assembly Syntax: Vd32.uh=vabsdiff(Vu32.uh,Vv32.uh)
213 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vabsdiff_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
214 Instruction Type: CVI_VX
215 Execution Slots: SLOT23
216 ========================================================================== */
217
218#define Q6_Vuh_vabsdiff_VuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffuh)
219#endif /* __HEXAGON_ARCH___ >= 60 */
220
221#if __HVX_ARCH__ >= 60
222/* ==========================================================================
223 Assembly Syntax: Vd32.uw=vabsdiff(Vu32.w,Vv32.w)
224 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vabsdiff_VwVw(HVX_Vector Vu, HVX_Vector Vv)
225 Instruction Type: CVI_VX
226 Execution Slots: SLOT23
227 ========================================================================== */
228
229#define Q6_Vuw_vabsdiff_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffw)
230#endif /* __HEXAGON_ARCH___ >= 60 */
231
232#if __HVX_ARCH__ >= 60
233/* ==========================================================================
234 Assembly Syntax: Vd32.h=vabs(Vu32.h)
235 C Intrinsic Prototype: HVX_Vector Q6_Vh_vabs_Vh(HVX_Vector Vu)
236 Instruction Type: CVI_VA
237 Execution Slots: SLOT0123
238 ========================================================================== */
239
240#define Q6_Vh_vabs_Vh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsh)
241#endif /* __HEXAGON_ARCH___ >= 60 */
242
243#if __HVX_ARCH__ >= 60
244/* ==========================================================================
245 Assembly Syntax: Vd32.h=vabs(Vu32.h):sat
246 C Intrinsic Prototype: HVX_Vector Q6_Vh_vabs_Vh_sat(HVX_Vector Vu)
247 Instruction Type: CVI_VA
248 Execution Slots: SLOT0123
249 ========================================================================== */
250
251#define Q6_Vh_vabs_Vh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsh_sat)
252#endif /* __HEXAGON_ARCH___ >= 60 */
253
254#if __HVX_ARCH__ >= 60
255/* ==========================================================================
256 Assembly Syntax: Vd32.w=vabs(Vu32.w)
257 C Intrinsic Prototype: HVX_Vector Q6_Vw_vabs_Vw(HVX_Vector Vu)
258 Instruction Type: CVI_VA
259 Execution Slots: SLOT0123
260 ========================================================================== */
261
262#define Q6_Vw_vabs_Vw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsw)
263#endif /* __HEXAGON_ARCH___ >= 60 */
264
265#if __HVX_ARCH__ >= 60
266/* ==========================================================================
267 Assembly Syntax: Vd32.w=vabs(Vu32.w):sat
268 C Intrinsic Prototype: HVX_Vector Q6_Vw_vabs_Vw_sat(HVX_Vector Vu)
269 Instruction Type: CVI_VA
270 Execution Slots: SLOT0123
271 ========================================================================== */
272
273#define Q6_Vw_vabs_Vw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsw_sat)
274#endif /* __HEXAGON_ARCH___ >= 60 */
275
276#if __HVX_ARCH__ >= 60
277/* ==========================================================================
278 Assembly Syntax: Vd32.b=vadd(Vu32.b,Vv32.b)
279 C Intrinsic Prototype: HVX_Vector Q6_Vb_vadd_VbVb(HVX_Vector Vu, HVX_Vector Vv)
280 Instruction Type: CVI_VA
281 Execution Slots: SLOT0123
282 ========================================================================== */
283
284#define Q6_Vb_vadd_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddb)
285#endif /* __HEXAGON_ARCH___ >= 60 */
286
287#if __HVX_ARCH__ >= 60
288/* ==========================================================================
289 Assembly Syntax: Vdd32.b=vadd(Vuu32.b,Vvv32.b)
290 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vadd_WbWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
291 Instruction Type: CVI_VA_DV
292 Execution Slots: SLOT0123
293 ========================================================================== */
294
295#define Q6_Wb_vadd_WbWb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddb_dv)
296#endif /* __HEXAGON_ARCH___ >= 60 */
297
298#if __HVX_ARCH__ >= 60
299/* ==========================================================================
300 Assembly Syntax: if (!Qv4) Vx32.b+=Vu32.b
301 C Intrinsic Prototype: HVX_Vector Q6_Vb_condacc_QnVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
302 Instruction Type: CVI_VA
303 Execution Slots: SLOT0123
304 ========================================================================== */
305
306#define Q6_Vb_condacc_QnVbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbnq)
307#endif /* __HEXAGON_ARCH___ >= 60 */
308
309#if __HVX_ARCH__ >= 60
310/* ==========================================================================
311 Assembly Syntax: if (Qv4) Vx32.b+=Vu32.b
312 C Intrinsic Prototype: HVX_Vector Q6_Vb_condacc_QVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
313 Instruction Type: CVI_VA
314 Execution Slots: SLOT0123
315 ========================================================================== */
316
317#define Q6_Vb_condacc_QVbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbq)
318#endif /* __HEXAGON_ARCH___ >= 60 */
319
320#if __HVX_ARCH__ >= 60
321/* ==========================================================================
322 Assembly Syntax: Vd32.h=vadd(Vu32.h,Vv32.h)
323 C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_VhVh(HVX_Vector Vu, HVX_Vector Vv)
324 Instruction Type: CVI_VA
325 Execution Slots: SLOT0123
326 ========================================================================== */
327
328#define Q6_Vh_vadd_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddh)
329#endif /* __HEXAGON_ARCH___ >= 60 */
330
331#if __HVX_ARCH__ >= 60
332/* ==========================================================================
333 Assembly Syntax: Vdd32.h=vadd(Vuu32.h,Vvv32.h)
334 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_WhWh(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
335 Instruction Type: CVI_VA_DV
336 Execution Slots: SLOT0123
337 ========================================================================== */
338
339#define Q6_Wh_vadd_WhWh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddh_dv)
340#endif /* __HEXAGON_ARCH___ >= 60 */
341
342#if __HVX_ARCH__ >= 60
343/* ==========================================================================
344 Assembly Syntax: if (!Qv4) Vx32.h+=Vu32.h
345 C Intrinsic Prototype: HVX_Vector Q6_Vh_condacc_QnVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
346 Instruction Type: CVI_VA
347 Execution Slots: SLOT0123
348 ========================================================================== */
349
350#define Q6_Vh_condacc_QnVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhnq)
351#endif /* __HEXAGON_ARCH___ >= 60 */
352
353#if __HVX_ARCH__ >= 60
354/* ==========================================================================
355 Assembly Syntax: if (Qv4) Vx32.h+=Vu32.h
356 C Intrinsic Prototype: HVX_Vector Q6_Vh_condacc_QVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
357 Instruction Type: CVI_VA
358 Execution Slots: SLOT0123
359 ========================================================================== */
360
361#define Q6_Vh_condacc_QVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhq)
362#endif /* __HEXAGON_ARCH___ >= 60 */
363
364#if __HVX_ARCH__ >= 60
365/* ==========================================================================
366 Assembly Syntax: Vd32.h=vadd(Vu32.h,Vv32.h):sat
367 C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
368 Instruction Type: CVI_VA
369 Execution Slots: SLOT0123
370 ========================================================================== */
371
372#define Q6_Vh_vadd_VhVh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhsat)
373#endif /* __HEXAGON_ARCH___ >= 60 */
374
375#if __HVX_ARCH__ >= 60
376/* ==========================================================================
377 Assembly Syntax: Vdd32.h=vadd(Vuu32.h,Vvv32.h):sat
378 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_WhWh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
379 Instruction Type: CVI_VA_DV
380 Execution Slots: SLOT0123
381 ========================================================================== */
382
383#define Q6_Wh_vadd_WhWh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhsat_dv)
384#endif /* __HEXAGON_ARCH___ >= 60 */
385
386#if __HVX_ARCH__ >= 60
387/* ==========================================================================
388 Assembly Syntax: Vdd32.w=vadd(Vu32.h,Vv32.h)
389 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_VhVh(HVX_Vector Vu, HVX_Vector Vv)
390 Instruction Type: CVI_VX_DV
391 Execution Slots: SLOT23
392 ========================================================================== */
393
394#define Q6_Ww_vadd_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhw)
395#endif /* __HEXAGON_ARCH___ >= 60 */
396
397#if __HVX_ARCH__ >= 60
398/* ==========================================================================
399 Assembly Syntax: Vdd32.h=vadd(Vu32.ub,Vv32.ub)
400 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_VubVub(HVX_Vector Vu, HVX_Vector Vv)
401 Instruction Type: CVI_VX_DV
402 Execution Slots: SLOT23
403 ========================================================================== */
404
405#define Q6_Wh_vadd_VubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubh)
406#endif /* __HEXAGON_ARCH___ >= 60 */
407
408#if __HVX_ARCH__ >= 60
409/* ==========================================================================
410 Assembly Syntax: Vd32.ub=vadd(Vu32.ub,Vv32.ub):sat
411 C Intrinsic Prototype: HVX_Vector Q6_Vub_vadd_VubVub_sat(HVX_Vector Vu, HVX_Vector Vv)
412 Instruction Type: CVI_VA
413 Execution Slots: SLOT0123
414 ========================================================================== */
415
416#define Q6_Vub_vadd_VubVub_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubsat)
417#endif /* __HEXAGON_ARCH___ >= 60 */
418
419#if __HVX_ARCH__ >= 60
420/* ==========================================================================
421 Assembly Syntax: Vdd32.ub=vadd(Vuu32.ub,Vvv32.ub):sat
422 C Intrinsic Prototype: HVX_VectorPair Q6_Wub_vadd_WubWub_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
423 Instruction Type: CVI_VA_DV
424 Execution Slots: SLOT0123
425 ========================================================================== */
426
427#define Q6_Wub_vadd_WubWub_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubsat_dv)
428#endif /* __HEXAGON_ARCH___ >= 60 */
429
430#if __HVX_ARCH__ >= 60
431/* ==========================================================================
432 Assembly Syntax: Vd32.uh=vadd(Vu32.uh,Vv32.uh):sat
433 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vadd_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
434 Instruction Type: CVI_VA
435 Execution Slots: SLOT0123
436 ========================================================================== */
437
438#define Q6_Vuh_vadd_VuhVuh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhsat)
439#endif /* __HEXAGON_ARCH___ >= 60 */
440
441#if __HVX_ARCH__ >= 60
442/* ==========================================================================
443 Assembly Syntax: Vdd32.uh=vadd(Vuu32.uh,Vvv32.uh):sat
444 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vadd_WuhWuh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
445 Instruction Type: CVI_VA_DV
446 Execution Slots: SLOT0123
447 ========================================================================== */
448
449#define Q6_Wuh_vadd_WuhWuh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhsat_dv)
450#endif /* __HEXAGON_ARCH___ >= 60 */
451
452#if __HVX_ARCH__ >= 60
453/* ==========================================================================
454 Assembly Syntax: Vdd32.w=vadd(Vu32.uh,Vv32.uh)
455 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
456 Instruction Type: CVI_VX_DV
457 Execution Slots: SLOT23
458 ========================================================================== */
459
460#define Q6_Ww_vadd_VuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhw)
461#endif /* __HEXAGON_ARCH___ >= 60 */
462
463#if __HVX_ARCH__ >= 60
464/* ==========================================================================
465 Assembly Syntax: Vd32.w=vadd(Vu32.w,Vv32.w)
466 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVw(HVX_Vector Vu, HVX_Vector Vv)
467 Instruction Type: CVI_VA
468 Execution Slots: SLOT0123
469 ========================================================================== */
470
471#define Q6_Vw_vadd_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddw)
472#endif /* __HEXAGON_ARCH___ >= 60 */
473
474#if __HVX_ARCH__ >= 60
475/* ==========================================================================
476 Assembly Syntax: Vdd32.w=vadd(Vuu32.w,Vvv32.w)
477 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_WwWw(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
478 Instruction Type: CVI_VA_DV
479 Execution Slots: SLOT0123
480 ========================================================================== */
481
482#define Q6_Ww_vadd_WwWw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddw_dv)
483#endif /* __HEXAGON_ARCH___ >= 60 */
484
485#if __HVX_ARCH__ >= 60
486/* ==========================================================================
487 Assembly Syntax: if (!Qv4) Vx32.w+=Vu32.w
488 C Intrinsic Prototype: HVX_Vector Q6_Vw_condacc_QnVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
489 Instruction Type: CVI_VA
490 Execution Slots: SLOT0123
491 ========================================================================== */
492
493#define Q6_Vw_condacc_QnVwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwnq)
494#endif /* __HEXAGON_ARCH___ >= 60 */
495
496#if __HVX_ARCH__ >= 60
497/* ==========================================================================
498 Assembly Syntax: if (Qv4) Vx32.w+=Vu32.w
499 C Intrinsic Prototype: HVX_Vector Q6_Vw_condacc_QVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
500 Instruction Type: CVI_VA
501 Execution Slots: SLOT0123
502 ========================================================================== */
503
504#define Q6_Vw_condacc_QVwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwq)
505#endif /* __HEXAGON_ARCH___ >= 60 */
506
507#if __HVX_ARCH__ >= 60
508/* ==========================================================================
509 Assembly Syntax: Vd32.w=vadd(Vu32.w,Vv32.w):sat
510 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
511 Instruction Type: CVI_VA
512 Execution Slots: SLOT0123
513 ========================================================================== */
514
515#define Q6_Vw_vadd_VwVw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwsat)
516#endif /* __HEXAGON_ARCH___ >= 60 */
517
518#if __HVX_ARCH__ >= 60
519/* ==========================================================================
520 Assembly Syntax: Vdd32.w=vadd(Vuu32.w,Vvv32.w):sat
521 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_WwWw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
522 Instruction Type: CVI_VA_DV
523 Execution Slots: SLOT0123
524 ========================================================================== */
525
526#define Q6_Ww_vadd_WwWw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwsat_dv)
527#endif /* __HEXAGON_ARCH___ >= 60 */
528
529#if __HVX_ARCH__ >= 60
530/* ==========================================================================
531 Assembly Syntax: Vd32=valign(Vu32,Vv32,Rt8)
532 C Intrinsic Prototype: HVX_Vector Q6_V_valign_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
533 Instruction Type: CVI_VP
534 Execution Slots: SLOT0123
535 ========================================================================== */
536
537#define Q6_V_valign_VVR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_valignb)
538#endif /* __HEXAGON_ARCH___ >= 60 */
539
540#if __HVX_ARCH__ >= 60
541/* ==========================================================================
542 Assembly Syntax: Vd32=valign(Vu32,Vv32,#u3)
543 C Intrinsic Prototype: HVX_Vector Q6_V_valign_VVI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
544 Instruction Type: CVI_VP
545 Execution Slots: SLOT0123
546 ========================================================================== */
547
548#define Q6_V_valign_VVI __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_valignbi)
549#endif /* __HEXAGON_ARCH___ >= 60 */
550
551#if __HVX_ARCH__ >= 60
552/* ==========================================================================
553 Assembly Syntax: Vd32=vand(Vu32,Vv32)
554 C Intrinsic Prototype: HVX_Vector Q6_V_vand_VV(HVX_Vector Vu, HVX_Vector Vv)
555 Instruction Type: CVI_VA
556 Execution Slots: SLOT0123
557 ========================================================================== */
558
559#define Q6_V_vand_VV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vand)
560#endif /* __HEXAGON_ARCH___ >= 60 */
561
562#if __HVX_ARCH__ >= 60
563/* ==========================================================================
564 Assembly Syntax: Vd32=vand(Qu4,Rt32)
565 C Intrinsic Prototype: HVX_Vector Q6_V_vand_QR(HVX_VectorPred Qu, Word32 Rt)
566 Instruction Type: CVI_VX_LATE
567 Execution Slots: SLOT23
568 ========================================================================== */
569
570#define Q6_V_vand_QR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)
571#endif /* __HEXAGON_ARCH___ >= 60 */
572
573#if __HVX_ARCH__ >= 60
574/* ==========================================================================
575 Assembly Syntax: Vx32|=vand(Qu4,Rt32)
576 C Intrinsic Prototype: HVX_Vector Q6_V_vandor_VQR(HVX_Vector Vx, HVX_VectorPred Qu, Word32 Rt)
577 Instruction Type: CVI_VX_LATE
578 Execution Slots: SLOT23
579 ========================================================================== */
580
581#define Q6_V_vandor_VQR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt_acc)
582#endif /* __HEXAGON_ARCH___ >= 60 */
583
584#if __HVX_ARCH__ >= 60
585/* ==========================================================================
586 Assembly Syntax: Qd4=vand(Vu32,Rt32)
587 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vand_VR(HVX_Vector Vu, Word32 Rt)
588 Instruction Type: CVI_VX_LATE
589 Execution Slots: SLOT23
590 ========================================================================== */
591
592#define Q6_Q_vand_VR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)
593#endif /* __HEXAGON_ARCH___ >= 60 */
594
595#if __HVX_ARCH__ >= 60
596/* ==========================================================================
597 Assembly Syntax: Qx4|=vand(Vu32,Rt32)
598 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vandor_QVR(HVX_VectorPred Qx, HVX_Vector Vu, Word32 Rt)
599 Instruction Type: CVI_VX_LATE
600 Execution Slots: SLOT23
601 ========================================================================== */
602
603#define Q6_Q_vandor_QVR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt_acc)
604#endif /* __HEXAGON_ARCH___ >= 60 */
605
606#if __HVX_ARCH__ >= 60
607/* ==========================================================================
608 Assembly Syntax: Vd32.h=vasl(Vu32.h,Rt32)
609 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasl_VhR(HVX_Vector Vu, Word32 Rt)
610 Instruction Type: CVI_VS
611 Execution Slots: SLOT0123
612 ========================================================================== */
613
614#define Q6_Vh_vasl_VhR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslh)
615#endif /* __HEXAGON_ARCH___ >= 60 */
616
617#if __HVX_ARCH__ >= 60
618/* ==========================================================================
619 Assembly Syntax: Vd32.h=vasl(Vu32.h,Vv32.h)
620 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasl_VhVh(HVX_Vector Vu, HVX_Vector Vv)
621 Instruction Type: CVI_VS
622 Execution Slots: SLOT0123
623 ========================================================================== */
624
625#define Q6_Vh_vasl_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslhv)
626#endif /* __HEXAGON_ARCH___ >= 60 */
627
628#if __HVX_ARCH__ >= 60
629/* ==========================================================================
630 Assembly Syntax: Vd32.w=vasl(Vu32.w,Rt32)
631 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasl_VwR(HVX_Vector Vu, Word32 Rt)
632 Instruction Type: CVI_VS
633 Execution Slots: SLOT0123
634 ========================================================================== */
635
636#define Q6_Vw_vasl_VwR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslw)
637#endif /* __HEXAGON_ARCH___ >= 60 */
638
639#if __HVX_ARCH__ >= 60
640/* ==========================================================================
641 Assembly Syntax: Vx32.w+=vasl(Vu32.w,Rt32)
642 C Intrinsic Prototype: HVX_Vector Q6_Vw_vaslacc_VwVwR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
643 Instruction Type: CVI_VS
644 Execution Slots: SLOT0123
645 ========================================================================== */
646
647#define Q6_Vw_vaslacc_VwVwR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslw_acc)
648#endif /* __HEXAGON_ARCH___ >= 60 */
649
650#if __HVX_ARCH__ >= 60
651/* ==========================================================================
652 Assembly Syntax: Vd32.w=vasl(Vu32.w,Vv32.w)
653 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasl_VwVw(HVX_Vector Vu, HVX_Vector Vv)
654 Instruction Type: CVI_VS
655 Execution Slots: SLOT0123
656 ========================================================================== */
657
658#define Q6_Vw_vasl_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslwv)
659#endif /* __HEXAGON_ARCH___ >= 60 */
660
661#if __HVX_ARCH__ >= 60
662/* ==========================================================================
663 Assembly Syntax: Vd32.h=vasr(Vu32.h,Rt32)
664 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VhR(HVX_Vector Vu, Word32 Rt)
665 Instruction Type: CVI_VS
666 Execution Slots: SLOT0123
667 ========================================================================== */
668
669#define Q6_Vh_vasr_VhR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrh)
670#endif /* __HEXAGON_ARCH___ >= 60 */
671
672#if __HVX_ARCH__ >= 60
673/* ==========================================================================
674 Assembly Syntax: Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat
675 C Intrinsic Prototype: HVX_Vector Q6_Vb_vasr_VhVhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
676 Instruction Type: CVI_VS
677 Execution Slots: SLOT0123
678 ========================================================================== */
679
680#define Q6_Vb_vasr_VhVhR_rnd_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhbrndsat)
681#endif /* __HEXAGON_ARCH___ >= 60 */
682
683#if __HVX_ARCH__ >= 60
684/* ==========================================================================
685 Assembly Syntax: Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat
686 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VhVhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
687 Instruction Type: CVI_VS
688 Execution Slots: SLOT0123
689 ========================================================================== */
690
691#define Q6_Vub_vasr_VhVhR_rnd_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhubrndsat)
692#endif /* __HEXAGON_ARCH___ >= 60 */
693
694#if __HVX_ARCH__ >= 60
695/* ==========================================================================
696 Assembly Syntax: Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):sat
697 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VhVhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
698 Instruction Type: CVI_VS
699 Execution Slots: SLOT0123
700 ========================================================================== */
701
702#define Q6_Vub_vasr_VhVhR_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhubsat)
703#endif /* __HEXAGON_ARCH___ >= 60 */
704
705#if __HVX_ARCH__ >= 60
706/* ==========================================================================
707 Assembly Syntax: Vd32.h=vasr(Vu32.h,Vv32.h)
708 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VhVh(HVX_Vector Vu, HVX_Vector Vv)
709 Instruction Type: CVI_VS
710 Execution Slots: SLOT0123
711 ========================================================================== */
712
713#define Q6_Vh_vasr_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhv)
714#endif /* __HEXAGON_ARCH___ >= 60 */
715
716#if __HVX_ARCH__ >= 60
717/* ==========================================================================
718 Assembly Syntax: Vd32.w=vasr(Vu32.w,Rt32)
719 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasr_VwR(HVX_Vector Vu, Word32 Rt)
720 Instruction Type: CVI_VS
721 Execution Slots: SLOT0123
722 ========================================================================== */
723
724#define Q6_Vw_vasr_VwR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrw)
725#endif /* __HEXAGON_ARCH___ >= 60 */
726
727#if __HVX_ARCH__ >= 60
728/* ==========================================================================
729 Assembly Syntax: Vx32.w+=vasr(Vu32.w,Rt32)
730 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasracc_VwVwR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
731 Instruction Type: CVI_VS
732 Execution Slots: SLOT0123
733 ========================================================================== */
734
735#define Q6_Vw_vasracc_VwVwR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrw_acc)
736#endif /* __HEXAGON_ARCH___ >= 60 */
737
738#if __HVX_ARCH__ >= 60
739/* ==========================================================================
740 Assembly Syntax: Vd32.h=vasr(Vu32.w,Vv32.w,Rt8)
741 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
742 Instruction Type: CVI_VS
743 Execution Slots: SLOT0123
744 ========================================================================== */
745
746#define Q6_Vh_vasr_VwVwR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwh)
747#endif /* __HEXAGON_ARCH___ >= 60 */
748
749#if __HVX_ARCH__ >= 60
750/* ==========================================================================
751 Assembly Syntax: Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
752 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
753 Instruction Type: CVI_VS
754 Execution Slots: SLOT0123
755 ========================================================================== */
756
757#define Q6_Vh_vasr_VwVwR_rnd_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwhrndsat)
758#endif /* __HEXAGON_ARCH___ >= 60 */
759
760#if __HVX_ARCH__ >= 60
761/* ==========================================================================
762 Assembly Syntax: Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):sat
763 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
764 Instruction Type: CVI_VS
765 Execution Slots: SLOT0123
766 ========================================================================== */
767
768#define Q6_Vh_vasr_VwVwR_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwhsat)
769#endif /* __HEXAGON_ARCH___ >= 60 */
770
771#if __HVX_ARCH__ >= 60
772/* ==========================================================================
773 Assembly Syntax: Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):sat
774 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VwVwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
775 Instruction Type: CVI_VS
776 Execution Slots: SLOT0123
777 ========================================================================== */
778
779#define Q6_Vuh_vasr_VwVwR_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwuhsat)
780#endif /* __HEXAGON_ARCH___ >= 60 */
781
782#if __HVX_ARCH__ >= 60
783/* ==========================================================================
784 Assembly Syntax: Vd32.w=vasr(Vu32.w,Vv32.w)
785 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasr_VwVw(HVX_Vector Vu, HVX_Vector Vv)
786 Instruction Type: CVI_VS
787 Execution Slots: SLOT0123
788 ========================================================================== */
789
790#define Q6_Vw_vasr_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwv)
791#endif /* __HEXAGON_ARCH___ >= 60 */
792
793#if __HVX_ARCH__ >= 60
794/* ==========================================================================
795 Assembly Syntax: Vd32=Vu32
796 C Intrinsic Prototype: HVX_Vector Q6_V_equals_V(HVX_Vector Vu)
797 Instruction Type: CVI_VA
798 Execution Slots: SLOT0123
799 ========================================================================== */
800
801#define Q6_V_equals_V __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassign)
802#endif /* __HEXAGON_ARCH___ >= 60 */
803
804#if __HVX_ARCH__ >= 60
805/* ==========================================================================
806 Assembly Syntax: Vdd32=Vuu32
807 C Intrinsic Prototype: HVX_VectorPair Q6_W_equals_W(HVX_VectorPair Vuu)
808 Instruction Type: CVI_VA_DV
809 Execution Slots: SLOT0123
810 ========================================================================== */
811
812#define Q6_W_equals_W __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassignp)
813#endif /* __HEXAGON_ARCH___ >= 60 */
814
815#if __HVX_ARCH__ >= 60
816/* ==========================================================================
817 Assembly Syntax: Vd32.h=vavg(Vu32.h,Vv32.h)
818 C Intrinsic Prototype: HVX_Vector Q6_Vh_vavg_VhVh(HVX_Vector Vu, HVX_Vector Vv)
819 Instruction Type: CVI_VA
820 Execution Slots: SLOT0123
821 ========================================================================== */
822
823#define Q6_Vh_vavg_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgh)
824#endif /* __HEXAGON_ARCH___ >= 60 */
825
826#if __HVX_ARCH__ >= 60
827/* ==========================================================================
828 Assembly Syntax: Vd32.h=vavg(Vu32.h,Vv32.h):rnd
829 C Intrinsic Prototype: HVX_Vector Q6_Vh_vavg_VhVh_rnd(HVX_Vector Vu, HVX_Vector Vv)
830 Instruction Type: CVI_VA
831 Execution Slots: SLOT0123
832 ========================================================================== */
833
834#define Q6_Vh_vavg_VhVh_rnd __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavghrnd)
835#endif /* __HEXAGON_ARCH___ >= 60 */
836
837#if __HVX_ARCH__ >= 60
838/* ==========================================================================
839 Assembly Syntax: Vd32.ub=vavg(Vu32.ub,Vv32.ub)
840 C Intrinsic Prototype: HVX_Vector Q6_Vub_vavg_VubVub(HVX_Vector Vu, HVX_Vector Vv)
841 Instruction Type: CVI_VA
842 Execution Slots: SLOT0123
843 ========================================================================== */
844
845#define Q6_Vub_vavg_VubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgub)
846#endif /* __HEXAGON_ARCH___ >= 60 */
847
848#if __HVX_ARCH__ >= 60
849/* ==========================================================================
850 Assembly Syntax: Vd32.ub=vavg(Vu32.ub,Vv32.ub):rnd
851 C Intrinsic Prototype: HVX_Vector Q6_Vub_vavg_VubVub_rnd(HVX_Vector Vu, HVX_Vector Vv)
852 Instruction Type: CVI_VA
853 Execution Slots: SLOT0123
854 ========================================================================== */
855
856#define Q6_Vub_vavg_VubVub_rnd __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgubrnd)
857#endif /* __HEXAGON_ARCH___ >= 60 */
858
859#if __HVX_ARCH__ >= 60
860/* ==========================================================================
861 Assembly Syntax: Vd32.uh=vavg(Vu32.uh,Vv32.uh)
862 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vavg_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
863 Instruction Type: CVI_VA
864 Execution Slots: SLOT0123
865 ========================================================================== */
866
867#define Q6_Vuh_vavg_VuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguh)
868#endif /* __HEXAGON_ARCH___ >= 60 */
869
870#if __HVX_ARCH__ >= 60
871/* ==========================================================================
872 Assembly Syntax: Vd32.uh=vavg(Vu32.uh,Vv32.uh):rnd
873 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vavg_VuhVuh_rnd(HVX_Vector Vu, HVX_Vector Vv)
874 Instruction Type: CVI_VA
875 Execution Slots: SLOT0123
876 ========================================================================== */
877
878#define Q6_Vuh_vavg_VuhVuh_rnd __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguhrnd)
879#endif /* __HEXAGON_ARCH___ >= 60 */
880
881#if __HVX_ARCH__ >= 60
882/* ==========================================================================
883 Assembly Syntax: Vd32.w=vavg(Vu32.w,Vv32.w)
884 C Intrinsic Prototype: HVX_Vector Q6_Vw_vavg_VwVw(HVX_Vector Vu, HVX_Vector Vv)
885 Instruction Type: CVI_VA
886 Execution Slots: SLOT0123
887 ========================================================================== */
888
889#define Q6_Vw_vavg_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgw)
890#endif /* __HEXAGON_ARCH___ >= 60 */
891
892#if __HVX_ARCH__ >= 60
893/* ==========================================================================
894 Assembly Syntax: Vd32.w=vavg(Vu32.w,Vv32.w):rnd
895 C Intrinsic Prototype: HVX_Vector Q6_Vw_vavg_VwVw_rnd(HVX_Vector Vu, HVX_Vector Vv)
896 Instruction Type: CVI_VA
897 Execution Slots: SLOT0123
898 ========================================================================== */
899
900#define Q6_Vw_vavg_VwVw_rnd __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgwrnd)
901#endif /* __HEXAGON_ARCH___ >= 60 */
902
903#if __HVX_ARCH__ >= 60
904/* ==========================================================================
905 Assembly Syntax: Vd32.uh=vcl0(Vu32.uh)
906 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vcl0_Vuh(HVX_Vector Vu)
907 Instruction Type: CVI_VS
908 Execution Slots: SLOT0123
909 ========================================================================== */
910
911#define Q6_Vuh_vcl0_Vuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcl0h)
912#endif /* __HEXAGON_ARCH___ >= 60 */
913
914#if __HVX_ARCH__ >= 60
915/* ==========================================================================
916 Assembly Syntax: Vd32.uw=vcl0(Vu32.uw)
917 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vcl0_Vuw(HVX_Vector Vu)
918 Instruction Type: CVI_VS
919 Execution Slots: SLOT0123
920 ========================================================================== */
921
922#define Q6_Vuw_vcl0_Vuw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcl0w)
923#endif /* __HEXAGON_ARCH___ >= 60 */
924
925#if __HVX_ARCH__ >= 60
926/* ==========================================================================
927 Assembly Syntax: Vdd32=vcombine(Vu32,Vv32)
928 C Intrinsic Prototype: HVX_VectorPair Q6_W_vcombine_VV(HVX_Vector Vu, HVX_Vector Vv)
929 Instruction Type: CVI_VA_DV
930 Execution Slots: SLOT0123
931 ========================================================================== */
932
933#define Q6_W_vcombine_VV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcombine)
934#endif /* __HEXAGON_ARCH___ >= 60 */
935
936#if __HVX_ARCH__ >= 60
937/* ==========================================================================
938 Assembly Syntax: Vd32=#0
939 C Intrinsic Prototype: HVX_Vector Q6_V_vzero()
940 Instruction Type: CVI_VA
941 Execution Slots: SLOT0123
942 ========================================================================== */
943
944#define Q6_V_vzero __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vd0)
945#endif /* __HEXAGON_ARCH___ >= 60 */
946
947#if __HVX_ARCH__ >= 60
948/* ==========================================================================
949 Assembly Syntax: Vd32.b=vdeal(Vu32.b)
950 C Intrinsic Prototype: HVX_Vector Q6_Vb_vdeal_Vb(HVX_Vector Vu)
951 Instruction Type: CVI_VP
952 Execution Slots: SLOT0123
953 ========================================================================== */
954
955#define Q6_Vb_vdeal_Vb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealb)
956#endif /* __HEXAGON_ARCH___ >= 60 */
957
958#if __HVX_ARCH__ >= 60
959/* ==========================================================================
960 Assembly Syntax: Vd32.b=vdeale(Vu32.b,Vv32.b)
961 C Intrinsic Prototype: HVX_Vector Q6_Vb_vdeale_VbVb(HVX_Vector Vu, HVX_Vector Vv)
962 Instruction Type: CVI_VP
963 Execution Slots: SLOT0123
964 ========================================================================== */
965
966#define Q6_Vb_vdeale_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealb4w)
967#endif /* __HEXAGON_ARCH___ >= 60 */
968
969#if __HVX_ARCH__ >= 60
970/* ==========================================================================
971 Assembly Syntax: Vd32.h=vdeal(Vu32.h)
972 C Intrinsic Prototype: HVX_Vector Q6_Vh_vdeal_Vh(HVX_Vector Vu)
973 Instruction Type: CVI_VP
974 Execution Slots: SLOT0123
975 ========================================================================== */
976
977#define Q6_Vh_vdeal_Vh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealh)
978#endif /* __HEXAGON_ARCH___ >= 60 */
979
980#if __HVX_ARCH__ >= 60
981/* ==========================================================================
982 Assembly Syntax: Vdd32=vdeal(Vu32,Vv32,Rt8)
983 C Intrinsic Prototype: HVX_VectorPair Q6_W_vdeal_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
984 Instruction Type: CVI_VP_VS
985 Execution Slots: SLOT0123
986 ========================================================================== */
987
988#define Q6_W_vdeal_VVR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealvdd)
989#endif /* __HEXAGON_ARCH___ >= 60 */
990
991#if __HVX_ARCH__ >= 60
992/* ==========================================================================
993 Assembly Syntax: Vd32=vdelta(Vu32,Vv32)
994 C Intrinsic Prototype: HVX_Vector Q6_V_vdelta_VV(HVX_Vector Vu, HVX_Vector Vv)
995 Instruction Type: CVI_VP
996 Execution Slots: SLOT0123
997 ========================================================================== */
998
999#define Q6_V_vdelta_VV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdelta)
1000#endif /* __HEXAGON_ARCH___ >= 60 */
1001
1002#if __HVX_ARCH__ >= 60
1003/* ==========================================================================
1004 Assembly Syntax: Vd32.h=vdmpy(Vu32.ub,Rt32.b)
1005 C Intrinsic Prototype: HVX_Vector Q6_Vh_vdmpy_VubRb(HVX_Vector Vu, Word32 Rt)
1006 Instruction Type: CVI_VX
1007 Execution Slots: SLOT23
1008 ========================================================================== */
1009
1010#define Q6_Vh_vdmpy_VubRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus)
1011#endif /* __HEXAGON_ARCH___ >= 60 */
1012
1013#if __HVX_ARCH__ >= 60
1014/* ==========================================================================
1015 Assembly Syntax: Vx32.h+=vdmpy(Vu32.ub,Rt32.b)
1016 C Intrinsic Prototype: HVX_Vector Q6_Vh_vdmpyacc_VhVubRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1017 Instruction Type: CVI_VX
1018 Execution Slots: SLOT23
1019 ========================================================================== */
1020
1021#define Q6_Vh_vdmpyacc_VhVubRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_acc)
1022#endif /* __HEXAGON_ARCH___ >= 60 */
1023
1024#if __HVX_ARCH__ >= 60
1025/* ==========================================================================
1026 Assembly Syntax: Vdd32.h=vdmpy(Vuu32.ub,Rt32.b)
1027 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vdmpy_WubRb(HVX_VectorPair Vuu, Word32 Rt)
1028 Instruction Type: CVI_VX_DV
1029 Execution Slots: SLOT23
1030 ========================================================================== */
1031
1032#define Q6_Wh_vdmpy_WubRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_dv)
1033#endif /* __HEXAGON_ARCH___ >= 60 */
1034
1035#if __HVX_ARCH__ >= 60
1036/* ==========================================================================
1037 Assembly Syntax: Vxx32.h+=vdmpy(Vuu32.ub,Rt32.b)
1038 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vdmpyacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1039 Instruction Type: CVI_VX_DV
1040 Execution Slots: SLOT23
1041 ========================================================================== */
1042
1043#define Q6_Wh_vdmpyacc_WhWubRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_dv_acc)
1044#endif /* __HEXAGON_ARCH___ >= 60 */
1045
1046#if __HVX_ARCH__ >= 60
1047/* ==========================================================================
1048 Assembly Syntax: Vd32.w=vdmpy(Vu32.h,Rt32.b)
1049 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRb(HVX_Vector Vu, Word32 Rt)
1050 Instruction Type: CVI_VX
1051 Execution Slots: SLOT23
1052 ========================================================================== */
1053
1054#define Q6_Vw_vdmpy_VhRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb)
1055#endif /* __HEXAGON_ARCH___ >= 60 */
1056
1057#if __HVX_ARCH__ >= 60
1058/* ==========================================================================
1059 Assembly Syntax: Vx32.w+=vdmpy(Vu32.h,Rt32.b)
1060 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1061 Instruction Type: CVI_VX
1062 Execution Slots: SLOT23
1063 ========================================================================== */
1064
1065#define Q6_Vw_vdmpyacc_VwVhRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_acc)
1066#endif /* __HEXAGON_ARCH___ >= 60 */
1067
1068#if __HVX_ARCH__ >= 60
1069/* ==========================================================================
1070 Assembly Syntax: Vdd32.w=vdmpy(Vuu32.h,Rt32.b)
1071 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vdmpy_WhRb(HVX_VectorPair Vuu, Word32 Rt)
1072 Instruction Type: CVI_VX_DV
1073 Execution Slots: SLOT23
1074 ========================================================================== */
1075
1076#define Q6_Ww_vdmpy_WhRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_dv)
1077#endif /* __HEXAGON_ARCH___ >= 60 */
1078
1079#if __HVX_ARCH__ >= 60
1080/* ==========================================================================
1081 Assembly Syntax: Vxx32.w+=vdmpy(Vuu32.h,Rt32.b)
1082 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vdmpyacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1083 Instruction Type: CVI_VX_DV
1084 Execution Slots: SLOT23
1085 ========================================================================== */
1086
1087#define Q6_Ww_vdmpyacc_WwWhRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_dv_acc)
1088#endif /* __HEXAGON_ARCH___ >= 60 */
1089
1090#if __HVX_ARCH__ >= 60
1091/* ==========================================================================
1092 Assembly Syntax: Vd32.w=vdmpy(Vuu32.h,Rt32.h):sat
1093 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_WhRh_sat(HVX_VectorPair Vuu, Word32 Rt)
1094 Instruction Type: CVI_VX_DV
1095 Execution Slots: SLOT23
1096 ========================================================================== */
1097
1098#define Q6_Vw_vdmpy_WhRh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhisat)
1099#endif /* __HEXAGON_ARCH___ >= 60 */
1100
1101#if __HVX_ARCH__ >= 60
1102/* ==========================================================================
1103 Assembly Syntax: Vx32.w+=vdmpy(Vuu32.h,Rt32.h):sat
1104 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwWhRh_sat(HVX_Vector Vx, HVX_VectorPair Vuu, Word32 Rt)
1105 Instruction Type: CVI_VX_DV
1106 Execution Slots: SLOT23
1107 ========================================================================== */
1108
1109#define Q6_Vw_vdmpyacc_VwWhRh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhisat_acc)
1110#endif /* __HEXAGON_ARCH___ >= 60 */
1111
1112#if __HVX_ARCH__ >= 60
1113/* ==========================================================================
1114 Assembly Syntax: Vd32.w=vdmpy(Vu32.h,Rt32.h):sat
1115 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRh_sat(HVX_Vector Vu, Word32 Rt)
1116 Instruction Type: CVI_VX_DV
1117 Execution Slots: SLOT23
1118 ========================================================================== */
1119
1120#define Q6_Vw_vdmpy_VhRh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsat)
1121#endif /* __HEXAGON_ARCH___ >= 60 */
1122
1123#if __HVX_ARCH__ >= 60
1124/* ==========================================================================
1125 Assembly Syntax: Vx32.w+=vdmpy(Vu32.h,Rt32.h):sat
1126 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRh_sat(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1127 Instruction Type: CVI_VX_DV
1128 Execution Slots: SLOT23
1129 ========================================================================== */
1130
1131#define Q6_Vw_vdmpyacc_VwVhRh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsat_acc)
1132#endif /* __HEXAGON_ARCH___ >= 60 */
1133
1134#if __HVX_ARCH__ >= 60
1135/* ==========================================================================
1136 Assembly Syntax: Vd32.w=vdmpy(Vuu32.h,Rt32.uh,#1):sat
1137 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_WhRuh_sat(HVX_VectorPair Vuu, Word32 Rt)
1138 Instruction Type: CVI_VX_DV
1139 Execution Slots: SLOT23
1140 ========================================================================== */
1141
1142#define Q6_Vw_vdmpy_WhRuh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsuisat)
1143#endif /* __HEXAGON_ARCH___ >= 60 */
1144
1145#if __HVX_ARCH__ >= 60
1146/* ==========================================================================
1147 Assembly Syntax: Vx32.w+=vdmpy(Vuu32.h,Rt32.uh,#1):sat
1148 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwWhRuh_sat(HVX_Vector Vx, HVX_VectorPair Vuu, Word32 Rt)
1149 Instruction Type: CVI_VX_DV
1150 Execution Slots: SLOT23
1151 ========================================================================== */
1152
1153#define Q6_Vw_vdmpyacc_VwWhRuh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsuisat_acc)
1154#endif /* __HEXAGON_ARCH___ >= 60 */
1155
1156#if __HVX_ARCH__ >= 60
1157/* ==========================================================================
1158 Assembly Syntax: Vd32.w=vdmpy(Vu32.h,Rt32.uh):sat
1159 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRuh_sat(HVX_Vector Vu, Word32 Rt)
1160 Instruction Type: CVI_VX_DV
1161 Execution Slots: SLOT23
1162 ========================================================================== */
1163
1164#define Q6_Vw_vdmpy_VhRuh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsusat)
1165#endif /* __HEXAGON_ARCH___ >= 60 */
1166
1167#if __HVX_ARCH__ >= 60
1168/* ==========================================================================
1169 Assembly Syntax: Vx32.w+=vdmpy(Vu32.h,Rt32.uh):sat
1170 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1171 Instruction Type: CVI_VX_DV
1172 Execution Slots: SLOT23
1173 ========================================================================== */
1174
1175#define Q6_Vw_vdmpyacc_VwVhRuh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsusat_acc)
1176#endif /* __HEXAGON_ARCH___ >= 60 */
1177
1178#if __HVX_ARCH__ >= 60
1179/* ==========================================================================
1180 Assembly Syntax: Vd32.w=vdmpy(Vu32.h,Vv32.h):sat
1181 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
1182 Instruction Type: CVI_VX_DV
1183 Execution Slots: SLOT23
1184 ========================================================================== */
1185
1186#define Q6_Vw_vdmpy_VhVh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhvsat)
1187#endif /* __HEXAGON_ARCH___ >= 60 */
1188
1189#if __HVX_ARCH__ >= 60
1190/* ==========================================================================
1191 Assembly Syntax: Vx32.w+=vdmpy(Vu32.h,Vv32.h):sat
1192 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhVh_sat(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
1193 Instruction Type: CVI_VX_DV
1194 Execution Slots: SLOT23
1195 ========================================================================== */
1196
1197#define Q6_Vw_vdmpyacc_VwVhVh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhvsat_acc)
1198#endif /* __HEXAGON_ARCH___ >= 60 */
1199
1200#if __HVX_ARCH__ >= 60
1201/* ==========================================================================
1202 Assembly Syntax: Vdd32.uw=vdsad(Vuu32.uh,Rt32.uh)
1203 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vdsad_WuhRuh(HVX_VectorPair Vuu, Word32 Rt)
1204 Instruction Type: CVI_VX_DV
1205 Execution Slots: SLOT23
1206 ========================================================================== */
1207
1208#define Q6_Wuw_vdsad_WuhRuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdsaduh)
1209#endif /* __HEXAGON_ARCH___ >= 60 */
1210
1211#if __HVX_ARCH__ >= 60
1212/* ==========================================================================
1213 Assembly Syntax: Vxx32.uw+=vdsad(Vuu32.uh,Rt32.uh)
1214 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vdsadacc_WuwWuhRuh(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1215 Instruction Type: CVI_VX_DV
1216 Execution Slots: SLOT23
1217 ========================================================================== */
1218
1219#define Q6_Wuw_vdsadacc_WuwWuhRuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdsaduh_acc)
1220#endif /* __HEXAGON_ARCH___ >= 60 */
1221
1222#if __HVX_ARCH__ >= 60
1223/* ==========================================================================
1224 Assembly Syntax: Qd4=vcmp.eq(Vu32.b,Vv32.b)
1225 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1226 Instruction Type: CVI_VA
1227 Execution Slots: SLOT0123
1228 ========================================================================== */
1229
1230#define Q6_Q_vcmp_eq_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb)
1231#endif /* __HEXAGON_ARCH___ >= 60 */
1232
1233#if __HVX_ARCH__ >= 60
1234/* ==========================================================================
1235 Assembly Syntax: Qx4&=vcmp.eq(Vu32.b,Vv32.b)
1236 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1237 Instruction Type: CVI_VA
1238 Execution Slots: SLOT0123
1239 ========================================================================== */
1240
1241#define Q6_Q_vcmp_eqand_QVbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb_and)
1242#endif /* __HEXAGON_ARCH___ >= 60 */
1243
1244#if __HVX_ARCH__ >= 60
1245/* ==========================================================================
1246 Assembly Syntax: Qx4|=vcmp.eq(Vu32.b,Vv32.b)
1247 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1248 Instruction Type: CVI_VA
1249 Execution Slots: SLOT0123
1250 ========================================================================== */
1251
1252#define Q6_Q_vcmp_eqor_QVbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb_or)
1253#endif /* __HEXAGON_ARCH___ >= 60 */
1254
1255#if __HVX_ARCH__ >= 60
1256/* ==========================================================================
1257 Assembly Syntax: Qx4^=vcmp.eq(Vu32.b,Vv32.b)
1258 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1259 Instruction Type: CVI_VA
1260 Execution Slots: SLOT0123
1261 ========================================================================== */
1262
1263#define Q6_Q_vcmp_eqxacc_QVbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb_xor)
1264#endif /* __HEXAGON_ARCH___ >= 60 */
1265
1266#if __HVX_ARCH__ >= 60
1267/* ==========================================================================
1268 Assembly Syntax: Qd4=vcmp.eq(Vu32.h,Vv32.h)
1269 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1270 Instruction Type: CVI_VA
1271 Execution Slots: SLOT0123
1272 ========================================================================== */
1273
1274#define Q6_Q_vcmp_eq_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh)
1275#endif /* __HEXAGON_ARCH___ >= 60 */
1276
1277#if __HVX_ARCH__ >= 60
1278/* ==========================================================================
1279 Assembly Syntax: Qx4&=vcmp.eq(Vu32.h,Vv32.h)
1280 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1281 Instruction Type: CVI_VA
1282 Execution Slots: SLOT0123
1283 ========================================================================== */
1284
1285#define Q6_Q_vcmp_eqand_QVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh_and)
1286#endif /* __HEXAGON_ARCH___ >= 60 */
1287
1288#if __HVX_ARCH__ >= 60
1289/* ==========================================================================
1290 Assembly Syntax: Qx4|=vcmp.eq(Vu32.h,Vv32.h)
1291 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1292 Instruction Type: CVI_VA
1293 Execution Slots: SLOT0123
1294 ========================================================================== */
1295
1296#define Q6_Q_vcmp_eqor_QVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh_or)
1297#endif /* __HEXAGON_ARCH___ >= 60 */
1298
1299#if __HVX_ARCH__ >= 60
1300/* ==========================================================================
1301 Assembly Syntax: Qx4^=vcmp.eq(Vu32.h,Vv32.h)
1302 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1303 Instruction Type: CVI_VA
1304 Execution Slots: SLOT0123
1305 ========================================================================== */
1306
1307#define Q6_Q_vcmp_eqxacc_QVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh_xor)
1308#endif /* __HEXAGON_ARCH___ >= 60 */
1309
1310#if __HVX_ARCH__ >= 60
1311/* ==========================================================================
1312 Assembly Syntax: Qd4=vcmp.eq(Vu32.w,Vv32.w)
1313 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1314 Instruction Type: CVI_VA
1315 Execution Slots: SLOT0123
1316 ========================================================================== */
1317
1318#define Q6_Q_vcmp_eq_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw)
1319#endif /* __HEXAGON_ARCH___ >= 60 */
1320
1321#if __HVX_ARCH__ >= 60
1322/* ==========================================================================
1323 Assembly Syntax: Qx4&=vcmp.eq(Vu32.w,Vv32.w)
1324 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1325 Instruction Type: CVI_VA
1326 Execution Slots: SLOT0123
1327 ========================================================================== */
1328
1329#define Q6_Q_vcmp_eqand_QVwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw_and)
1330#endif /* __HEXAGON_ARCH___ >= 60 */
1331
1332#if __HVX_ARCH__ >= 60
1333/* ==========================================================================
1334 Assembly Syntax: Qx4|=vcmp.eq(Vu32.w,Vv32.w)
1335 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1336 Instruction Type: CVI_VA
1337 Execution Slots: SLOT0123
1338 ========================================================================== */
1339
1340#define Q6_Q_vcmp_eqor_QVwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw_or)
1341#endif /* __HEXAGON_ARCH___ >= 60 */
1342
1343#if __HVX_ARCH__ >= 60
1344/* ==========================================================================
1345 Assembly Syntax: Qx4^=vcmp.eq(Vu32.w,Vv32.w)
1346 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1347 Instruction Type: CVI_VA
1348 Execution Slots: SLOT0123
1349 ========================================================================== */
1350
1351#define Q6_Q_vcmp_eqxacc_QVwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw_xor)
1352#endif /* __HEXAGON_ARCH___ >= 60 */
1353
1354#if __HVX_ARCH__ >= 60
1355/* ==========================================================================
1356 Assembly Syntax: Qd4=vcmp.gt(Vu32.b,Vv32.b)
1357 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1358 Instruction Type: CVI_VA
1359 Execution Slots: SLOT0123
1360 ========================================================================== */
1361
1362#define Q6_Q_vcmp_gt_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb)
1363#endif /* __HEXAGON_ARCH___ >= 60 */
1364
1365#if __HVX_ARCH__ >= 60
1366/* ==========================================================================
1367 Assembly Syntax: Qx4&=vcmp.gt(Vu32.b,Vv32.b)
1368 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1369 Instruction Type: CVI_VA
1370 Execution Slots: SLOT0123
1371 ========================================================================== */
1372
1373#define Q6_Q_vcmp_gtand_QVbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb_and)
1374#endif /* __HEXAGON_ARCH___ >= 60 */
1375
1376#if __HVX_ARCH__ >= 60
1377/* ==========================================================================
1378 Assembly Syntax: Qx4|=vcmp.gt(Vu32.b,Vv32.b)
1379 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1380 Instruction Type: CVI_VA
1381 Execution Slots: SLOT0123
1382 ========================================================================== */
1383
1384#define Q6_Q_vcmp_gtor_QVbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb_or)
1385#endif /* __HEXAGON_ARCH___ >= 60 */
1386
1387#if __HVX_ARCH__ >= 60
1388/* ==========================================================================
1389 Assembly Syntax: Qx4^=vcmp.gt(Vu32.b,Vv32.b)
1390 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1391 Instruction Type: CVI_VA
1392 Execution Slots: SLOT0123
1393 ========================================================================== */
1394
1395#define Q6_Q_vcmp_gtxacc_QVbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb_xor)
1396#endif /* __HEXAGON_ARCH___ >= 60 */
1397
1398#if __HVX_ARCH__ >= 60
1399/* ==========================================================================
1400 Assembly Syntax: Qd4=vcmp.gt(Vu32.h,Vv32.h)
1401 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1402 Instruction Type: CVI_VA
1403 Execution Slots: SLOT0123
1404 ========================================================================== */
1405
1406#define Q6_Q_vcmp_gt_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth)
1407#endif /* __HEXAGON_ARCH___ >= 60 */
1408
1409#if __HVX_ARCH__ >= 60
1410/* ==========================================================================
1411 Assembly Syntax: Qx4&=vcmp.gt(Vu32.h,Vv32.h)
1412 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1413 Instruction Type: CVI_VA
1414 Execution Slots: SLOT0123
1415 ========================================================================== */
1416
1417#define Q6_Q_vcmp_gtand_QVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth_and)
1418#endif /* __HEXAGON_ARCH___ >= 60 */
1419
1420#if __HVX_ARCH__ >= 60
1421/* ==========================================================================
1422 Assembly Syntax: Qx4|=vcmp.gt(Vu32.h,Vv32.h)
1423 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1424 Instruction Type: CVI_VA
1425 Execution Slots: SLOT0123
1426 ========================================================================== */
1427
1428#define Q6_Q_vcmp_gtor_QVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth_or)
1429#endif /* __HEXAGON_ARCH___ >= 60 */
1430
1431#if __HVX_ARCH__ >= 60
1432/* ==========================================================================
1433 Assembly Syntax: Qx4^=vcmp.gt(Vu32.h,Vv32.h)
1434 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1435 Instruction Type: CVI_VA
1436 Execution Slots: SLOT0123
1437 ========================================================================== */
1438
1439#define Q6_Q_vcmp_gtxacc_QVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth_xor)
1440#endif /* __HEXAGON_ARCH___ >= 60 */
1441
1442#if __HVX_ARCH__ >= 60
1443/* ==========================================================================
1444 Assembly Syntax: Qd4=vcmp.gt(Vu32.ub,Vv32.ub)
1445 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1446 Instruction Type: CVI_VA
1447 Execution Slots: SLOT0123
1448 ========================================================================== */
1449
1450#define Q6_Q_vcmp_gt_VubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub)
1451#endif /* __HEXAGON_ARCH___ >= 60 */
1452
1453#if __HVX_ARCH__ >= 60
1454/* ==========================================================================
1455 Assembly Syntax: Qx4&=vcmp.gt(Vu32.ub,Vv32.ub)
1456 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1457 Instruction Type: CVI_VA
1458 Execution Slots: SLOT0123
1459 ========================================================================== */
1460
1461#define Q6_Q_vcmp_gtand_QVubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub_and)
1462#endif /* __HEXAGON_ARCH___ >= 60 */
1463
1464#if __HVX_ARCH__ >= 60
1465/* ==========================================================================
1466 Assembly Syntax: Qx4|=vcmp.gt(Vu32.ub,Vv32.ub)
1467 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1468 Instruction Type: CVI_VA
1469 Execution Slots: SLOT0123
1470 ========================================================================== */
1471
1472#define Q6_Q_vcmp_gtor_QVubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub_or)
1473#endif /* __HEXAGON_ARCH___ >= 60 */
1474
1475#if __HVX_ARCH__ >= 60
1476/* ==========================================================================
1477 Assembly Syntax: Qx4^=vcmp.gt(Vu32.ub,Vv32.ub)
1478 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1479 Instruction Type: CVI_VA
1480 Execution Slots: SLOT0123
1481 ========================================================================== */
1482
1483#define Q6_Q_vcmp_gtxacc_QVubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub_xor)
1484#endif /* __HEXAGON_ARCH___ >= 60 */
1485
1486#if __HVX_ARCH__ >= 60
1487/* ==========================================================================
1488 Assembly Syntax: Qd4=vcmp.gt(Vu32.uh,Vv32.uh)
1489 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1490 Instruction Type: CVI_VA
1491 Execution Slots: SLOT0123
1492 ========================================================================== */
1493
1494#define Q6_Q_vcmp_gt_VuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh)
1495#endif /* __HEXAGON_ARCH___ >= 60 */
1496
1497#if __HVX_ARCH__ >= 60
1498/* ==========================================================================
1499 Assembly Syntax: Qx4&=vcmp.gt(Vu32.uh,Vv32.uh)
1500 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1501 Instruction Type: CVI_VA
1502 Execution Slots: SLOT0123
1503 ========================================================================== */
1504
1505#define Q6_Q_vcmp_gtand_QVuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh_and)
1506#endif /* __HEXAGON_ARCH___ >= 60 */
1507
1508#if __HVX_ARCH__ >= 60
1509/* ==========================================================================
1510 Assembly Syntax: Qx4|=vcmp.gt(Vu32.uh,Vv32.uh)
1511 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1512 Instruction Type: CVI_VA
1513 Execution Slots: SLOT0123
1514 ========================================================================== */
1515
1516#define Q6_Q_vcmp_gtor_QVuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh_or)
1517#endif /* __HEXAGON_ARCH___ >= 60 */
1518
1519#if __HVX_ARCH__ >= 60
1520/* ==========================================================================
1521 Assembly Syntax: Qx4^=vcmp.gt(Vu32.uh,Vv32.uh)
1522 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1523 Instruction Type: CVI_VA
1524 Execution Slots: SLOT0123
1525 ========================================================================== */
1526
1527#define Q6_Q_vcmp_gtxacc_QVuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh_xor)
1528#endif /* __HEXAGON_ARCH___ >= 60 */
1529
1530#if __HVX_ARCH__ >= 60
1531/* ==========================================================================
1532 Assembly Syntax: Qd4=vcmp.gt(Vu32.uw,Vv32.uw)
1533 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
1534 Instruction Type: CVI_VA
1535 Execution Slots: SLOT0123
1536 ========================================================================== */
1537
1538#define Q6_Q_vcmp_gt_VuwVuw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw)
1539#endif /* __HEXAGON_ARCH___ >= 60 */
1540
1541#if __HVX_ARCH__ >= 60
1542/* ==========================================================================
1543 Assembly Syntax: Qx4&=vcmp.gt(Vu32.uw,Vv32.uw)
1544 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1545 Instruction Type: CVI_VA
1546 Execution Slots: SLOT0123
1547 ========================================================================== */
1548
1549#define Q6_Q_vcmp_gtand_QVuwVuw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw_and)
1550#endif /* __HEXAGON_ARCH___ >= 60 */
1551
1552#if __HVX_ARCH__ >= 60
1553/* ==========================================================================
1554 Assembly Syntax: Qx4|=vcmp.gt(Vu32.uw,Vv32.uw)
1555 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1556 Instruction Type: CVI_VA
1557 Execution Slots: SLOT0123
1558 ========================================================================== */
1559
1560#define Q6_Q_vcmp_gtor_QVuwVuw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw_or)
1561#endif /* __HEXAGON_ARCH___ >= 60 */
1562
1563#if __HVX_ARCH__ >= 60
1564/* ==========================================================================
1565 Assembly Syntax: Qx4^=vcmp.gt(Vu32.uw,Vv32.uw)
1566 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1567 Instruction Type: CVI_VA
1568 Execution Slots: SLOT0123
1569 ========================================================================== */
1570
1571#define Q6_Q_vcmp_gtxacc_QVuwVuw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw_xor)
1572#endif /* __HEXAGON_ARCH___ >= 60 */
1573
1574#if __HVX_ARCH__ >= 60
1575/* ==========================================================================
1576 Assembly Syntax: Qd4=vcmp.gt(Vu32.w,Vv32.w)
1577 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1578 Instruction Type: CVI_VA
1579 Execution Slots: SLOT0123
1580 ========================================================================== */
1581
1582#define Q6_Q_vcmp_gt_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw)
1583#endif /* __HEXAGON_ARCH___ >= 60 */
1584
1585#if __HVX_ARCH__ >= 60
1586/* ==========================================================================
1587 Assembly Syntax: Qx4&=vcmp.gt(Vu32.w,Vv32.w)
1588 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1589 Instruction Type: CVI_VA
1590 Execution Slots: SLOT0123
1591 ========================================================================== */
1592
1593#define Q6_Q_vcmp_gtand_QVwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw_and)
1594#endif /* __HEXAGON_ARCH___ >= 60 */
1595
1596#if __HVX_ARCH__ >= 60
1597/* ==========================================================================
1598 Assembly Syntax: Qx4|=vcmp.gt(Vu32.w,Vv32.w)
1599 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1600 Instruction Type: CVI_VA
1601 Execution Slots: SLOT0123
1602 ========================================================================== */
1603
1604#define Q6_Q_vcmp_gtor_QVwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw_or)
1605#endif /* __HEXAGON_ARCH___ >= 60 */
1606
1607#if __HVX_ARCH__ >= 60
1608/* ==========================================================================
1609 Assembly Syntax: Qx4^=vcmp.gt(Vu32.w,Vv32.w)
1610 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1611 Instruction Type: CVI_VA
1612 Execution Slots: SLOT0123
1613 ========================================================================== */
1614
1615#define Q6_Q_vcmp_gtxacc_QVwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw_xor)
1616#endif /* __HEXAGON_ARCH___ >= 60 */
1617
1618#if __HVX_ARCH__ >= 60
1619/* ==========================================================================
1620 Assembly Syntax: Vx32.w=vinsert(Rt32)
1621 C Intrinsic Prototype: HVX_Vector Q6_Vw_vinsert_VwR(HVX_Vector Vx, Word32 Rt)
1622 Instruction Type: CVI_VX_LATE
1623 Execution Slots: SLOT23
1624 ========================================================================== */
1625
1626#define Q6_Vw_vinsert_VwR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vinsertwr)
1627#endif /* __HEXAGON_ARCH___ >= 60 */
1628
1629#if __HVX_ARCH__ >= 60
1630/* ==========================================================================
1631 Assembly Syntax: Vd32=vlalign(Vu32,Vv32,Rt8)
1632 C Intrinsic Prototype: HVX_Vector Q6_V_vlalign_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1633 Instruction Type: CVI_VP
1634 Execution Slots: SLOT0123
1635 ========================================================================== */
1636
1637#define Q6_V_vlalign_VVR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlalignb)
1638#endif /* __HEXAGON_ARCH___ >= 60 */
1639
1640#if __HVX_ARCH__ >= 60
1641/* ==========================================================================
1642 Assembly Syntax: Vd32=vlalign(Vu32,Vv32,#u3)
1643 C Intrinsic Prototype: HVX_Vector Q6_V_vlalign_VVI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
1644 Instruction Type: CVI_VP
1645 Execution Slots: SLOT0123
1646 ========================================================================== */
1647
1648#define Q6_V_vlalign_VVI __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlalignbi)
1649#endif /* __HEXAGON_ARCH___ >= 60 */
1650
1651#if __HVX_ARCH__ >= 60
1652/* ==========================================================================
1653 Assembly Syntax: Vd32.uh=vlsr(Vu32.uh,Rt32)
1654 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vlsr_VuhR(HVX_Vector Vu, Word32 Rt)
1655 Instruction Type: CVI_VS
1656 Execution Slots: SLOT0123
1657 ========================================================================== */
1658
1659#define Q6_Vuh_vlsr_VuhR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrh)
1660#endif /* __HEXAGON_ARCH___ >= 60 */
1661
1662#if __HVX_ARCH__ >= 60
1663/* ==========================================================================
1664 Assembly Syntax: Vd32.h=vlsr(Vu32.h,Vv32.h)
1665 C Intrinsic Prototype: HVX_Vector Q6_Vh_vlsr_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1666 Instruction Type: CVI_VS
1667 Execution Slots: SLOT0123
1668 ========================================================================== */
1669
1670#define Q6_Vh_vlsr_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrhv)
1671#endif /* __HEXAGON_ARCH___ >= 60 */
1672
1673#if __HVX_ARCH__ >= 60
1674/* ==========================================================================
1675 Assembly Syntax: Vd32.uw=vlsr(Vu32.uw,Rt32)
1676 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vlsr_VuwR(HVX_Vector Vu, Word32 Rt)
1677 Instruction Type: CVI_VS
1678 Execution Slots: SLOT0123
1679 ========================================================================== */
1680
1681#define Q6_Vuw_vlsr_VuwR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrw)
1682#endif /* __HEXAGON_ARCH___ >= 60 */
1683
1684#if __HVX_ARCH__ >= 60
1685/* ==========================================================================
1686 Assembly Syntax: Vd32.w=vlsr(Vu32.w,Vv32.w)
1687 C Intrinsic Prototype: HVX_Vector Q6_Vw_vlsr_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1688 Instruction Type: CVI_VS
1689 Execution Slots: SLOT0123
1690 ========================================================================== */
1691
1692#define Q6_Vw_vlsr_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrwv)
1693#endif /* __HEXAGON_ARCH___ >= 60 */
1694
1695#if __HVX_ARCH__ >= 60
1696/* ==========================================================================
1697 Assembly Syntax: Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8)
1698 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1699 Instruction Type: CVI_VP
1700 Execution Slots: SLOT0123
1701 ========================================================================== */
1702
1703#define Q6_Vb_vlut32_VbVbR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb)
1704#endif /* __HEXAGON_ARCH___ >= 60 */
1705
1706#if __HVX_ARCH__ >= 60
1707/* ==========================================================================
1708 Assembly Syntax: Vx32.b|=vlut32(Vu32.b,Vv32.b,Rt8)
1709 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32or_VbVbVbR(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1710 Instruction Type: CVI_VP_VS
1711 Execution Slots: SLOT0123
1712 ========================================================================== */
1713
1714#define Q6_Vb_vlut32or_VbVbVbR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_oracc)
1715#endif /* __HEXAGON_ARCH___ >= 60 */
1716
1717#if __HVX_ARCH__ >= 60
1718/* ==========================================================================
1719 Assembly Syntax: Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8)
1720 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1721 Instruction Type: CVI_VP_VS
1722 Execution Slots: SLOT0123
1723 ========================================================================== */
1724
1725#define Q6_Wh_vlut16_VbVhR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh)
1726#endif /* __HEXAGON_ARCH___ >= 60 */
1727
1728#if __HVX_ARCH__ >= 60
1729/* ==========================================================================
1730 Assembly Syntax: Vxx32.h|=vlut16(Vu32.b,Vv32.h,Rt8)
1731 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16or_WhVbVhR(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1732 Instruction Type: CVI_VP_VS
1733 Execution Slots: SLOT0123
1734 ========================================================================== */
1735
1736#define Q6_Wh_vlut16or_WhVbVhR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_oracc)
1737#endif /* __HEXAGON_ARCH___ >= 60 */
1738
1739#if __HVX_ARCH__ >= 60
1740/* ==========================================================================
1741 Assembly Syntax: Vd32.h=vmax(Vu32.h,Vv32.h)
1742 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmax_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1743 Instruction Type: CVI_VA
1744 Execution Slots: SLOT0123
1745 ========================================================================== */
1746
1747#define Q6_Vh_vmax_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxh)
1748#endif /* __HEXAGON_ARCH___ >= 60 */
1749
1750#if __HVX_ARCH__ >= 60
1751/* ==========================================================================
1752 Assembly Syntax: Vd32.ub=vmax(Vu32.ub,Vv32.ub)
1753 C Intrinsic Prototype: HVX_Vector Q6_Vub_vmax_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1754 Instruction Type: CVI_VA
1755 Execution Slots: SLOT0123
1756 ========================================================================== */
1757
1758#define Q6_Vub_vmax_VubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxub)
1759#endif /* __HEXAGON_ARCH___ >= 60 */
1760
1761#if __HVX_ARCH__ >= 60
1762/* ==========================================================================
1763 Assembly Syntax: Vd32.uh=vmax(Vu32.uh,Vv32.uh)
1764 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmax_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1765 Instruction Type: CVI_VA
1766 Execution Slots: SLOT0123
1767 ========================================================================== */
1768
1769#define Q6_Vuh_vmax_VuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxuh)
1770#endif /* __HEXAGON_ARCH___ >= 60 */
1771
1772#if __HVX_ARCH__ >= 60
1773/* ==========================================================================
1774 Assembly Syntax: Vd32.w=vmax(Vu32.w,Vv32.w)
1775 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmax_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1776 Instruction Type: CVI_VA
1777 Execution Slots: SLOT0123
1778 ========================================================================== */
1779
1780#define Q6_Vw_vmax_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxw)
1781#endif /* __HEXAGON_ARCH___ >= 60 */
1782
1783#if __HVX_ARCH__ >= 60
1784/* ==========================================================================
1785 Assembly Syntax: Vd32.h=vmin(Vu32.h,Vv32.h)
1786 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmin_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1787 Instruction Type: CVI_VA
1788 Execution Slots: SLOT0123
1789 ========================================================================== */
1790
1791#define Q6_Vh_vmin_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminh)
1792#endif /* __HEXAGON_ARCH___ >= 60 */
1793
1794#if __HVX_ARCH__ >= 60
1795/* ==========================================================================
1796 Assembly Syntax: Vd32.ub=vmin(Vu32.ub,Vv32.ub)
1797 C Intrinsic Prototype: HVX_Vector Q6_Vub_vmin_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1798 Instruction Type: CVI_VA
1799 Execution Slots: SLOT0123
1800 ========================================================================== */
1801
1802#define Q6_Vub_vmin_VubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminub)
1803#endif /* __HEXAGON_ARCH___ >= 60 */
1804
1805#if __HVX_ARCH__ >= 60
1806/* ==========================================================================
1807 Assembly Syntax: Vd32.uh=vmin(Vu32.uh,Vv32.uh)
1808 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmin_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1809 Instruction Type: CVI_VA
1810 Execution Slots: SLOT0123
1811 ========================================================================== */
1812
1813#define Q6_Vuh_vmin_VuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminuh)
1814#endif /* __HEXAGON_ARCH___ >= 60 */
1815
1816#if __HVX_ARCH__ >= 60
1817/* ==========================================================================
1818 Assembly Syntax: Vd32.w=vmin(Vu32.w,Vv32.w)
1819 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmin_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1820 Instruction Type: CVI_VA
1821 Execution Slots: SLOT0123
1822 ========================================================================== */
1823
1824#define Q6_Vw_vmin_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminw)
1825#endif /* __HEXAGON_ARCH___ >= 60 */
1826
1827#if __HVX_ARCH__ >= 60
1828/* ==========================================================================
1829 Assembly Syntax: Vdd32.h=vmpa(Vuu32.ub,Rt32.b)
1830 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubRb(HVX_VectorPair Vuu, Word32 Rt)
1831 Instruction Type: CVI_VX_DV
1832 Execution Slots: SLOT23
1833 ========================================================================== */
1834
1835#define Q6_Wh_vmpa_WubRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabus)
1836#endif /* __HEXAGON_ARCH___ >= 60 */
1837
1838#if __HVX_ARCH__ >= 60
1839/* ==========================================================================
1840 Assembly Syntax: Vxx32.h+=vmpa(Vuu32.ub,Rt32.b)
1841 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpaacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1842 Instruction Type: CVI_VX_DV
1843 Execution Slots: SLOT23
1844 ========================================================================== */
1845
1846#define Q6_Wh_vmpaacc_WhWubRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabus_acc)
1847#endif /* __HEXAGON_ARCH___ >= 60 */
1848
1849#if __HVX_ARCH__ >= 60
1850/* ==========================================================================
1851 Assembly Syntax: Vdd32.h=vmpa(Vuu32.ub,Vvv32.b)
1852 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
1853 Instruction Type: CVI_VX_DV
1854 Execution Slots: SLOT23
1855 ========================================================================== */
1856
1857#define Q6_Wh_vmpa_WubWb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabusv)
1858#endif /* __HEXAGON_ARCH___ >= 60 */
1859
1860#if __HVX_ARCH__ >= 60
1861/* ==========================================================================
1862 Assembly Syntax: Vdd32.h=vmpa(Vuu32.ub,Vvv32.ub)
1863 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubWub(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
1864 Instruction Type: CVI_VX_DV
1865 Execution Slots: SLOT23
1866 ========================================================================== */
1867
1868#define Q6_Wh_vmpa_WubWub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuuv)
1869#endif /* __HEXAGON_ARCH___ >= 60 */
1870
1871#if __HVX_ARCH__ >= 60
1872/* ==========================================================================
1873 Assembly Syntax: Vdd32.w=vmpa(Vuu32.h,Rt32.b)
1874 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpa_WhRb(HVX_VectorPair Vuu, Word32 Rt)
1875 Instruction Type: CVI_VX_DV
1876 Execution Slots: SLOT23
1877 ========================================================================== */
1878
1879#define Q6_Ww_vmpa_WhRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahb)
1880#endif /* __HEXAGON_ARCH___ >= 60 */
1881
1882#if __HVX_ARCH__ >= 60
1883/* ==========================================================================
1884 Assembly Syntax: Vxx32.w+=vmpa(Vuu32.h,Rt32.b)
1885 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpaacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1886 Instruction Type: CVI_VX_DV
1887 Execution Slots: SLOT23
1888 ========================================================================== */
1889
1890#define Q6_Ww_vmpaacc_WwWhRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahb_acc)
1891#endif /* __HEXAGON_ARCH___ >= 60 */
1892
1893#if __HVX_ARCH__ >= 60
1894/* ==========================================================================
1895 Assembly Syntax: Vdd32.h=vmpy(Vu32.ub,Rt32.b)
1896 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VubRb(HVX_Vector Vu, Word32 Rt)
1897 Instruction Type: CVI_VX_DV
1898 Execution Slots: SLOT23
1899 ========================================================================== */
1900
1901#define Q6_Wh_vmpy_VubRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybus)
1902#endif /* __HEXAGON_ARCH___ >= 60 */
1903
1904#if __HVX_ARCH__ >= 60
1905/* ==========================================================================
1906 Assembly Syntax: Vxx32.h+=vmpy(Vu32.ub,Rt32.b)
1907 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVubRb(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
1908 Instruction Type: CVI_VX_DV
1909 Execution Slots: SLOT23
1910 ========================================================================== */
1911
1912#define Q6_Wh_vmpyacc_WhVubRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybus_acc)
1913#endif /* __HEXAGON_ARCH___ >= 60 */
1914
1915#if __HVX_ARCH__ >= 60
1916/* ==========================================================================
1917 Assembly Syntax: Vdd32.h=vmpy(Vu32.ub,Vv32.b)
1918 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VubVb(HVX_Vector Vu, HVX_Vector Vv)
1919 Instruction Type: CVI_VX_DV
1920 Execution Slots: SLOT23
1921 ========================================================================== */
1922
1923#define Q6_Wh_vmpy_VubVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybusv)
1924#endif /* __HEXAGON_ARCH___ >= 60 */
1925
1926#if __HVX_ARCH__ >= 60
1927/* ==========================================================================
1928 Assembly Syntax: Vxx32.h+=vmpy(Vu32.ub,Vv32.b)
1929 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVubVb(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
1930 Instruction Type: CVI_VX_DV
1931 Execution Slots: SLOT23
1932 ========================================================================== */
1933
1934#define Q6_Wh_vmpyacc_WhVubVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybusv_acc)
1935#endif /* __HEXAGON_ARCH___ >= 60 */
1936
1937#if __HVX_ARCH__ >= 60
1938/* ==========================================================================
1939 Assembly Syntax: Vdd32.h=vmpy(Vu32.b,Vv32.b)
1940 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1941 Instruction Type: CVI_VX_DV
1942 Execution Slots: SLOT23
1943 ========================================================================== */
1944
1945#define Q6_Wh_vmpy_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybv)
1946#endif /* __HEXAGON_ARCH___ >= 60 */
1947
1948#if __HVX_ARCH__ >= 60
1949/* ==========================================================================
1950 Assembly Syntax: Vxx32.h+=vmpy(Vu32.b,Vv32.b)
1951 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVbVb(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
1952 Instruction Type: CVI_VX_DV
1953 Execution Slots: SLOT23
1954 ========================================================================== */
1955
1956#define Q6_Wh_vmpyacc_WhVbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybv_acc)
1957#endif /* __HEXAGON_ARCH___ >= 60 */
1958
1959#if __HVX_ARCH__ >= 60
1960/* ==========================================================================
1961 Assembly Syntax: Vd32.w=vmpye(Vu32.w,Vv32.uh)
1962 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpye_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
1963 Instruction Type: CVI_VX_DV
1964 Execution Slots: SLOT23
1965 ========================================================================== */
1966
1967#define Q6_Vw_vmpye_VwVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyewuh)
1968#endif /* __HEXAGON_ARCH___ >= 60 */
1969
1970#if __HVX_ARCH__ >= 60
1971/* ==========================================================================
1972 Assembly Syntax: Vdd32.w=vmpy(Vu32.h,Rt32.h)
1973 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhRh(HVX_Vector Vu, Word32 Rt)
1974 Instruction Type: CVI_VX_DV
1975 Execution Slots: SLOT23
1976 ========================================================================== */
1977
1978#define Q6_Ww_vmpy_VhRh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyh)
1979#endif /* __HEXAGON_ARCH___ >= 60 */
1980
1981#if __HVX_ARCH__ >= 60
1982/* ==========================================================================
1983 Assembly Syntax: Vxx32.w+=vmpy(Vu32.h,Rt32.h):sat
1984 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhRh_sat(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
1985 Instruction Type: CVI_VX_DV
1986 Execution Slots: SLOT23
1987 ========================================================================== */
1988
1989#define Q6_Ww_vmpyacc_WwVhRh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhsat_acc)
1990#endif /* __HEXAGON_ARCH___ >= 60 */
1991
1992#if __HVX_ARCH__ >= 60
1993/* ==========================================================================
1994 Assembly Syntax: Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:rnd:sat
1995 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhRh_s1_rnd_sat(HVX_Vector Vu, Word32 Rt)
1996 Instruction Type: CVI_VX_DV
1997 Execution Slots: SLOT23
1998 ========================================================================== */
1999
2000#define Q6_Vh_vmpy_VhRh_s1_rnd_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhsrs)
2001#endif /* __HEXAGON_ARCH___ >= 60 */
2002
2003#if __HVX_ARCH__ >= 60
2004/* ==========================================================================
2005 Assembly Syntax: Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:sat
2006 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhRh_s1_sat(HVX_Vector Vu, Word32 Rt)
2007 Instruction Type: CVI_VX_DV
2008 Execution Slots: SLOT23
2009 ========================================================================== */
2010
2011#define Q6_Vh_vmpy_VhRh_s1_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhss)
2012#endif /* __HEXAGON_ARCH___ >= 60 */
2013
2014#if __HVX_ARCH__ >= 60
2015/* ==========================================================================
2016 Assembly Syntax: Vdd32.w=vmpy(Vu32.h,Vv32.uh)
2017 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhVuh(HVX_Vector Vu, HVX_Vector Vv)
2018 Instruction Type: CVI_VX_DV
2019 Execution Slots: SLOT23
2020 ========================================================================== */
2021
2022#define Q6_Ww_vmpy_VhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhus)
2023#endif /* __HEXAGON_ARCH___ >= 60 */
2024
2025#if __HVX_ARCH__ >= 60
2026/* ==========================================================================
2027 Assembly Syntax: Vxx32.w+=vmpy(Vu32.h,Vv32.uh)
2028 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2029 Instruction Type: CVI_VX_DV
2030 Execution Slots: SLOT23
2031 ========================================================================== */
2032
2033#define Q6_Ww_vmpyacc_WwVhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhus_acc)
2034#endif /* __HEXAGON_ARCH___ >= 60 */
2035
2036#if __HVX_ARCH__ >= 60
2037/* ==========================================================================
2038 Assembly Syntax: Vdd32.w=vmpy(Vu32.h,Vv32.h)
2039 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2040 Instruction Type: CVI_VX_DV
2041 Execution Slots: SLOT23
2042 ========================================================================== */
2043
2044#define Q6_Ww_vmpy_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhv)
2045#endif /* __HEXAGON_ARCH___ >= 60 */
2046
2047#if __HVX_ARCH__ >= 60
2048/* ==========================================================================
2049 Assembly Syntax: Vxx32.w+=vmpy(Vu32.h,Vv32.h)
2050 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2051 Instruction Type: CVI_VX_DV
2052 Execution Slots: SLOT23
2053 ========================================================================== */
2054
2055#define Q6_Ww_vmpyacc_WwVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhv_acc)
2056#endif /* __HEXAGON_ARCH___ >= 60 */
2057
2058#if __HVX_ARCH__ >= 60
2059/* ==========================================================================
2060 Assembly Syntax: Vd32.h=vmpy(Vu32.h,Vv32.h):<<1:rnd:sat
2061 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhVh_s1_rnd_sat(HVX_Vector Vu, HVX_Vector Vv)
2062 Instruction Type: CVI_VX_DV
2063 Execution Slots: SLOT23
2064 ========================================================================== */
2065
2066#define Q6_Vh_vmpy_VhVh_s1_rnd_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhvsrs)
2067#endif /* __HEXAGON_ARCH___ >= 60 */
2068
2069#if __HVX_ARCH__ >= 60
2070/* ==========================================================================
2071 Assembly Syntax: Vd32.w=vmpyieo(Vu32.h,Vv32.h)
2072 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieo_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2073 Instruction Type: CVI_VX
2074 Execution Slots: SLOT23
2075 ========================================================================== */
2076
2077#define Q6_Vw_vmpyieo_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyieoh)
2078#endif /* __HEXAGON_ARCH___ >= 60 */
2079
2080#if __HVX_ARCH__ >= 60
2081/* ==========================================================================
2082 Assembly Syntax: Vx32.w+=vmpyie(Vu32.w,Vv32.h)
2083 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieacc_VwVwVh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2084 Instruction Type: CVI_VX_DV
2085 Execution Slots: SLOT23
2086 ========================================================================== */
2087
2088#define Q6_Vw_vmpyieacc_VwVwVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewh_acc)
2089#endif /* __HEXAGON_ARCH___ >= 60 */
2090
2091#if __HVX_ARCH__ >= 60
2092/* ==========================================================================
2093 Assembly Syntax: Vd32.w=vmpyie(Vu32.w,Vv32.uh)
2094 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyie_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
2095 Instruction Type: CVI_VX_DV
2096 Execution Slots: SLOT23
2097 ========================================================================== */
2098
2099#define Q6_Vw_vmpyie_VwVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewuh)
2100#endif /* __HEXAGON_ARCH___ >= 60 */
2101
2102#if __HVX_ARCH__ >= 60
2103/* ==========================================================================
2104 Assembly Syntax: Vx32.w+=vmpyie(Vu32.w,Vv32.uh)
2105 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieacc_VwVwVuh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2106 Instruction Type: CVI_VX_DV
2107 Execution Slots: SLOT23
2108 ========================================================================== */
2109
2110#define Q6_Vw_vmpyieacc_VwVwVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewuh_acc)
2111#endif /* __HEXAGON_ARCH___ >= 60 */
2112
2113#if __HVX_ARCH__ >= 60
2114/* ==========================================================================
2115 Assembly Syntax: Vd32.h=vmpyi(Vu32.h,Vv32.h)
2116 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyi_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2117 Instruction Type: CVI_VX_DV
2118 Execution Slots: SLOT23
2119 ========================================================================== */
2120
2121#define Q6_Vh_vmpyi_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyih)
2122#endif /* __HEXAGON_ARCH___ >= 60 */
2123
2124#if __HVX_ARCH__ >= 60
2125/* ==========================================================================
2126 Assembly Syntax: Vx32.h+=vmpyi(Vu32.h,Vv32.h)
2127 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyiacc_VhVhVh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2128 Instruction Type: CVI_VX_DV
2129 Execution Slots: SLOT23
2130 ========================================================================== */
2131
2132#define Q6_Vh_vmpyiacc_VhVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyih_acc)
2133#endif /* __HEXAGON_ARCH___ >= 60 */
2134
2135#if __HVX_ARCH__ >= 60
2136/* ==========================================================================
2137 Assembly Syntax: Vd32.h=vmpyi(Vu32.h,Rt32.b)
2138 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyi_VhRb(HVX_Vector Vu, Word32 Rt)
2139 Instruction Type: CVI_VX
2140 Execution Slots: SLOT23
2141 ========================================================================== */
2142
2143#define Q6_Vh_vmpyi_VhRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyihb)
2144#endif /* __HEXAGON_ARCH___ >= 60 */
2145
2146#if __HVX_ARCH__ >= 60
2147/* ==========================================================================
2148 Assembly Syntax: Vx32.h+=vmpyi(Vu32.h,Rt32.b)
2149 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyiacc_VhVhRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2150 Instruction Type: CVI_VX
2151 Execution Slots: SLOT23
2152 ========================================================================== */
2153
2154#define Q6_Vh_vmpyiacc_VhVhRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyihb_acc)
2155#endif /* __HEXAGON_ARCH___ >= 60 */
2156
2157#if __HVX_ARCH__ >= 60
2158/* ==========================================================================
2159 Assembly Syntax: Vd32.w=vmpyio(Vu32.w,Vv32.h)
2160 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyio_VwVh(HVX_Vector Vu, HVX_Vector Vv)
2161 Instruction Type: CVI_VX_DV
2162 Execution Slots: SLOT23
2163 ========================================================================== */
2164
2165#define Q6_Vw_vmpyio_VwVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiowh)
2166#endif /* __HEXAGON_ARCH___ >= 60 */
2167
2168#if __HVX_ARCH__ >= 60
2169/* ==========================================================================
2170 Assembly Syntax: Vd32.w=vmpyi(Vu32.w,Rt32.b)
2171 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRb(HVX_Vector Vu, Word32 Rt)
2172 Instruction Type: CVI_VX
2173 Execution Slots: SLOT23
2174 ========================================================================== */
2175
2176#define Q6_Vw_vmpyi_VwRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwb)
2177#endif /* __HEXAGON_ARCH___ >= 60 */
2178
2179#if __HVX_ARCH__ >= 60
2180/* ==========================================================================
2181 Assembly Syntax: Vx32.w+=vmpyi(Vu32.w,Rt32.b)
2182 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2183 Instruction Type: CVI_VX
2184 Execution Slots: SLOT23
2185 ========================================================================== */
2186
2187#define Q6_Vw_vmpyiacc_VwVwRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwb_acc)
2188#endif /* __HEXAGON_ARCH___ >= 60 */
2189
2190#if __HVX_ARCH__ >= 60
2191/* ==========================================================================
2192 Assembly Syntax: Vd32.w=vmpyi(Vu32.w,Rt32.h)
2193 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRh(HVX_Vector Vu, Word32 Rt)
2194 Instruction Type: CVI_VX_DV
2195 Execution Slots: SLOT23
2196 ========================================================================== */
2197
2198#define Q6_Vw_vmpyi_VwRh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwh)
2199#endif /* __HEXAGON_ARCH___ >= 60 */
2200
2201#if __HVX_ARCH__ >= 60
2202/* ==========================================================================
2203 Assembly Syntax: Vx32.w+=vmpyi(Vu32.w,Rt32.h)
2204 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRh(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2205 Instruction Type: CVI_VX_DV
2206 Execution Slots: SLOT23
2207 ========================================================================== */
2208
2209#define Q6_Vw_vmpyiacc_VwVwRh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwh_acc)
2210#endif /* __HEXAGON_ARCH___ >= 60 */
2211
2212#if __HVX_ARCH__ >= 60
2213/* ==========================================================================
2214 Assembly Syntax: Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:sat
2215 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyo_VwVh_s1_sat(HVX_Vector Vu, HVX_Vector Vv)
2216 Instruction Type: CVI_VX_DV
2217 Execution Slots: SLOT23
2218 ========================================================================== */
2219
2220#define Q6_Vw_vmpyo_VwVh_s1_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh)
2221#endif /* __HEXAGON_ARCH___ >= 60 */
2222
2223#if __HVX_ARCH__ >= 60
2224/* ==========================================================================
2225 Assembly Syntax: Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat
2226 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyo_VwVh_s1_rnd_sat(HVX_Vector Vu, HVX_Vector Vv)
2227 Instruction Type: CVI_VX_DV
2228 Execution Slots: SLOT23
2229 ========================================================================== */
2230
2231#define Q6_Vw_vmpyo_VwVh_s1_rnd_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_rnd)
2232#endif /* __HEXAGON_ARCH___ >= 60 */
2233
2234#if __HVX_ARCH__ >= 60
2235/* ==========================================================================
2236 Assembly Syntax: Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat:shift
2237 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyoacc_VwVwVh_s1_rnd_sat_shift(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2238 Instruction Type: CVI_VX_DV
2239 Execution Slots: SLOT23
2240 ========================================================================== */
2241
2242#define Q6_Vw_vmpyoacc_VwVwVh_s1_rnd_sat_shift __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_rnd_sacc)
2243#endif /* __HEXAGON_ARCH___ >= 60 */
2244
2245#if __HVX_ARCH__ >= 60
2246/* ==========================================================================
2247 Assembly Syntax: Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:sat:shift
2248 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyoacc_VwVwVh_s1_sat_shift(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2249 Instruction Type: CVI_VX_DV
2250 Execution Slots: SLOT23
2251 ========================================================================== */
2252
2253#define Q6_Vw_vmpyoacc_VwVwVh_s1_sat_shift __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_sacc)
2254#endif /* __HEXAGON_ARCH___ >= 60 */
2255
2256#if __HVX_ARCH__ >= 60
2257/* ==========================================================================
2258 Assembly Syntax: Vdd32.uh=vmpy(Vu32.ub,Rt32.ub)
2259 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpy_VubRub(HVX_Vector Vu, Word32 Rt)
2260 Instruction Type: CVI_VX_DV
2261 Execution Slots: SLOT23
2262 ========================================================================== */
2263
2264#define Q6_Wuh_vmpy_VubRub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyub)
2265#endif /* __HEXAGON_ARCH___ >= 60 */
2266
2267#if __HVX_ARCH__ >= 60
2268/* ==========================================================================
2269 Assembly Syntax: Vxx32.uh+=vmpy(Vu32.ub,Rt32.ub)
2270 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpyacc_WuhVubRub(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
2271 Instruction Type: CVI_VX_DV
2272 Execution Slots: SLOT23
2273 ========================================================================== */
2274
2275#define Q6_Wuh_vmpyacc_WuhVubRub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyub_acc)
2276#endif /* __HEXAGON_ARCH___ >= 60 */
2277
2278#if __HVX_ARCH__ >= 60
2279/* ==========================================================================
2280 Assembly Syntax: Vdd32.uh=vmpy(Vu32.ub,Vv32.ub)
2281 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpy_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2282 Instruction Type: CVI_VX_DV
2283 Execution Slots: SLOT23
2284 ========================================================================== */
2285
2286#define Q6_Wuh_vmpy_VubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyubv)
2287#endif /* __HEXAGON_ARCH___ >= 60 */
2288
2289#if __HVX_ARCH__ >= 60
2290/* ==========================================================================
2291 Assembly Syntax: Vxx32.uh+=vmpy(Vu32.ub,Vv32.ub)
2292 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpyacc_WuhVubVub(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2293 Instruction Type: CVI_VX_DV
2294 Execution Slots: SLOT23
2295 ========================================================================== */
2296
2297#define Q6_Wuh_vmpyacc_WuhVubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyubv_acc)
2298#endif /* __HEXAGON_ARCH___ >= 60 */
2299
2300#if __HVX_ARCH__ >= 60
2301/* ==========================================================================
2302 Assembly Syntax: Vdd32.uw=vmpy(Vu32.uh,Rt32.uh)
2303 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpy_VuhRuh(HVX_Vector Vu, Word32 Rt)
2304 Instruction Type: CVI_VX_DV
2305 Execution Slots: SLOT23
2306 ========================================================================== */
2307
2308#define Q6_Wuw_vmpy_VuhRuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuh)
2309#endif /* __HEXAGON_ARCH___ >= 60 */
2310
2311#if __HVX_ARCH__ >= 60
2312/* ==========================================================================
2313 Assembly Syntax: Vxx32.uw+=vmpy(Vu32.uh,Rt32.uh)
2314 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpyacc_WuwVuhRuh(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
2315 Instruction Type: CVI_VX_DV
2316 Execution Slots: SLOT23
2317 ========================================================================== */
2318
2319#define Q6_Wuw_vmpyacc_WuwVuhRuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuh_acc)
2320#endif /* __HEXAGON_ARCH___ >= 60 */
2321
2322#if __HVX_ARCH__ >= 60
2323/* ==========================================================================
2324 Assembly Syntax: Vdd32.uw=vmpy(Vu32.uh,Vv32.uh)
2325 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpy_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
2326 Instruction Type: CVI_VX_DV
2327 Execution Slots: SLOT23
2328 ========================================================================== */
2329
2330#define Q6_Wuw_vmpy_VuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhv)
2331#endif /* __HEXAGON_ARCH___ >= 60 */
2332
2333#if __HVX_ARCH__ >= 60
2334/* ==========================================================================
2335 Assembly Syntax: Vxx32.uw+=vmpy(Vu32.uh,Vv32.uh)
2336 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpyacc_WuwVuhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2337 Instruction Type: CVI_VX_DV
2338 Execution Slots: SLOT23
2339 ========================================================================== */
2340
2341#define Q6_Wuw_vmpyacc_WuwVuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhv_acc)
2342#endif /* __HEXAGON_ARCH___ >= 60 */
2343
2344#if __HVX_ARCH__ >= 60
2345/* ==========================================================================
2346 Assembly Syntax: Vd32=vmux(Qt4,Vu32,Vv32)
2347 C Intrinsic Prototype: HVX_Vector Q6_V_vmux_QVV(HVX_VectorPred Qt, HVX_Vector Vu, HVX_Vector Vv)
2348 Instruction Type: CVI_VA
2349 Execution Slots: SLOT0123
2350 ========================================================================== */
2351
2352#define Q6_V_vmux_QVV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmux)
2353#endif /* __HEXAGON_ARCH___ >= 60 */
2354
2355#if __HVX_ARCH__ >= 60
2356/* ==========================================================================
2357 Assembly Syntax: Vd32.h=vnavg(Vu32.h,Vv32.h)
2358 C Intrinsic Prototype: HVX_Vector Q6_Vh_vnavg_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2359 Instruction Type: CVI_VA
2360 Execution Slots: SLOT0123
2361 ========================================================================== */
2362
2363#define Q6_Vh_vnavg_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgh)
2364#endif /* __HEXAGON_ARCH___ >= 60 */
2365
2366#if __HVX_ARCH__ >= 60
2367/* ==========================================================================
2368 Assembly Syntax: Vd32.b=vnavg(Vu32.ub,Vv32.ub)
2369 C Intrinsic Prototype: HVX_Vector Q6_Vb_vnavg_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2370 Instruction Type: CVI_VA
2371 Execution Slots: SLOT0123
2372 ========================================================================== */
2373
2374#define Q6_Vb_vnavg_VubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgub)
2375#endif /* __HEXAGON_ARCH___ >= 60 */
2376
2377#if __HVX_ARCH__ >= 60
2378/* ==========================================================================
2379 Assembly Syntax: Vd32.w=vnavg(Vu32.w,Vv32.w)
2380 C Intrinsic Prototype: HVX_Vector Q6_Vw_vnavg_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2381 Instruction Type: CVI_VA
2382 Execution Slots: SLOT0123
2383 ========================================================================== */
2384
2385#define Q6_Vw_vnavg_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgw)
2386#endif /* __HEXAGON_ARCH___ >= 60 */
2387
2388#if __HVX_ARCH__ >= 60
2389/* ==========================================================================
2390 Assembly Syntax: Vd32.h=vnormamt(Vu32.h)
2391 C Intrinsic Prototype: HVX_Vector Q6_Vh_vnormamt_Vh(HVX_Vector Vu)
2392 Instruction Type: CVI_VS
2393 Execution Slots: SLOT0123
2394 ========================================================================== */
2395
2396#define Q6_Vh_vnormamt_Vh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnormamth)
2397#endif /* __HEXAGON_ARCH___ >= 60 */
2398
2399#if __HVX_ARCH__ >= 60
2400/* ==========================================================================
2401 Assembly Syntax: Vd32.w=vnormamt(Vu32.w)
2402 C Intrinsic Prototype: HVX_Vector Q6_Vw_vnormamt_Vw(HVX_Vector Vu)
2403 Instruction Type: CVI_VS
2404 Execution Slots: SLOT0123
2405 ========================================================================== */
2406
2407#define Q6_Vw_vnormamt_Vw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnormamtw)
2408#endif /* __HEXAGON_ARCH___ >= 60 */
2409
2410#if __HVX_ARCH__ >= 60
2411/* ==========================================================================
2412 Assembly Syntax: Vd32=vnot(Vu32)
2413 C Intrinsic Prototype: HVX_Vector Q6_V_vnot_V(HVX_Vector Vu)
2414 Instruction Type: CVI_VA
2415 Execution Slots: SLOT0123
2416 ========================================================================== */
2417
2418#define Q6_V_vnot_V __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnot)
2419#endif /* __HEXAGON_ARCH___ >= 60 */
2420
2421#if __HVX_ARCH__ >= 60
2422/* ==========================================================================
2423 Assembly Syntax: Vd32=vor(Vu32,Vv32)
2424 C Intrinsic Prototype: HVX_Vector Q6_V_vor_VV(HVX_Vector Vu, HVX_Vector Vv)
2425 Instruction Type: CVI_VA
2426 Execution Slots: SLOT0123
2427 ========================================================================== */
2428
2429#define Q6_V_vor_VV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vor)
2430#endif /* __HEXAGON_ARCH___ >= 60 */
2431
2432#if __HVX_ARCH__ >= 60
2433/* ==========================================================================
2434 Assembly Syntax: Vd32.b=vpacke(Vu32.h,Vv32.h)
2435 C Intrinsic Prototype: HVX_Vector Q6_Vb_vpacke_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2436 Instruction Type: CVI_VP
2437 Execution Slots: SLOT0123
2438 ========================================================================== */
2439
2440#define Q6_Vb_vpacke_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackeb)
2441#endif /* __HEXAGON_ARCH___ >= 60 */
2442
2443#if __HVX_ARCH__ >= 60
2444/* ==========================================================================
2445 Assembly Syntax: Vd32.h=vpacke(Vu32.w,Vv32.w)
2446 C Intrinsic Prototype: HVX_Vector Q6_Vh_vpacke_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2447 Instruction Type: CVI_VP
2448 Execution Slots: SLOT0123
2449 ========================================================================== */
2450
2451#define Q6_Vh_vpacke_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackeh)
2452#endif /* __HEXAGON_ARCH___ >= 60 */
2453
2454#if __HVX_ARCH__ >= 60
2455/* ==========================================================================
2456 Assembly Syntax: Vd32.b=vpack(Vu32.h,Vv32.h):sat
2457 C Intrinsic Prototype: HVX_Vector Q6_Vb_vpack_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2458 Instruction Type: CVI_VP
2459 Execution Slots: SLOT0123
2460 ========================================================================== */
2461
2462#define Q6_Vb_vpack_VhVh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackhb_sat)
2463#endif /* __HEXAGON_ARCH___ >= 60 */
2464
2465#if __HVX_ARCH__ >= 60
2466/* ==========================================================================
2467 Assembly Syntax: Vd32.ub=vpack(Vu32.h,Vv32.h):sat
2468 C Intrinsic Prototype: HVX_Vector Q6_Vub_vpack_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2469 Instruction Type: CVI_VP
2470 Execution Slots: SLOT0123
2471 ========================================================================== */
2472
2473#define Q6_Vub_vpack_VhVh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackhub_sat)
2474#endif /* __HEXAGON_ARCH___ >= 60 */
2475
2476#if __HVX_ARCH__ >= 60
2477/* ==========================================================================
2478 Assembly Syntax: Vd32.b=vpacko(Vu32.h,Vv32.h)
2479 C Intrinsic Prototype: HVX_Vector Q6_Vb_vpacko_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2480 Instruction Type: CVI_VP
2481 Execution Slots: SLOT0123
2482 ========================================================================== */
2483
2484#define Q6_Vb_vpacko_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackob)
2485#endif /* __HEXAGON_ARCH___ >= 60 */
2486
2487#if __HVX_ARCH__ >= 60
2488/* ==========================================================================
2489 Assembly Syntax: Vd32.h=vpacko(Vu32.w,Vv32.w)
2490 C Intrinsic Prototype: HVX_Vector Q6_Vh_vpacko_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2491 Instruction Type: CVI_VP
2492 Execution Slots: SLOT0123
2493 ========================================================================== */
2494
2495#define Q6_Vh_vpacko_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackoh)
2496#endif /* __HEXAGON_ARCH___ >= 60 */
2497
2498#if __HVX_ARCH__ >= 60
2499/* ==========================================================================
2500 Assembly Syntax: Vd32.h=vpack(Vu32.w,Vv32.w):sat
2501 C Intrinsic Prototype: HVX_Vector Q6_Vh_vpack_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2502 Instruction Type: CVI_VP
2503 Execution Slots: SLOT0123
2504 ========================================================================== */
2505
2506#define Q6_Vh_vpack_VwVw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackwh_sat)
2507#endif /* __HEXAGON_ARCH___ >= 60 */
2508
2509#if __HVX_ARCH__ >= 60
2510/* ==========================================================================
2511 Assembly Syntax: Vd32.uh=vpack(Vu32.w,Vv32.w):sat
2512 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vpack_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2513 Instruction Type: CVI_VP
2514 Execution Slots: SLOT0123
2515 ========================================================================== */
2516
2517#define Q6_Vuh_vpack_VwVw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackwuh_sat)
2518#endif /* __HEXAGON_ARCH___ >= 60 */
2519
2520#if __HVX_ARCH__ >= 60
2521/* ==========================================================================
2522 Assembly Syntax: Vd32.h=vpopcount(Vu32.h)
2523 C Intrinsic Prototype: HVX_Vector Q6_Vh_vpopcount_Vh(HVX_Vector Vu)
2524 Instruction Type: CVI_VS
2525 Execution Slots: SLOT0123
2526 ========================================================================== */
2527
2528#define Q6_Vh_vpopcount_Vh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpopcounth)
2529#endif /* __HEXAGON_ARCH___ >= 60 */
2530
2531#if __HVX_ARCH__ >= 60
2532/* ==========================================================================
2533 Assembly Syntax: Vd32=vrdelta(Vu32,Vv32)
2534 C Intrinsic Prototype: HVX_Vector Q6_V_vrdelta_VV(HVX_Vector Vu, HVX_Vector Vv)
2535 Instruction Type: CVI_VP
2536 Execution Slots: SLOT0123
2537 ========================================================================== */
2538
2539#define Q6_V_vrdelta_VV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrdelta)
2540#endif /* __HEXAGON_ARCH___ >= 60 */
2541
2542#if __HVX_ARCH__ >= 60
2543/* ==========================================================================
2544 Assembly Syntax: Vd32.w=vrmpy(Vu32.ub,Rt32.b)
2545 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VubRb(HVX_Vector Vu, Word32 Rt)
2546 Instruction Type: CVI_VX
2547 Execution Slots: SLOT23
2548 ========================================================================== */
2549
2550#define Q6_Vw_vrmpy_VubRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybus)
2551#endif /* __HEXAGON_ARCH___ >= 60 */
2552
2553#if __HVX_ARCH__ >= 60
2554/* ==========================================================================
2555 Assembly Syntax: Vx32.w+=vrmpy(Vu32.ub,Rt32.b)
2556 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVubRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2557 Instruction Type: CVI_VX
2558 Execution Slots: SLOT23
2559 ========================================================================== */
2560
2561#define Q6_Vw_vrmpyacc_VwVubRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybus_acc)
2562#endif /* __HEXAGON_ARCH___ >= 60 */
2563
2564#if __HVX_ARCH__ >= 60
2565/* ==========================================================================
2566 Assembly Syntax: Vdd32.w=vrmpy(Vuu32.ub,Rt32.b,#u1)
2567 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vrmpy_WubRbI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2568 Instruction Type: CVI_VX_DV
2569 Execution Slots: SLOT23
2570 ========================================================================== */
2571
2572#define Q6_Ww_vrmpy_WubRbI __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusi)
2573#endif /* __HEXAGON_ARCH___ >= 60 */
2574
2575#if __HVX_ARCH__ >= 60
2576/* ==========================================================================
2577 Assembly Syntax: Vxx32.w+=vrmpy(Vuu32.ub,Rt32.b,#u1)
2578 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vrmpyacc_WwWubRbI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2579 Instruction Type: CVI_VX_DV
2580 Execution Slots: SLOT23
2581 ========================================================================== */
2582
2583#define Q6_Ww_vrmpyacc_WwWubRbI __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusi_acc)
2584#endif /* __HEXAGON_ARCH___ >= 60 */
2585
2586#if __HVX_ARCH__ >= 60
2587/* ==========================================================================
2588 Assembly Syntax: Vd32.w=vrmpy(Vu32.ub,Vv32.b)
2589 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VubVb(HVX_Vector Vu, HVX_Vector Vv)
2590 Instruction Type: CVI_VX
2591 Execution Slots: SLOT23
2592 ========================================================================== */
2593
2594#define Q6_Vw_vrmpy_VubVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusv)
2595#endif /* __HEXAGON_ARCH___ >= 60 */
2596
2597#if __HVX_ARCH__ >= 60
2598/* ==========================================================================
2599 Assembly Syntax: Vx32.w+=vrmpy(Vu32.ub,Vv32.b)
2600 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVubVb(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2601 Instruction Type: CVI_VX_DV
2602 Execution Slots: SLOT23
2603 ========================================================================== */
2604
2605#define Q6_Vw_vrmpyacc_VwVubVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusv_acc)
2606#endif /* __HEXAGON_ARCH___ >= 60 */
2607
2608#if __HVX_ARCH__ >= 60
2609/* ==========================================================================
2610 Assembly Syntax: Vd32.w=vrmpy(Vu32.b,Vv32.b)
2611 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2612 Instruction Type: CVI_VX
2613 Execution Slots: SLOT23
2614 ========================================================================== */
2615
2616#define Q6_Vw_vrmpy_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybv)
2617#endif /* __HEXAGON_ARCH___ >= 60 */
2618
2619#if __HVX_ARCH__ >= 60
2620/* ==========================================================================
2621 Assembly Syntax: Vx32.w+=vrmpy(Vu32.b,Vv32.b)
2622 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVbVb(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2623 Instruction Type: CVI_VX_DV
2624 Execution Slots: SLOT23
2625 ========================================================================== */
2626
2627#define Q6_Vw_vrmpyacc_VwVbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybv_acc)
2628#endif /* __HEXAGON_ARCH___ >= 60 */
2629
2630#if __HVX_ARCH__ >= 60
2631/* ==========================================================================
2632 Assembly Syntax: Vd32.uw=vrmpy(Vu32.ub,Rt32.ub)
2633 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpy_VubRub(HVX_Vector Vu, Word32 Rt)
2634 Instruction Type: CVI_VX
2635 Execution Slots: SLOT23
2636 ========================================================================== */
2637
2638#define Q6_Vuw_vrmpy_VubRub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyub)
2639#endif /* __HEXAGON_ARCH___ >= 60 */
2640
2641#if __HVX_ARCH__ >= 60
2642/* ==========================================================================
2643 Assembly Syntax: Vx32.uw+=vrmpy(Vu32.ub,Rt32.ub)
2644 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpyacc_VuwVubRub(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2645 Instruction Type: CVI_VX
2646 Execution Slots: SLOT23
2647 ========================================================================== */
2648
2649#define Q6_Vuw_vrmpyacc_VuwVubRub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyub_acc)
2650#endif /* __HEXAGON_ARCH___ >= 60 */
2651
2652#if __HVX_ARCH__ >= 60
2653/* ==========================================================================
2654 Assembly Syntax: Vdd32.uw=vrmpy(Vuu32.ub,Rt32.ub,#u1)
2655 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrmpy_WubRubI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2656 Instruction Type: CVI_VX_DV
2657 Execution Slots: SLOT23
2658 ========================================================================== */
2659
2660#define Q6_Wuw_vrmpy_WubRubI __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubi)
2661#endif /* __HEXAGON_ARCH___ >= 60 */
2662
2663#if __HVX_ARCH__ >= 60
2664/* ==========================================================================
2665 Assembly Syntax: Vxx32.uw+=vrmpy(Vuu32.ub,Rt32.ub,#u1)
2666 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrmpyacc_WuwWubRubI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2667 Instruction Type: CVI_VX_DV
2668 Execution Slots: SLOT23
2669 ========================================================================== */
2670
2671#define Q6_Wuw_vrmpyacc_WuwWubRubI __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubi_acc)
2672#endif /* __HEXAGON_ARCH___ >= 60 */
2673
2674#if __HVX_ARCH__ >= 60
2675/* ==========================================================================
2676 Assembly Syntax: Vd32.uw=vrmpy(Vu32.ub,Vv32.ub)
2677 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpy_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2678 Instruction Type: CVI_VX
2679 Execution Slots: SLOT23
2680 ========================================================================== */
2681
2682#define Q6_Vuw_vrmpy_VubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubv)
2683#endif /* __HEXAGON_ARCH___ >= 60 */
2684
2685#if __HVX_ARCH__ >= 60
2686/* ==========================================================================
2687 Assembly Syntax: Vx32.uw+=vrmpy(Vu32.ub,Vv32.ub)
2688 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpyacc_VuwVubVub(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2689 Instruction Type: CVI_VX_DV
2690 Execution Slots: SLOT23
2691 ========================================================================== */
2692
2693#define Q6_Vuw_vrmpyacc_VuwVubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubv_acc)
2694#endif /* __HEXAGON_ARCH___ >= 60 */
2695
2696#if __HVX_ARCH__ >= 60
2697/* ==========================================================================
2698 Assembly Syntax: Vd32=vror(Vu32,Rt32)
2699 C Intrinsic Prototype: HVX_Vector Q6_V_vror_VR(HVX_Vector Vu, Word32 Rt)
2700 Instruction Type: CVI_VP
2701 Execution Slots: SLOT0123
2702 ========================================================================== */
2703
2704#define Q6_V_vror_VR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vror)
2705#endif /* __HEXAGON_ARCH___ >= 60 */
2706
2707#if __HVX_ARCH__ >= 60
2708/* ==========================================================================
2709 Assembly Syntax: Vd32.b=vround(Vu32.h,Vv32.h):sat
2710 C Intrinsic Prototype: HVX_Vector Q6_Vb_vround_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2711 Instruction Type: CVI_VS
2712 Execution Slots: SLOT0123
2713 ========================================================================== */
2714
2715#define Q6_Vb_vround_VhVh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundhb)
2716#endif /* __HEXAGON_ARCH___ >= 60 */
2717
2718#if __HVX_ARCH__ >= 60
2719/* ==========================================================================
2720 Assembly Syntax: Vd32.ub=vround(Vu32.h,Vv32.h):sat
2721 C Intrinsic Prototype: HVX_Vector Q6_Vub_vround_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2722 Instruction Type: CVI_VS
2723 Execution Slots: SLOT0123
2724 ========================================================================== */
2725
2726#define Q6_Vub_vround_VhVh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundhub)
2727#endif /* __HEXAGON_ARCH___ >= 60 */
2728
2729#if __HVX_ARCH__ >= 60
2730/* ==========================================================================
2731 Assembly Syntax: Vd32.h=vround(Vu32.w,Vv32.w):sat
2732 C Intrinsic Prototype: HVX_Vector Q6_Vh_vround_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2733 Instruction Type: CVI_VS
2734 Execution Slots: SLOT0123
2735 ========================================================================== */
2736
2737#define Q6_Vh_vround_VwVw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundwh)
2738#endif /* __HEXAGON_ARCH___ >= 60 */
2739
2740#if __HVX_ARCH__ >= 60
2741/* ==========================================================================
2742 Assembly Syntax: Vd32.uh=vround(Vu32.w,Vv32.w):sat
2743 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vround_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2744 Instruction Type: CVI_VS
2745 Execution Slots: SLOT0123
2746 ========================================================================== */
2747
2748#define Q6_Vuh_vround_VwVw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundwuh)
2749#endif /* __HEXAGON_ARCH___ >= 60 */
2750
2751#if __HVX_ARCH__ >= 60
2752/* ==========================================================================
2753 Assembly Syntax: Vdd32.uw=vrsad(Vuu32.ub,Rt32.ub,#u1)
2754 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrsad_WubRubI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2755 Instruction Type: CVI_VX_DV
2756 Execution Slots: SLOT23
2757 ========================================================================== */
2758
2759#define Q6_Wuw_vrsad_WubRubI __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrsadubi)
2760#endif /* __HEXAGON_ARCH___ >= 60 */
2761
2762#if __HVX_ARCH__ >= 60
2763/* ==========================================================================
2764 Assembly Syntax: Vxx32.uw+=vrsad(Vuu32.ub,Rt32.ub,#u1)
2765 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrsadacc_WuwWubRubI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2766 Instruction Type: CVI_VX_DV
2767 Execution Slots: SLOT23
2768 ========================================================================== */
2769
2770#define Q6_Wuw_vrsadacc_WuwWubRubI __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrsadubi_acc)
2771#endif /* __HEXAGON_ARCH___ >= 60 */
2772
2773#if __HVX_ARCH__ >= 60
2774/* ==========================================================================
2775 Assembly Syntax: Vd32.ub=vsat(Vu32.h,Vv32.h)
2776 C Intrinsic Prototype: HVX_Vector Q6_Vub_vsat_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2777 Instruction Type: CVI_VA
2778 Execution Slots: SLOT0123
2779 ========================================================================== */
2780
2781#define Q6_Vub_vsat_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsathub)
2782#endif /* __HEXAGON_ARCH___ >= 60 */
2783
2784#if __HVX_ARCH__ >= 60
2785/* ==========================================================================
2786 Assembly Syntax: Vd32.h=vsat(Vu32.w,Vv32.w)
2787 C Intrinsic Prototype: HVX_Vector Q6_Vh_vsat_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2788 Instruction Type: CVI_VA
2789 Execution Slots: SLOT0123
2790 ========================================================================== */
2791
2792#define Q6_Vh_vsat_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatwh)
2793#endif /* __HEXAGON_ARCH___ >= 60 */
2794
2795#if __HVX_ARCH__ >= 60
2796/* ==========================================================================
2797 Assembly Syntax: Vdd32.h=vsxt(Vu32.b)
2798 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsxt_Vb(HVX_Vector Vu)
2799 Instruction Type: CVI_VA_DV
2800 Execution Slots: SLOT0123
2801 ========================================================================== */
2802
2803#define Q6_Wh_vsxt_Vb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsb)
2804#endif /* __HEXAGON_ARCH___ >= 60 */
2805
2806#if __HVX_ARCH__ >= 60
2807/* ==========================================================================
2808 Assembly Syntax: Vdd32.w=vsxt(Vu32.h)
2809 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsxt_Vh(HVX_Vector Vu)
2810 Instruction Type: CVI_VA_DV
2811 Execution Slots: SLOT0123
2812 ========================================================================== */
2813
2814#define Q6_Ww_vsxt_Vh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsh)
2815#endif /* __HEXAGON_ARCH___ >= 60 */
2816
2817#if __HVX_ARCH__ >= 60
2818/* ==========================================================================
2819 Assembly Syntax: Vd32.h=vshuffe(Vu32.h,Vv32.h)
2820 C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuffe_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2821 Instruction Type: CVI_VA
2822 Execution Slots: SLOT0123
2823 ========================================================================== */
2824
2825#define Q6_Vh_vshuffe_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufeh)
2826#endif /* __HEXAGON_ARCH___ >= 60 */
2827
2828#if __HVX_ARCH__ >= 60
2829/* ==========================================================================
2830 Assembly Syntax: Vd32.b=vshuff(Vu32.b)
2831 C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuff_Vb(HVX_Vector Vu)
2832 Instruction Type: CVI_VP
2833 Execution Slots: SLOT0123
2834 ========================================================================== */
2835
2836#define Q6_Vb_vshuff_Vb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffb)
2837#endif /* __HEXAGON_ARCH___ >= 60 */
2838
2839#if __HVX_ARCH__ >= 60
2840/* ==========================================================================
2841 Assembly Syntax: Vd32.b=vshuffe(Vu32.b,Vv32.b)
2842 C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuffe_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2843 Instruction Type: CVI_VA
2844 Execution Slots: SLOT0123
2845 ========================================================================== */
2846
2847#define Q6_Vb_vshuffe_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffeb)
2848#endif /* __HEXAGON_ARCH___ >= 60 */
2849
2850#if __HVX_ARCH__ >= 60
2851/* ==========================================================================
2852 Assembly Syntax: Vd32.h=vshuff(Vu32.h)
2853 C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuff_Vh(HVX_Vector Vu)
2854 Instruction Type: CVI_VP
2855 Execution Slots: SLOT0123
2856 ========================================================================== */
2857
2858#define Q6_Vh_vshuff_Vh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffh)
2859#endif /* __HEXAGON_ARCH___ >= 60 */
2860
2861#if __HVX_ARCH__ >= 60
2862/* ==========================================================================
2863 Assembly Syntax: Vd32.b=vshuffo(Vu32.b,Vv32.b)
2864 C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuffo_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2865 Instruction Type: CVI_VA
2866 Execution Slots: SLOT0123
2867 ========================================================================== */
2868
2869#define Q6_Vb_vshuffo_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffob)
2870#endif /* __HEXAGON_ARCH___ >= 60 */
2871
2872#if __HVX_ARCH__ >= 60
2873/* ==========================================================================
2874 Assembly Syntax: Vdd32=vshuff(Vu32,Vv32,Rt8)
2875 C Intrinsic Prototype: HVX_VectorPair Q6_W_vshuff_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
2876 Instruction Type: CVI_VP_VS
2877 Execution Slots: SLOT0123
2878 ========================================================================== */
2879
2880#define Q6_W_vshuff_VVR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffvdd)
2881#endif /* __HEXAGON_ARCH___ >= 60 */
2882
2883#if __HVX_ARCH__ >= 60
2884/* ==========================================================================
2885 Assembly Syntax: Vdd32.b=vshuffoe(Vu32.b,Vv32.b)
2886 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vshuffoe_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2887 Instruction Type: CVI_VA_DV
2888 Execution Slots: SLOT0123
2889 ========================================================================== */
2890
2891#define Q6_Wb_vshuffoe_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoeb)
2892#endif /* __HEXAGON_ARCH___ >= 60 */
2893
2894#if __HVX_ARCH__ >= 60
2895/* ==========================================================================
2896 Assembly Syntax: Vdd32.h=vshuffoe(Vu32.h,Vv32.h)
2897 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vshuffoe_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2898 Instruction Type: CVI_VA_DV
2899 Execution Slots: SLOT0123
2900 ========================================================================== */
2901
2902#define Q6_Wh_vshuffoe_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoeh)
2903#endif /* __HEXAGON_ARCH___ >= 60 */
2904
2905#if __HVX_ARCH__ >= 60
2906/* ==========================================================================
2907 Assembly Syntax: Vd32.h=vshuffo(Vu32.h,Vv32.h)
2908 C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuffo_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2909 Instruction Type: CVI_VA
2910 Execution Slots: SLOT0123
2911 ========================================================================== */
2912
2913#define Q6_Vh_vshuffo_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoh)
2914#endif /* __HEXAGON_ARCH___ >= 60 */
2915
2916#if __HVX_ARCH__ >= 60
2917/* ==========================================================================
2918 Assembly Syntax: Vd32.b=vsub(Vu32.b,Vv32.b)
2919 C Intrinsic Prototype: HVX_Vector Q6_Vb_vsub_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2920 Instruction Type: CVI_VA
2921 Execution Slots: SLOT0123
2922 ========================================================================== */
2923
2924#define Q6_Vb_vsub_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubb)
2925#endif /* __HEXAGON_ARCH___ >= 60 */
2926
2927#if __HVX_ARCH__ >= 60
2928/* ==========================================================================
2929 Assembly Syntax: Vdd32.b=vsub(Vuu32.b,Vvv32.b)
2930 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vsub_WbWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
2931 Instruction Type: CVI_VA_DV
2932 Execution Slots: SLOT0123
2933 ========================================================================== */
2934
2935#define Q6_Wb_vsub_WbWb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubb_dv)
2936#endif /* __HEXAGON_ARCH___ >= 60 */
2937
2938#if __HVX_ARCH__ >= 60
2939/* ==========================================================================
2940 Assembly Syntax: if (!Qv4) Vx32.b-=Vu32.b
2941 C Intrinsic Prototype: HVX_Vector Q6_Vb_condnac_QnVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2942 Instruction Type: CVI_VA
2943 Execution Slots: SLOT0123
2944 ========================================================================== */
2945
2946#define Q6_Vb_condnac_QnVbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbnq)
2947#endif /* __HEXAGON_ARCH___ >= 60 */
2948
2949#if __HVX_ARCH__ >= 60
2950/* ==========================================================================
2951 Assembly Syntax: if (Qv4) Vx32.b-=Vu32.b
2952 C Intrinsic Prototype: HVX_Vector Q6_Vb_condnac_QVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2953 Instruction Type: CVI_VA
2954 Execution Slots: SLOT0123
2955 ========================================================================== */
2956
2957#define Q6_Vb_condnac_QVbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbq)
2958#endif /* __HEXAGON_ARCH___ >= 60 */
2959
2960#if __HVX_ARCH__ >= 60
2961/* ==========================================================================
2962 Assembly Syntax: Vd32.h=vsub(Vu32.h,Vv32.h)
2963 C Intrinsic Prototype: HVX_Vector Q6_Vh_vsub_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2964 Instruction Type: CVI_VA
2965 Execution Slots: SLOT0123
2966 ========================================================================== */
2967
2968#define Q6_Vh_vsub_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubh)
2969#endif /* __HEXAGON_ARCH___ >= 60 */
2970
2971#if __HVX_ARCH__ >= 60
2972/* ==========================================================================
2973 Assembly Syntax: Vdd32.h=vsub(Vuu32.h,Vvv32.h)
2974 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_WhWh(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
2975 Instruction Type: CVI_VA_DV
2976 Execution Slots: SLOT0123
2977 ========================================================================== */
2978
2979#define Q6_Wh_vsub_WhWh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubh_dv)
2980#endif /* __HEXAGON_ARCH___ >= 60 */
2981
2982#if __HVX_ARCH__ >= 60
2983/* ==========================================================================
2984 Assembly Syntax: if (!Qv4) Vx32.h-=Vu32.h
2985 C Intrinsic Prototype: HVX_Vector Q6_Vh_condnac_QnVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2986 Instruction Type: CVI_VA
2987 Execution Slots: SLOT0123
2988 ========================================================================== */
2989
2990#define Q6_Vh_condnac_QnVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhnq)
2991#endif /* __HEXAGON_ARCH___ >= 60 */
2992
2993#if __HVX_ARCH__ >= 60
2994/* ==========================================================================
2995 Assembly Syntax: if (Qv4) Vx32.h-=Vu32.h
2996 C Intrinsic Prototype: HVX_Vector Q6_Vh_condnac_QVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2997 Instruction Type: CVI_VA
2998 Execution Slots: SLOT0123
2999 ========================================================================== */
3000
3001#define Q6_Vh_condnac_QVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhq)
3002#endif /* __HEXAGON_ARCH___ >= 60 */
3003
3004#if __HVX_ARCH__ >= 60
3005/* ==========================================================================
3006 Assembly Syntax: Vd32.h=vsub(Vu32.h,Vv32.h):sat
3007 C Intrinsic Prototype: HVX_Vector Q6_Vh_vsub_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
3008 Instruction Type: CVI_VA
3009 Execution Slots: SLOT0123
3010 ========================================================================== */
3011
3012#define Q6_Vh_vsub_VhVh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhsat)
3013#endif /* __HEXAGON_ARCH___ >= 60 */
3014
3015#if __HVX_ARCH__ >= 60
3016/* ==========================================================================
3017 Assembly Syntax: Vdd32.h=vsub(Vuu32.h,Vvv32.h):sat
3018 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_WhWh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3019 Instruction Type: CVI_VA_DV
3020 Execution Slots: SLOT0123
3021 ========================================================================== */
3022
3023#define Q6_Wh_vsub_WhWh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhsat_dv)
3024#endif /* __HEXAGON_ARCH___ >= 60 */
3025
3026#if __HVX_ARCH__ >= 60
3027/* ==========================================================================
3028 Assembly Syntax: Vdd32.w=vsub(Vu32.h,Vv32.h)
3029 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_VhVh(HVX_Vector Vu, HVX_Vector Vv)
3030 Instruction Type: CVI_VX_DV
3031 Execution Slots: SLOT23
3032 ========================================================================== */
3033
3034#define Q6_Ww_vsub_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhw)
3035#endif /* __HEXAGON_ARCH___ >= 60 */
3036
3037#if __HVX_ARCH__ >= 60
3038/* ==========================================================================
3039 Assembly Syntax: Vdd32.h=vsub(Vu32.ub,Vv32.ub)
3040 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_VubVub(HVX_Vector Vu, HVX_Vector Vv)
3041 Instruction Type: CVI_VX_DV
3042 Execution Slots: SLOT23
3043 ========================================================================== */
3044
3045#define Q6_Wh_vsub_VubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububh)
3046#endif /* __HEXAGON_ARCH___ >= 60 */
3047
3048#if __HVX_ARCH__ >= 60
3049/* ==========================================================================
3050 Assembly Syntax: Vd32.ub=vsub(Vu32.ub,Vv32.ub):sat
3051 C Intrinsic Prototype: HVX_Vector Q6_Vub_vsub_VubVub_sat(HVX_Vector Vu, HVX_Vector Vv)
3052 Instruction Type: CVI_VA
3053 Execution Slots: SLOT0123
3054 ========================================================================== */
3055
3056#define Q6_Vub_vsub_VubVub_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububsat)
3057#endif /* __HEXAGON_ARCH___ >= 60 */
3058
3059#if __HVX_ARCH__ >= 60
3060/* ==========================================================================
3061 Assembly Syntax: Vdd32.ub=vsub(Vuu32.ub,Vvv32.ub):sat
3062 C Intrinsic Prototype: HVX_VectorPair Q6_Wub_vsub_WubWub_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3063 Instruction Type: CVI_VA_DV
3064 Execution Slots: SLOT0123
3065 ========================================================================== */
3066
3067#define Q6_Wub_vsub_WubWub_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububsat_dv)
3068#endif /* __HEXAGON_ARCH___ >= 60 */
3069
3070#if __HVX_ARCH__ >= 60
3071/* ==========================================================================
3072 Assembly Syntax: Vd32.uh=vsub(Vu32.uh,Vv32.uh):sat
3073 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vsub_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
3074 Instruction Type: CVI_VA
3075 Execution Slots: SLOT0123
3076 ========================================================================== */
3077
3078#define Q6_Vuh_vsub_VuhVuh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhsat)
3079#endif /* __HEXAGON_ARCH___ >= 60 */
3080
3081#if __HVX_ARCH__ >= 60
3082/* ==========================================================================
3083 Assembly Syntax: Vdd32.uh=vsub(Vuu32.uh,Vvv32.uh):sat
3084 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vsub_WuhWuh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3085 Instruction Type: CVI_VA_DV
3086 Execution Slots: SLOT0123
3087 ========================================================================== */
3088
3089#define Q6_Wuh_vsub_WuhWuh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhsat_dv)
3090#endif /* __HEXAGON_ARCH___ >= 60 */
3091
3092#if __HVX_ARCH__ >= 60
3093/* ==========================================================================
3094 Assembly Syntax: Vdd32.w=vsub(Vu32.uh,Vv32.uh)
3095 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
3096 Instruction Type: CVI_VX_DV
3097 Execution Slots: SLOT23
3098 ========================================================================== */
3099
3100#define Q6_Ww_vsub_VuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhw)
3101#endif /* __HEXAGON_ARCH___ >= 60 */
3102
3103#if __HVX_ARCH__ >= 60
3104/* ==========================================================================
3105 Assembly Syntax: Vd32.w=vsub(Vu32.w,Vv32.w)
3106 C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVw(HVX_Vector Vu, HVX_Vector Vv)
3107 Instruction Type: CVI_VA
3108 Execution Slots: SLOT0123
3109 ========================================================================== */
3110
3111#define Q6_Vw_vsub_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubw)
3112#endif /* __HEXAGON_ARCH___ >= 60 */
3113
3114#if __HVX_ARCH__ >= 60
3115/* ==========================================================================
3116 Assembly Syntax: Vdd32.w=vsub(Vuu32.w,Vvv32.w)
3117 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_WwWw(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3118 Instruction Type: CVI_VA_DV
3119 Execution Slots: SLOT0123
3120 ========================================================================== */
3121
3122#define Q6_Ww_vsub_WwWw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubw_dv)
3123#endif /* __HEXAGON_ARCH___ >= 60 */
3124
3125#if __HVX_ARCH__ >= 60
3126/* ==========================================================================
3127 Assembly Syntax: if (!Qv4) Vx32.w-=Vu32.w
3128 C Intrinsic Prototype: HVX_Vector Q6_Vw_condnac_QnVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
3129 Instruction Type: CVI_VA
3130 Execution Slots: SLOT0123
3131 ========================================================================== */
3132
3133#define Q6_Vw_condnac_QnVwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwnq)
3134#endif /* __HEXAGON_ARCH___ >= 60 */
3135
3136#if __HVX_ARCH__ >= 60
3137/* ==========================================================================
3138 Assembly Syntax: if (Qv4) Vx32.w-=Vu32.w
3139 C Intrinsic Prototype: HVX_Vector Q6_Vw_condnac_QVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
3140 Instruction Type: CVI_VA
3141 Execution Slots: SLOT0123
3142 ========================================================================== */
3143
3144#define Q6_Vw_condnac_QVwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwq)
3145#endif /* __HEXAGON_ARCH___ >= 60 */
3146
3147#if __HVX_ARCH__ >= 60
3148/* ==========================================================================
3149 Assembly Syntax: Vd32.w=vsub(Vu32.w,Vv32.w):sat
3150 C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
3151 Instruction Type: CVI_VA
3152 Execution Slots: SLOT0123
3153 ========================================================================== */
3154
3155#define Q6_Vw_vsub_VwVw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwsat)
3156#endif /* __HEXAGON_ARCH___ >= 60 */
3157
3158#if __HVX_ARCH__ >= 60
3159/* ==========================================================================
3160 Assembly Syntax: Vdd32.w=vsub(Vuu32.w,Vvv32.w):sat
3161 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_WwWw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3162 Instruction Type: CVI_VA_DV
3163 Execution Slots: SLOT0123
3164 ========================================================================== */
3165
3166#define Q6_Ww_vsub_WwWw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwsat_dv)
3167#endif /* __HEXAGON_ARCH___ >= 60 */
3168
3169#if __HVX_ARCH__ >= 60
3170/* ==========================================================================
3171 Assembly Syntax: Vdd32=vswap(Qt4,Vu32,Vv32)
3172 C Intrinsic Prototype: HVX_VectorPair Q6_W_vswap_QVV(HVX_VectorPred Qt, HVX_Vector Vu, HVX_Vector Vv)
3173 Instruction Type: CVI_VA_DV
3174 Execution Slots: SLOT0123
3175 ========================================================================== */
3176
3177#define Q6_W_vswap_QVV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vswap)
3178#endif /* __HEXAGON_ARCH___ >= 60 */
3179
3180#if __HVX_ARCH__ >= 60
3181/* ==========================================================================
3182 Assembly Syntax: Vdd32.h=vtmpy(Vuu32.b,Rt32.b)
3183 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpy_WbRb(HVX_VectorPair Vuu, Word32 Rt)
3184 Instruction Type: CVI_VX_DV
3185 Execution Slots: SLOT23
3186 ========================================================================== */
3187
3188#define Q6_Wh_vtmpy_WbRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyb)
3189#endif /* __HEXAGON_ARCH___ >= 60 */
3190
3191#if __HVX_ARCH__ >= 60
3192/* ==========================================================================
3193 Assembly Syntax: Vxx32.h+=vtmpy(Vuu32.b,Rt32.b)
3194 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpyacc_WhWbRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3195 Instruction Type: CVI_VX_DV
3196 Execution Slots: SLOT23
3197 ========================================================================== */
3198
3199#define Q6_Wh_vtmpyacc_WhWbRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyb_acc)
3200#endif /* __HEXAGON_ARCH___ >= 60 */
3201
3202#if __HVX_ARCH__ >= 60
3203/* ==========================================================================
3204 Assembly Syntax: Vdd32.h=vtmpy(Vuu32.ub,Rt32.b)
3205 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpy_WubRb(HVX_VectorPair Vuu, Word32 Rt)
3206 Instruction Type: CVI_VX_DV
3207 Execution Slots: SLOT23
3208 ========================================================================== */
3209
3210#define Q6_Wh_vtmpy_WubRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpybus)
3211#endif /* __HEXAGON_ARCH___ >= 60 */
3212
3213#if __HVX_ARCH__ >= 60
3214/* ==========================================================================
3215 Assembly Syntax: Vxx32.h+=vtmpy(Vuu32.ub,Rt32.b)
3216 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpyacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3217 Instruction Type: CVI_VX_DV
3218 Execution Slots: SLOT23
3219 ========================================================================== */
3220
3221#define Q6_Wh_vtmpyacc_WhWubRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpybus_acc)
3222#endif /* __HEXAGON_ARCH___ >= 60 */
3223
3224#if __HVX_ARCH__ >= 60
3225/* ==========================================================================
3226 Assembly Syntax: Vdd32.w=vtmpy(Vuu32.h,Rt32.b)
3227 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vtmpy_WhRb(HVX_VectorPair Vuu, Word32 Rt)
3228 Instruction Type: CVI_VX_DV
3229 Execution Slots: SLOT23
3230 ========================================================================== */
3231
3232#define Q6_Ww_vtmpy_WhRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyhb)
3233#endif /* __HEXAGON_ARCH___ >= 60 */
3234
3235#if __HVX_ARCH__ >= 60
3236/* ==========================================================================
3237 Assembly Syntax: Vxx32.w+=vtmpy(Vuu32.h,Rt32.b)
3238 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vtmpyacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3239 Instruction Type: CVI_VX_DV
3240 Execution Slots: SLOT23
3241 ========================================================================== */
3242
3243#define Q6_Ww_vtmpyacc_WwWhRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyhb_acc)
3244#endif /* __HEXAGON_ARCH___ >= 60 */
3245
3246#if __HVX_ARCH__ >= 60
3247/* ==========================================================================
3248 Assembly Syntax: Vdd32.h=vunpack(Vu32.b)
3249 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vunpack_Vb(HVX_Vector Vu)
3250 Instruction Type: CVI_VP_VS
3251 Execution Slots: SLOT0123
3252 ========================================================================== */
3253
3254#define Q6_Wh_vunpack_Vb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackb)
3255#endif /* __HEXAGON_ARCH___ >= 60 */
3256
3257#if __HVX_ARCH__ >= 60
3258/* ==========================================================================
3259 Assembly Syntax: Vdd32.w=vunpack(Vu32.h)
3260 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vunpack_Vh(HVX_Vector Vu)
3261 Instruction Type: CVI_VP_VS
3262 Execution Slots: SLOT0123
3263 ========================================================================== */
3264
3265#define Q6_Ww_vunpack_Vh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackh)
3266#endif /* __HEXAGON_ARCH___ >= 60 */
3267
3268#if __HVX_ARCH__ >= 60
3269/* ==========================================================================
3270 Assembly Syntax: Vxx32.h|=vunpacko(Vu32.b)
3271 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vunpackoor_WhVb(HVX_VectorPair Vxx, HVX_Vector Vu)
3272 Instruction Type: CVI_VP_VS
3273 Execution Slots: SLOT0123
3274 ========================================================================== */
3275
3276#define Q6_Wh_vunpackoor_WhVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackob)
3277#endif /* __HEXAGON_ARCH___ >= 60 */
3278
3279#if __HVX_ARCH__ >= 60
3280/* ==========================================================================
3281 Assembly Syntax: Vxx32.w|=vunpacko(Vu32.h)
3282 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vunpackoor_WwVh(HVX_VectorPair Vxx, HVX_Vector Vu)
3283 Instruction Type: CVI_VP_VS
3284 Execution Slots: SLOT0123
3285 ========================================================================== */
3286
3287#define Q6_Ww_vunpackoor_WwVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackoh)
3288#endif /* __HEXAGON_ARCH___ >= 60 */
3289
3290#if __HVX_ARCH__ >= 60
3291/* ==========================================================================
3292 Assembly Syntax: Vdd32.uh=vunpack(Vu32.ub)
3293 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vunpack_Vub(HVX_Vector Vu)
3294 Instruction Type: CVI_VP_VS
3295 Execution Slots: SLOT0123
3296 ========================================================================== */
3297
3298#define Q6_Wuh_vunpack_Vub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackub)
3299#endif /* __HEXAGON_ARCH___ >= 60 */
3300
3301#if __HVX_ARCH__ >= 60
3302/* ==========================================================================
3303 Assembly Syntax: Vdd32.uw=vunpack(Vu32.uh)
3304 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vunpack_Vuh(HVX_Vector Vu)
3305 Instruction Type: CVI_VP_VS
3306 Execution Slots: SLOT0123
3307 ========================================================================== */
3308
3309#define Q6_Wuw_vunpack_Vuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackuh)
3310#endif /* __HEXAGON_ARCH___ >= 60 */
3311
3312#if __HVX_ARCH__ >= 60
3313/* ==========================================================================
3314 Assembly Syntax: Vd32=vxor(Vu32,Vv32)
3315 C Intrinsic Prototype: HVX_Vector Q6_V_vxor_VV(HVX_Vector Vu, HVX_Vector Vv)
3316 Instruction Type: CVI_VA
3317 Execution Slots: SLOT0123
3318 ========================================================================== */
3319
3320#define Q6_V_vxor_VV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vxor)
3321#endif /* __HEXAGON_ARCH___ >= 60 */
3322
3323#if __HVX_ARCH__ >= 60
3324/* ==========================================================================
3325 Assembly Syntax: Vdd32.uh=vzxt(Vu32.ub)
3326 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vzxt_Vub(HVX_Vector Vu)
3327 Instruction Type: CVI_VA_DV
3328 Execution Slots: SLOT0123
3329 ========================================================================== */
3330
3331#define Q6_Wuh_vzxt_Vub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vzb)
3332#endif /* __HEXAGON_ARCH___ >= 60 */
3333
3334#if __HVX_ARCH__ >= 60
3335/* ==========================================================================
3336 Assembly Syntax: Vdd32.uw=vzxt(Vu32.uh)
3337 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vzxt_Vuh(HVX_Vector Vu)
3338 Instruction Type: CVI_VA_DV
3339 Execution Slots: SLOT0123
3340 ========================================================================== */
3341
3342#define Q6_Wuw_vzxt_Vuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vzh)
3343#endif /* __HEXAGON_ARCH___ >= 60 */
3344
3345#if __HVX_ARCH__ >= 62
3346/* ==========================================================================
3347 Assembly Syntax: Vd32.b=vsplat(Rt32)
3348 C Intrinsic Prototype: HVX_Vector Q6_Vb_vsplat_R(Word32 Rt)
3349 Instruction Type: CVI_VX_LATE
3350 Execution Slots: SLOT23
3351 ========================================================================== */
3352
3353#define Q6_Vb_vsplat_R __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplatb)
3354#endif /* __HEXAGON_ARCH___ >= 62 */
3355
3356#if __HVX_ARCH__ >= 62
3357/* ==========================================================================
3358 Assembly Syntax: Vd32.h=vsplat(Rt32)
3359 C Intrinsic Prototype: HVX_Vector Q6_Vh_vsplat_R(Word32 Rt)
3360 Instruction Type: CVI_VX_LATE
3361 Execution Slots: SLOT23
3362 ========================================================================== */
3363
3364#define Q6_Vh_vsplat_R __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplath)
3365#endif /* __HEXAGON_ARCH___ >= 62 */
3366
3367#if __HVX_ARCH__ >= 62
3368/* ==========================================================================
3369 Assembly Syntax: Qd4=vsetq2(Rt32)
3370 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vsetq2_R(Word32 Rt)
3371 Instruction Type: CVI_VP
3372 Execution Slots: SLOT0123
3373 ========================================================================== */
3374
3375#define Q6_Q_vsetq2_R __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_scalar2v2)
3376#endif /* __HEXAGON_ARCH___ >= 62 */
3377
3378#if __HVX_ARCH__ >= 62
3379/* ==========================================================================
3380 Assembly Syntax: Qd4.b=vshuffe(Qs4.h,Qt4.h)
3381 C Intrinsic Prototype: HVX_VectorPred Q6_Qb_vshuffe_QhQh(HVX_VectorPred Qs, HVX_VectorPred Qt)
3382 Instruction Type: CVI_VA_DV
3383 Execution Slots: SLOT0123
3384 ========================================================================== */
3385
3386#define Q6_Qb_vshuffe_QhQh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_shuffeqh)
3387#endif /* __HEXAGON_ARCH___ >= 62 */
3388
3389#if __HVX_ARCH__ >= 62
3390/* ==========================================================================
3391 Assembly Syntax: Qd4.h=vshuffe(Qs4.w,Qt4.w)
3392 C Intrinsic Prototype: HVX_VectorPred Q6_Qh_vshuffe_QwQw(HVX_VectorPred Qs, HVX_VectorPred Qt)
3393 Instruction Type: CVI_VA_DV
3394 Execution Slots: SLOT0123
3395 ========================================================================== */
3396
3397#define Q6_Qh_vshuffe_QwQw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_shuffeqw)
3398#endif /* __HEXAGON_ARCH___ >= 62 */
3399
3400#if __HVX_ARCH__ >= 62
3401/* ==========================================================================
3402 Assembly Syntax: Vd32.b=vadd(Vu32.b,Vv32.b):sat
3403 C Intrinsic Prototype: HVX_Vector Q6_Vb_vadd_VbVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3404 Instruction Type: CVI_VA
3405 Execution Slots: SLOT0123
3406 ========================================================================== */
3407
3408#define Q6_Vb_vadd_VbVb_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbsat)
3409#endif /* __HEXAGON_ARCH___ >= 62 */
3410
3411#if __HVX_ARCH__ >= 62
3412/* ==========================================================================
3413 Assembly Syntax: Vdd32.b=vadd(Vuu32.b,Vvv32.b):sat
3414 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vadd_WbWb_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3415 Instruction Type: CVI_VA_DV
3416 Execution Slots: SLOT0123
3417 ========================================================================== */
3418
3419#define Q6_Wb_vadd_WbWb_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbsat_dv)
3420#endif /* __HEXAGON_ARCH___ >= 62 */
3421
3422#if __HVX_ARCH__ >= 62
3423/* ==========================================================================
3424 Assembly Syntax: Vd32.w=vadd(Vu32.w,Vv32.w,Qx4):carry
3425 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVwQ_carry(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred* Qx)
3426 Instruction Type: CVI_VA
3427 Execution Slots: SLOT0123
3428 ========================================================================== */
3429
3430#define Q6_Vw_vadd_VwVwQ_carry __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddcarry)
3431#endif /* __HEXAGON_ARCH___ >= 62 */
3432
3433#if __HVX_ARCH__ >= 62
3434/* ==========================================================================
3435 Assembly Syntax: Vd32.h=vadd(vclb(Vu32.h),Vv32.h)
3436 C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_vclb_VhVh(HVX_Vector Vu, HVX_Vector Vv)
3437 Instruction Type: CVI_VS
3438 Execution Slots: SLOT0123
3439 ========================================================================== */
3440
3441#define Q6_Vh_vadd_vclb_VhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddclbh)
3442#endif /* __HEXAGON_ARCH___ >= 62 */
3443
3444#if __HVX_ARCH__ >= 62
3445/* ==========================================================================
3446 Assembly Syntax: Vd32.w=vadd(vclb(Vu32.w),Vv32.w)
3447 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_vclb_VwVw(HVX_Vector Vu, HVX_Vector Vv)
3448 Instruction Type: CVI_VS
3449 Execution Slots: SLOT0123
3450 ========================================================================== */
3451
3452#define Q6_Vw_vadd_vclb_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddclbw)
3453#endif /* __HEXAGON_ARCH___ >= 62 */
3454
3455#if __HVX_ARCH__ >= 62
3456/* ==========================================================================
3457 Assembly Syntax: Vxx32.w+=vadd(Vu32.h,Vv32.h)
3458 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vaddacc_WwVhVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3459 Instruction Type: CVI_VX_DV
3460 Execution Slots: SLOT23
3461 ========================================================================== */
3462
3463#define Q6_Ww_vaddacc_WwVhVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhw_acc)
3464#endif /* __HEXAGON_ARCH___ >= 62 */
3465
3466#if __HVX_ARCH__ >= 62
3467/* ==========================================================================
3468 Assembly Syntax: Vxx32.h+=vadd(Vu32.ub,Vv32.ub)
3469 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vaddacc_WhVubVub(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3470 Instruction Type: CVI_VX_DV
3471 Execution Slots: SLOT23
3472 ========================================================================== */
3473
3474#define Q6_Wh_vaddacc_WhVubVub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubh_acc)
3475#endif /* __HEXAGON_ARCH___ >= 62 */
3476
3477#if __HVX_ARCH__ >= 62
3478/* ==========================================================================
3479 Assembly Syntax: Vd32.ub=vadd(Vu32.ub,Vv32.b):sat
3480 C Intrinsic Prototype: HVX_Vector Q6_Vub_vadd_VubVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3481 Instruction Type: CVI_VA
3482 Execution Slots: SLOT0123
3483 ========================================================================== */
3484
3485#define Q6_Vub_vadd_VubVb_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddububb_sat)
3486#endif /* __HEXAGON_ARCH___ >= 62 */
3487
3488#if __HVX_ARCH__ >= 62
3489/* ==========================================================================
3490 Assembly Syntax: Vxx32.w+=vadd(Vu32.uh,Vv32.uh)
3491 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vaddacc_WwVuhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3492 Instruction Type: CVI_VX_DV
3493 Execution Slots: SLOT23
3494 ========================================================================== */
3495
3496#define Q6_Ww_vaddacc_WwVuhVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhw_acc)
3497#endif /* __HEXAGON_ARCH___ >= 62 */
3498
3499#if __HVX_ARCH__ >= 62
3500/* ==========================================================================
3501 Assembly Syntax: Vd32.uw=vadd(Vu32.uw,Vv32.uw):sat
3502 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vadd_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3503 Instruction Type: CVI_VA
3504 Execution Slots: SLOT0123
3505 ========================================================================== */
3506
3507#define Q6_Vuw_vadd_VuwVuw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduwsat)
3508#endif /* __HEXAGON_ARCH___ >= 62 */
3509
3510#if __HVX_ARCH__ >= 62
3511/* ==========================================================================
3512 Assembly Syntax: Vdd32.uw=vadd(Vuu32.uw,Vvv32.uw):sat
3513 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vadd_WuwWuw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3514 Instruction Type: CVI_VA_DV
3515 Execution Slots: SLOT0123
3516 ========================================================================== */
3517
3518#define Q6_Wuw_vadd_WuwWuw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduwsat_dv)
3519#endif /* __HEXAGON_ARCH___ >= 62 */
3520
3521#if __HVX_ARCH__ >= 62
3522/* ==========================================================================
3523 Assembly Syntax: Vd32=vand(!Qu4,Rt32)
3524 C Intrinsic Prototype: HVX_Vector Q6_V_vand_QnR(HVX_VectorPred Qu, Word32 Rt)
3525 Instruction Type: CVI_VX_LATE
3526 Execution Slots: SLOT23
3527 ========================================================================== */
3528
3529#define Q6_V_vand_QnR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandnqrt)
3530#endif /* __HEXAGON_ARCH___ >= 62 */
3531
3532#if __HVX_ARCH__ >= 62
3533/* ==========================================================================
3534 Assembly Syntax: Vx32|=vand(!Qu4,Rt32)
3535 C Intrinsic Prototype: HVX_Vector Q6_V_vandor_VQnR(HVX_Vector Vx, HVX_VectorPred Qu, Word32 Rt)
3536 Instruction Type: CVI_VX_LATE
3537 Execution Slots: SLOT23
3538 ========================================================================== */
3539
3540#define Q6_V_vandor_VQnR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandnqrt_acc)
3541#endif /* __HEXAGON_ARCH___ >= 62 */
3542
3543#if __HVX_ARCH__ >= 62
3544/* ==========================================================================
3545 Assembly Syntax: Vd32=vand(!Qv4,Vu32)
3546 C Intrinsic Prototype: HVX_Vector Q6_V_vand_QnV(HVX_VectorPred Qv, HVX_Vector Vu)
3547 Instruction Type: CVI_VA
3548 Execution Slots: SLOT0123
3549 ========================================================================== */
3550
3551#define Q6_V_vand_QnV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvnqv)
3552#endif /* __HEXAGON_ARCH___ >= 62 */
3553
3554#if __HVX_ARCH__ >= 62
3555/* ==========================================================================
3556 Assembly Syntax: Vd32=vand(Qv4,Vu32)
3557 C Intrinsic Prototype: HVX_Vector Q6_V_vand_QV(HVX_VectorPred Qv, HVX_Vector Vu)
3558 Instruction Type: CVI_VA
3559 Execution Slots: SLOT0123
3560 ========================================================================== */
3561
3562#define Q6_V_vand_QV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvqv)
3563#endif /* __HEXAGON_ARCH___ >= 62 */
3564
3565#if __HVX_ARCH__ >= 62
3566/* ==========================================================================
3567 Assembly Syntax: Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):sat
3568 C Intrinsic Prototype: HVX_Vector Q6_Vb_vasr_VhVhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3569 Instruction Type: CVI_VS
3570 Execution Slots: SLOT0123
3571 ========================================================================== */
3572
3573#define Q6_Vb_vasr_VhVhR_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhbsat)
3574#endif /* __HEXAGON_ARCH___ >= 62 */
3575
3576#if __HVX_ARCH__ >= 62
3577/* ==========================================================================
3578 Assembly Syntax: Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):rnd:sat
3579 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VuwVuwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3580 Instruction Type: CVI_VS
3581 Execution Slots: SLOT0123
3582 ========================================================================== */
3583
3584#define Q6_Vuh_vasr_VuwVuwR_rnd_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruwuhrndsat)
3585#endif /* __HEXAGON_ARCH___ >= 62 */
3586
3587#if __HVX_ARCH__ >= 62
3588/* ==========================================================================
3589 Assembly Syntax: Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
3590 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VwVwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3591 Instruction Type: CVI_VS
3592 Execution Slots: SLOT0123
3593 ========================================================================== */
3594
3595#define Q6_Vuh_vasr_VwVwR_rnd_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwuhrndsat)
3596#endif /* __HEXAGON_ARCH___ >= 62 */
3597
3598#if __HVX_ARCH__ >= 62
3599/* ==========================================================================
3600 Assembly Syntax: Vd32.ub=vlsr(Vu32.ub,Rt32)
3601 C Intrinsic Prototype: HVX_Vector Q6_Vub_vlsr_VubR(HVX_Vector Vu, Word32 Rt)
3602 Instruction Type: CVI_VS
3603 Execution Slots: SLOT0123
3604 ========================================================================== */
3605
3606#define Q6_Vub_vlsr_VubR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrb)
3607#endif /* __HEXAGON_ARCH___ >= 62 */
3608
3609#if __HVX_ARCH__ >= 62
3610/* ==========================================================================
3611 Assembly Syntax: Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8):nomatch
3612 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbR_nomatch(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3613 Instruction Type: CVI_VP
3614 Execution Slots: SLOT0123
3615 ========================================================================== */
3616
3617#define Q6_Vb_vlut32_VbVbR_nomatch __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_nm)
3618#endif /* __HEXAGON_ARCH___ >= 62 */
3619
3620#if __HVX_ARCH__ >= 62
3621/* ==========================================================================
3622 Assembly Syntax: Vx32.b|=vlut32(Vu32.b,Vv32.b,#u3)
3623 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32or_VbVbVbI(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3624 Instruction Type: CVI_VP_VS
3625 Execution Slots: SLOT0123
3626 ========================================================================== */
3627
3628#define Q6_Vb_vlut32or_VbVbVbI __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_oracci)
3629#endif /* __HEXAGON_ARCH___ >= 62 */
3630
3631#if __HVX_ARCH__ >= 62
3632/* ==========================================================================
3633 Assembly Syntax: Vd32.b=vlut32(Vu32.b,Vv32.b,#u3)
3634 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3635 Instruction Type: CVI_VP
3636 Execution Slots: SLOT0123
3637 ========================================================================== */
3638
3639#define Q6_Vb_vlut32_VbVbI __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvbi)
3640#endif /* __HEXAGON_ARCH___ >= 62 */
3641
3642#if __HVX_ARCH__ >= 62
3643/* ==========================================================================
3644 Assembly Syntax: Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8):nomatch
3645 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhR_nomatch(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3646 Instruction Type: CVI_VP_VS
3647 Execution Slots: SLOT0123
3648 ========================================================================== */
3649
3650#define Q6_Wh_vlut16_VbVhR_nomatch __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_nm)
3651#endif /* __HEXAGON_ARCH___ >= 62 */
3652
3653#if __HVX_ARCH__ >= 62
3654/* ==========================================================================
3655 Assembly Syntax: Vxx32.h|=vlut16(Vu32.b,Vv32.h,#u3)
3656 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16or_WhVbVhI(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3657 Instruction Type: CVI_VP_VS
3658 Execution Slots: SLOT0123
3659 ========================================================================== */
3660
3661#define Q6_Wh_vlut16or_WhVbVhI __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_oracci)
3662#endif /* __HEXAGON_ARCH___ >= 62 */
3663
3664#if __HVX_ARCH__ >= 62
3665/* ==========================================================================
3666 Assembly Syntax: Vdd32.h=vlut16(Vu32.b,Vv32.h,#u3)
3667 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3668 Instruction Type: CVI_VP_VS
3669 Execution Slots: SLOT0123
3670 ========================================================================== */
3671
3672#define Q6_Wh_vlut16_VbVhI __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwhi)
3673#endif /* __HEXAGON_ARCH___ >= 62 */
3674
3675#if __HVX_ARCH__ >= 62
3676/* ==========================================================================
3677 Assembly Syntax: Vd32.b=vmax(Vu32.b,Vv32.b)
3678 C Intrinsic Prototype: HVX_Vector Q6_Vb_vmax_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3679 Instruction Type: CVI_VA
3680 Execution Slots: SLOT0123
3681 ========================================================================== */
3682
3683#define Q6_Vb_vmax_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxb)
3684#endif /* __HEXAGON_ARCH___ >= 62 */
3685
3686#if __HVX_ARCH__ >= 62
3687/* ==========================================================================
3688 Assembly Syntax: Vd32.b=vmin(Vu32.b,Vv32.b)
3689 C Intrinsic Prototype: HVX_Vector Q6_Vb_vmin_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3690 Instruction Type: CVI_VA
3691 Execution Slots: SLOT0123
3692 ========================================================================== */
3693
3694#define Q6_Vb_vmin_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminb)
3695#endif /* __HEXAGON_ARCH___ >= 62 */
3696
3697#if __HVX_ARCH__ >= 62
3698/* ==========================================================================
3699 Assembly Syntax: Vdd32.w=vmpa(Vuu32.uh,Rt32.b)
3700 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpa_WuhRb(HVX_VectorPair Vuu, Word32 Rt)
3701 Instruction Type: CVI_VX_DV
3702 Execution Slots: SLOT23
3703 ========================================================================== */
3704
3705#define Q6_Ww_vmpa_WuhRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhb)
3706#endif /* __HEXAGON_ARCH___ >= 62 */
3707
3708#if __HVX_ARCH__ >= 62
3709/* ==========================================================================
3710 Assembly Syntax: Vxx32.w+=vmpa(Vuu32.uh,Rt32.b)
3711 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpaacc_WwWuhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3712 Instruction Type: CVI_VX_DV
3713 Execution Slots: SLOT23
3714 ========================================================================== */
3715
3716#define Q6_Ww_vmpaacc_WwWuhRb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhb_acc)
3717#endif /* __HEXAGON_ARCH___ >= 62 */
3718
3719#if __HVX_ARCH__ >= 62
3720/* ==========================================================================
3721 Assembly Syntax: Vdd32=vmpye(Vu32.w,Vv32.uh)
3722 C Intrinsic Prototype: HVX_VectorPair Q6_W_vmpye_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
3723 Instruction Type: CVI_VX_DV
3724 Execution Slots: SLOT23
3725 ========================================================================== */
3726
3727#define Q6_W_vmpye_VwVuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyewuh_64)
3728#endif /* __HEXAGON_ARCH___ >= 62 */
3729
3730#if __HVX_ARCH__ >= 62
3731/* ==========================================================================
3732 Assembly Syntax: Vd32.w=vmpyi(Vu32.w,Rt32.ub)
3733 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRub(HVX_Vector Vu, Word32 Rt)
3734 Instruction Type: CVI_VX
3735 Execution Slots: SLOT23
3736 ========================================================================== */
3737
3738#define Q6_Vw_vmpyi_VwRub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwub)
3739#endif /* __HEXAGON_ARCH___ >= 62 */
3740
3741#if __HVX_ARCH__ >= 62
3742/* ==========================================================================
3743 Assembly Syntax: Vx32.w+=vmpyi(Vu32.w,Rt32.ub)
3744 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRub(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3745 Instruction Type: CVI_VX
3746 Execution Slots: SLOT23
3747 ========================================================================== */
3748
3749#define Q6_Vw_vmpyiacc_VwVwRub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwub_acc)
3750#endif /* __HEXAGON_ARCH___ >= 62 */
3751
3752#if __HVX_ARCH__ >= 62
3753/* ==========================================================================
3754 Assembly Syntax: Vxx32+=vmpyo(Vu32.w,Vv32.h)
3755 C Intrinsic Prototype: HVX_VectorPair Q6_W_vmpyoacc_WVwVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3756 Instruction Type: CVI_VX_DV
3757 Execution Slots: SLOT23
3758 ========================================================================== */
3759
3760#define Q6_W_vmpyoacc_WVwVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_64_acc)
3761#endif /* __HEXAGON_ARCH___ >= 62 */
3762
3763#if __HVX_ARCH__ >= 62
3764/* ==========================================================================
3765 Assembly Syntax: Vd32.ub=vround(Vu32.uh,Vv32.uh):sat
3766 C Intrinsic Prototype: HVX_Vector Q6_Vub_vround_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
3767 Instruction Type: CVI_VS
3768 Execution Slots: SLOT0123
3769 ========================================================================== */
3770
3771#define Q6_Vub_vround_VuhVuh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrounduhub)
3772#endif /* __HEXAGON_ARCH___ >= 62 */
3773
3774#if __HVX_ARCH__ >= 62
3775/* ==========================================================================
3776 Assembly Syntax: Vd32.uh=vround(Vu32.uw,Vv32.uw):sat
3777 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vround_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3778 Instruction Type: CVI_VS
3779 Execution Slots: SLOT0123
3780 ========================================================================== */
3781
3782#define Q6_Vuh_vround_VuwVuw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrounduwuh)
3783#endif /* __HEXAGON_ARCH___ >= 62 */
3784
3785#if __HVX_ARCH__ >= 62
3786/* ==========================================================================
3787 Assembly Syntax: Vd32.uh=vsat(Vu32.uw,Vv32.uw)
3788 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vsat_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
3789 Instruction Type: CVI_VA
3790 Execution Slots: SLOT0123
3791 ========================================================================== */
3792
3793#define Q6_Vuh_vsat_VuwVuw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatuwuh)
3794#endif /* __HEXAGON_ARCH___ >= 62 */
3795
3796#if __HVX_ARCH__ >= 62
3797/* ==========================================================================
3798 Assembly Syntax: Vd32.b=vsub(Vu32.b,Vv32.b):sat
3799 C Intrinsic Prototype: HVX_Vector Q6_Vb_vsub_VbVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3800 Instruction Type: CVI_VA
3801 Execution Slots: SLOT0123
3802 ========================================================================== */
3803
3804#define Q6_Vb_vsub_VbVb_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbsat)
3805#endif /* __HEXAGON_ARCH___ >= 62 */
3806
3807#if __HVX_ARCH__ >= 62
3808/* ==========================================================================
3809 Assembly Syntax: Vdd32.b=vsub(Vuu32.b,Vvv32.b):sat
3810 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vsub_WbWb_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3811 Instruction Type: CVI_VA_DV
3812 Execution Slots: SLOT0123
3813 ========================================================================== */
3814
3815#define Q6_Wb_vsub_WbWb_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbsat_dv)
3816#endif /* __HEXAGON_ARCH___ >= 62 */
3817
3818#if __HVX_ARCH__ >= 62
3819/* ==========================================================================
3820 Assembly Syntax: Vd32.w=vsub(Vu32.w,Vv32.w,Qx4):carry
3821 C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVwQ_carry(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred* Qx)
3822 Instruction Type: CVI_VA
3823 Execution Slots: SLOT0123
3824 ========================================================================== */
3825
3826#define Q6_Vw_vsub_VwVwQ_carry __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubcarry)
3827#endif /* __HEXAGON_ARCH___ >= 62 */
3828
3829#if __HVX_ARCH__ >= 62
3830/* ==========================================================================
3831 Assembly Syntax: Vd32.ub=vsub(Vu32.ub,Vv32.b):sat
3832 C Intrinsic Prototype: HVX_Vector Q6_Vub_vsub_VubVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3833 Instruction Type: CVI_VA
3834 Execution Slots: SLOT0123
3835 ========================================================================== */
3836
3837#define Q6_Vub_vsub_VubVb_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubububb_sat)
3838#endif /* __HEXAGON_ARCH___ >= 62 */
3839
3840#if __HVX_ARCH__ >= 62
3841/* ==========================================================================
3842 Assembly Syntax: Vd32.uw=vsub(Vu32.uw,Vv32.uw):sat
3843 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vsub_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3844 Instruction Type: CVI_VA
3845 Execution Slots: SLOT0123
3846 ========================================================================== */
3847
3848#define Q6_Vuw_vsub_VuwVuw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuwsat)
3849#endif /* __HEXAGON_ARCH___ >= 62 */
3850
3851#if __HVX_ARCH__ >= 62
3852/* ==========================================================================
3853 Assembly Syntax: Vdd32.uw=vsub(Vuu32.uw,Vvv32.uw):sat
3854 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vsub_WuwWuw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3855 Instruction Type: CVI_VA_DV
3856 Execution Slots: SLOT0123
3857 ========================================================================== */
3858
3859#define Q6_Wuw_vsub_WuwWuw_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuwsat_dv)
3860#endif /* __HEXAGON_ARCH___ >= 62 */
3861
3862#if __HVX_ARCH__ >= 65
3863/* ==========================================================================
3864 Assembly Syntax: Vd32.b=vabs(Vu32.b)
3865 C Intrinsic Prototype: HVX_Vector Q6_Vb_vabs_Vb(HVX_Vector Vu)
3866 Instruction Type: CVI_VA
3867 Execution Slots: SLOT0123
3868 ========================================================================== */
3869
3870#define Q6_Vb_vabs_Vb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsb)
3871#endif /* __HEXAGON_ARCH___ >= 65 */
3872
3873#if __HVX_ARCH__ >= 65
3874/* ==========================================================================
3875 Assembly Syntax: Vd32.b=vabs(Vu32.b):sat
3876 C Intrinsic Prototype: HVX_Vector Q6_Vb_vabs_Vb_sat(HVX_Vector Vu)
3877 Instruction Type: CVI_VA
3878 Execution Slots: SLOT0123
3879 ========================================================================== */
3880
3881#define Q6_Vb_vabs_Vb_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsb_sat)
3882#endif /* __HEXAGON_ARCH___ >= 65 */
3883
3884#if __HVX_ARCH__ >= 65
3885/* ==========================================================================
3886 Assembly Syntax: Vx32.h+=vasl(Vu32.h,Rt32)
3887 C Intrinsic Prototype: HVX_Vector Q6_Vh_vaslacc_VhVhR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3888 Instruction Type: CVI_VS
3889 Execution Slots: SLOT0123
3890 ========================================================================== */
3891
3892#define Q6_Vh_vaslacc_VhVhR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslh_acc)
3893#endif /* __HEXAGON_ARCH___ >= 65 */
3894
3895#if __HVX_ARCH__ >= 65
3896/* ==========================================================================
3897 Assembly Syntax: Vx32.h+=vasr(Vu32.h,Rt32)
3898 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasracc_VhVhR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3899 Instruction Type: CVI_VS
3900 Execution Slots: SLOT0123
3901 ========================================================================== */
3902
3903#define Q6_Vh_vasracc_VhVhR __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrh_acc)
3904#endif /* __HEXAGON_ARCH___ >= 65 */
3905
3906#if __HVX_ARCH__ >= 65
3907/* ==========================================================================
3908 Assembly Syntax: Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):rnd:sat
3909 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VuhVuhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3910 Instruction Type: CVI_VS
3911 Execution Slots: SLOT0123
3912 ========================================================================== */
3913
3914#define Q6_Vub_vasr_VuhVuhR_rnd_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruhubrndsat)
3915#endif /* __HEXAGON_ARCH___ >= 65 */
3916
3917#if __HVX_ARCH__ >= 65
3918/* ==========================================================================
3919 Assembly Syntax: Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):sat
3920 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VuhVuhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3921 Instruction Type: CVI_VS
3922 Execution Slots: SLOT0123
3923 ========================================================================== */
3924
3925#define Q6_Vub_vasr_VuhVuhR_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruhubsat)
3926#endif /* __HEXAGON_ARCH___ >= 65 */
3927
3928#if __HVX_ARCH__ >= 65
3929/* ==========================================================================
3930 Assembly Syntax: Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):sat
3931 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VuwVuwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3932 Instruction Type: CVI_VS
3933 Execution Slots: SLOT0123
3934 ========================================================================== */
3935
3936#define Q6_Vuh_vasr_VuwVuwR_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruwuhsat)
3937#endif /* __HEXAGON_ARCH___ >= 65 */
3938
3939#if __HVX_ARCH__ >= 65
3940/* ==========================================================================
3941 Assembly Syntax: Vd32.b=vavg(Vu32.b,Vv32.b)
3942 C Intrinsic Prototype: HVX_Vector Q6_Vb_vavg_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3943 Instruction Type: CVI_VA
3944 Execution Slots: SLOT0123
3945 ========================================================================== */
3946
3947#define Q6_Vb_vavg_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgb)
3948#endif /* __HEXAGON_ARCH___ >= 65 */
3949
3950#if __HVX_ARCH__ >= 65
3951/* ==========================================================================
3952 Assembly Syntax: Vd32.b=vavg(Vu32.b,Vv32.b):rnd
3953 C Intrinsic Prototype: HVX_Vector Q6_Vb_vavg_VbVb_rnd(HVX_Vector Vu, HVX_Vector Vv)
3954 Instruction Type: CVI_VA
3955 Execution Slots: SLOT0123
3956 ========================================================================== */
3957
3958#define Q6_Vb_vavg_VbVb_rnd __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgbrnd)
3959#endif /* __HEXAGON_ARCH___ >= 65 */
3960
3961#if __HVX_ARCH__ >= 65
3962/* ==========================================================================
3963 Assembly Syntax: Vd32.uw=vavg(Vu32.uw,Vv32.uw)
3964 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vavg_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
3965 Instruction Type: CVI_VA
3966 Execution Slots: SLOT0123
3967 ========================================================================== */
3968
3969#define Q6_Vuw_vavg_VuwVuw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguw)
3970#endif /* __HEXAGON_ARCH___ >= 65 */
3971
3972#if __HVX_ARCH__ >= 65
3973/* ==========================================================================
3974 Assembly Syntax: Vd32.uw=vavg(Vu32.uw,Vv32.uw):rnd
3975 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vavg_VuwVuw_rnd(HVX_Vector Vu, HVX_Vector Vv)
3976 Instruction Type: CVI_VA
3977 Execution Slots: SLOT0123
3978 ========================================================================== */
3979
3980#define Q6_Vuw_vavg_VuwVuw_rnd __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguwrnd)
3981#endif /* __HEXAGON_ARCH___ >= 65 */
3982
3983#if __HVX_ARCH__ >= 65
3984/* ==========================================================================
3985 Assembly Syntax: Vdd32=#0
3986 C Intrinsic Prototype: HVX_VectorPair Q6_W_vzero()
3987 Instruction Type: MAPPING
3988 Execution Slots: SLOT0123
3989 ========================================================================== */
3990
3991#define Q6_W_vzero __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdd0)
3992#endif /* __HEXAGON_ARCH___ >= 65 */
3993
3994#if __HVX_ARCH__ >= 65
3995/* ==========================================================================
3996 Assembly Syntax: vtmp.h=vgather(Rt32,Mu2,Vv32.h).h
3997 C Intrinsic Prototype: void Q6_vgather_ARMVh(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
3998 Instruction Type: CVI_GATHER
3999 Execution Slots: SLOT01
4000 ========================================================================== */
4001
4002#define Q6_vgather_ARMVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermh)
4003#endif /* __HEXAGON_ARCH___ >= 65 */
4004
4005#if __HVX_ARCH__ >= 65
4006/* ==========================================================================
4007 Assembly Syntax: if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vv32.h).h
4008 C Intrinsic Prototype: void Q6_vgather_AQRMVh(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4009 Instruction Type: CVI_GATHER
4010 Execution Slots: SLOT01
4011 ========================================================================== */
4012
4013#define Q6_vgather_AQRMVh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhq)
4014#endif /* __HEXAGON_ARCH___ >= 65 */
4015
4016#if __HVX_ARCH__ >= 65
4017/* ==========================================================================
4018 Assembly Syntax: vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h
4019 C Intrinsic Prototype: void Q6_vgather_ARMWw(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv)
4020 Instruction Type: CVI_GATHER_DV
4021 Execution Slots: SLOT01
4022 ========================================================================== */
4023
4024#define Q6_vgather_ARMWw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhw)
4025#endif /* __HEXAGON_ARCH___ >= 65 */
4026
4027#if __HVX_ARCH__ >= 65
4028/* ==========================================================================
4029 Assembly Syntax: if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h
4030 C Intrinsic Prototype: void Q6_vgather_AQRMWw(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv)
4031 Instruction Type: CVI_GATHER_DV
4032 Execution Slots: SLOT01
4033 ========================================================================== */
4034
4035#define Q6_vgather_AQRMWw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhwq)
4036#endif /* __HEXAGON_ARCH___ >= 65 */
4037
4038#if __HVX_ARCH__ >= 65
4039/* ==========================================================================
4040 Assembly Syntax: vtmp.w=vgather(Rt32,Mu2,Vv32.w).w
4041 C Intrinsic Prototype: void Q6_vgather_ARMVw(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4042 Instruction Type: CVI_GATHER
4043 Execution Slots: SLOT01
4044 ========================================================================== */
4045
4046#define Q6_vgather_ARMVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermw)
4047#endif /* __HEXAGON_ARCH___ >= 65 */
4048
4049#if __HVX_ARCH__ >= 65
4050/* ==========================================================================
4051 Assembly Syntax: if (Qs4) vtmp.w=vgather(Rt32,Mu2,Vv32.w).w
4052 C Intrinsic Prototype: void Q6_vgather_AQRMVw(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4053 Instruction Type: CVI_GATHER
4054 Execution Slots: SLOT01
4055 ========================================================================== */
4056
4057#define Q6_vgather_AQRMVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermwq)
4058#endif /* __HEXAGON_ARCH___ >= 65 */
4059
4060#if __HVX_ARCH__ >= 65
4061/* ==========================================================================
4062 Assembly Syntax: Vd32.h=vlut4(Vu32.uh,Rtt32.h)
4063 C Intrinsic Prototype: HVX_Vector Q6_Vh_vlut4_VuhPh(HVX_Vector Vu, Word64 Rtt)
4064 Instruction Type: CVI_VX_DV
4065 Execution Slots: SLOT2
4066 ========================================================================== */
4067
4068#define Q6_Vh_vlut4_VuhPh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlut4)
4069#endif /* __HEXAGON_ARCH___ >= 65 */
4070
4071#if __HVX_ARCH__ >= 65
4072/* ==========================================================================
4073 Assembly Syntax: Vdd32.h=vmpa(Vuu32.ub,Rt32.ub)
4074 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubRub(HVX_VectorPair Vuu, Word32 Rt)
4075 Instruction Type: CVI_VX_DV
4076 Execution Slots: SLOT23
4077 ========================================================================== */
4078
4079#define Q6_Wh_vmpa_WubRub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuu)
4080#endif /* __HEXAGON_ARCH___ >= 65 */
4081
4082#if __HVX_ARCH__ >= 65
4083/* ==========================================================================
4084 Assembly Syntax: Vxx32.h+=vmpa(Vuu32.ub,Rt32.ub)
4085 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpaacc_WhWubRub(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
4086 Instruction Type: CVI_VX_DV
4087 Execution Slots: SLOT23
4088 ========================================================================== */
4089
4090#define Q6_Wh_vmpaacc_WhWubRub __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuu_acc)
4091#endif /* __HEXAGON_ARCH___ >= 65 */
4092
4093#if __HVX_ARCH__ >= 65
4094/* ==========================================================================
4095 Assembly Syntax: Vx32.h=vmpa(Vx32.h,Vu32.h,Rtt32.h):sat
4096 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpa_VhVhVhPh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4097 Instruction Type: CVI_VX_DV
4098 Execution Slots: SLOT2
4099 ========================================================================== */
4100
4101#define Q6_Vh_vmpa_VhVhVhPh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahhsat)
4102#endif /* __HEXAGON_ARCH___ >= 65 */
4103
4104#if __HVX_ARCH__ >= 65
4105/* ==========================================================================
4106 Assembly Syntax: Vx32.h=vmpa(Vx32.h,Vu32.uh,Rtt32.uh):sat
4107 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpa_VhVhVuhPuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4108 Instruction Type: CVI_VX_DV
4109 Execution Slots: SLOT2
4110 ========================================================================== */
4111
4112#define Q6_Vh_vmpa_VhVhVuhPuh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhuhsat)
4113#endif /* __HEXAGON_ARCH___ >= 65 */
4114
4115#if __HVX_ARCH__ >= 65
4116/* ==========================================================================
4117 Assembly Syntax: Vx32.h=vmps(Vx32.h,Vu32.uh,Rtt32.uh):sat
4118 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmps_VhVhVuhPuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4119 Instruction Type: CVI_VX_DV
4120 Execution Slots: SLOT2
4121 ========================================================================== */
4122
4123#define Q6_Vh_vmps_VhVhVuhPuh_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpsuhuhsat)
4124#endif /* __HEXAGON_ARCH___ >= 65 */
4125
4126#if __HVX_ARCH__ >= 65
4127/* ==========================================================================
4128 Assembly Syntax: Vxx32.w+=vmpy(Vu32.h,Rt32.h)
4129 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhRh(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
4130 Instruction Type: CVI_VX_DV
4131 Execution Slots: SLOT23
4132 ========================================================================== */
4133
4134#define Q6_Ww_vmpyacc_WwVhRh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyh_acc)
4135#endif /* __HEXAGON_ARCH___ >= 65 */
4136
4137#if __HVX_ARCH__ >= 65
4138/* ==========================================================================
4139 Assembly Syntax: Vd32.uw=vmpye(Vu32.uh,Rt32.uh)
4140 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vmpye_VuhRuh(HVX_Vector Vu, Word32 Rt)
4141 Instruction Type: CVI_VX
4142 Execution Slots: SLOT23
4143 ========================================================================== */
4144
4145#define Q6_Vuw_vmpye_VuhRuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhe)
4146#endif /* __HEXAGON_ARCH___ >= 65 */
4147
4148#if __HVX_ARCH__ >= 65
4149/* ==========================================================================
4150 Assembly Syntax: Vx32.uw+=vmpye(Vu32.uh,Rt32.uh)
4151 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vmpyeacc_VuwVuhRuh(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
4152 Instruction Type: CVI_VX
4153 Execution Slots: SLOT23
4154 ========================================================================== */
4155
4156#define Q6_Vuw_vmpyeacc_VuwVuhRuh __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhe_acc)
4157#endif /* __HEXAGON_ARCH___ >= 65 */
4158
4159#if __HVX_ARCH__ >= 65
4160/* ==========================================================================
4161 Assembly Syntax: Vd32.b=vnavg(Vu32.b,Vv32.b)
4162 C Intrinsic Prototype: HVX_Vector Q6_Vb_vnavg_VbVb(HVX_Vector Vu, HVX_Vector Vv)
4163 Instruction Type: CVI_VA
4164 Execution Slots: SLOT0123
4165 ========================================================================== */
4166
4167#define Q6_Vb_vnavg_VbVb __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgb)
4168#endif /* __HEXAGON_ARCH___ >= 65 */
4169
4170#if __HVX_ARCH__ >= 65
4171/* ==========================================================================
4172 Assembly Syntax: Vd32.b=prefixsum(Qv4)
4173 C Intrinsic Prototype: HVX_Vector Q6_Vb_prefixsum_Q(HVX_VectorPred Qv)
4174 Instruction Type: CVI_VS
4175 Execution Slots: SLOT0123
4176 ========================================================================== */
4177
4178#define Q6_Vb_prefixsum_Q __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqb)
4179#endif /* __HEXAGON_ARCH___ >= 65 */
4180
4181#if __HVX_ARCH__ >= 65
4182/* ==========================================================================
4183 Assembly Syntax: Vd32.h=prefixsum(Qv4)
4184 C Intrinsic Prototype: HVX_Vector Q6_Vh_prefixsum_Q(HVX_VectorPred Qv)
4185 Instruction Type: CVI_VS
4186 Execution Slots: SLOT0123
4187 ========================================================================== */
4188
4189#define Q6_Vh_prefixsum_Q __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqh)
4190#endif /* __HEXAGON_ARCH___ >= 65 */
4191
4192#if __HVX_ARCH__ >= 65
4193/* ==========================================================================
4194 Assembly Syntax: Vd32.w=prefixsum(Qv4)
4195 C Intrinsic Prototype: HVX_Vector Q6_Vw_prefixsum_Q(HVX_VectorPred Qv)
4196 Instruction Type: CVI_VS
4197 Execution Slots: SLOT0123
4198 ========================================================================== */
4199
4200#define Q6_Vw_prefixsum_Q __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqw)
4201#endif /* __HEXAGON_ARCH___ >= 65 */
4202
4203#if __HVX_ARCH__ >= 65
4204/* ==========================================================================
4205 Assembly Syntax: vscatter(Rt32,Mu2,Vv32.h).h=Vw32
4206 C Intrinsic Prototype: void Q6_vscatter_RMVhV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4207 Instruction Type: CVI_SCATTER
4208 Execution Slots: SLOT0
4209 ========================================================================== */
4210
4211#define Q6_vscatter_RMVhV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermh)
4212#endif /* __HEXAGON_ARCH___ >= 65 */
4213
4214#if __HVX_ARCH__ >= 65
4215/* ==========================================================================
4216 Assembly Syntax: vscatter(Rt32,Mu2,Vv32.h).h+=Vw32
4217 C Intrinsic Prototype: void Q6_vscatteracc_RMVhV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4218 Instruction Type: CVI_SCATTER
4219 Execution Slots: SLOT0
4220 ========================================================================== */
4221
4222#define Q6_vscatteracc_RMVhV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermh_add)
4223#endif /* __HEXAGON_ARCH___ >= 65 */
4224
4225#if __HVX_ARCH__ >= 65
4226/* ==========================================================================
4227 Assembly Syntax: if (Qs4) vscatter(Rt32,Mu2,Vv32.h).h=Vw32
4228 C Intrinsic Prototype: void Q6_vscatter_QRMVhV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4229 Instruction Type: CVI_SCATTER
4230 Execution Slots: SLOT0
4231 ========================================================================== */
4232
4233#define Q6_vscatter_QRMVhV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhq)
4234#endif /* __HEXAGON_ARCH___ >= 65 */
4235
4236#if __HVX_ARCH__ >= 65
4237/* ==========================================================================
4238 Assembly Syntax: vscatter(Rt32,Mu2,Vvv32.w).h=Vw32
4239 C Intrinsic Prototype: void Q6_vscatter_RMWwV(Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4240 Instruction Type: CVI_SCATTER_DV
4241 Execution Slots: SLOT0
4242 ========================================================================== */
4243
4244#define Q6_vscatter_RMWwV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhw)
4245#endif /* __HEXAGON_ARCH___ >= 65 */
4246
4247#if __HVX_ARCH__ >= 65
4248/* ==========================================================================
4249 Assembly Syntax: vscatter(Rt32,Mu2,Vvv32.w).h+=Vw32
4250 C Intrinsic Prototype: void Q6_vscatteracc_RMWwV(Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4251 Instruction Type: CVI_SCATTER_DV
4252 Execution Slots: SLOT0
4253 ========================================================================== */
4254
4255#define Q6_vscatteracc_RMWwV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhw_add)
4256#endif /* __HEXAGON_ARCH___ >= 65 */
4257
4258#if __HVX_ARCH__ >= 65
4259/* ==========================================================================
4260 Assembly Syntax: if (Qs4) vscatter(Rt32,Mu2,Vvv32.w).h=Vw32
4261 C Intrinsic Prototype: void Q6_vscatter_QRMWwV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4262 Instruction Type: CVI_SCATTER_DV
4263 Execution Slots: SLOT0
4264 ========================================================================== */
4265
4266#define Q6_vscatter_QRMWwV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhwq)
4267#endif /* __HEXAGON_ARCH___ >= 65 */
4268
4269#if __HVX_ARCH__ >= 65
4270/* ==========================================================================
4271 Assembly Syntax: vscatter(Rt32,Mu2,Vv32.w).w=Vw32
4272 C Intrinsic Prototype: void Q6_vscatter_RMVwV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4273 Instruction Type: CVI_SCATTER
4274 Execution Slots: SLOT0
4275 ========================================================================== */
4276
4277#define Q6_vscatter_RMVwV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermw)
4278#endif /* __HEXAGON_ARCH___ >= 65 */
4279
4280#if __HVX_ARCH__ >= 65
4281/* ==========================================================================
4282 Assembly Syntax: vscatter(Rt32,Mu2,Vv32.w).w+=Vw32
4283 C Intrinsic Prototype: void Q6_vscatteracc_RMVwV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4284 Instruction Type: CVI_SCATTER
4285 Execution Slots: SLOT0
4286 ========================================================================== */
4287
4288#define Q6_vscatteracc_RMVwV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermw_add)
4289#endif /* __HEXAGON_ARCH___ >= 65 */
4290
4291#if __HVX_ARCH__ >= 65
4292/* ==========================================================================
4293 Assembly Syntax: if (Qs4) vscatter(Rt32,Mu2,Vv32.w).w=Vw32
4294 C Intrinsic Prototype: void Q6_vscatter_QRMVwV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4295 Instruction Type: CVI_SCATTER
4296 Execution Slots: SLOT0
4297 ========================================================================== */
4298
4299#define Q6_vscatter_QRMVwV __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermwq)
4300#endif /* __HEXAGON_ARCH___ >= 65 */
4301
4302#if __HVX_ARCH__ >= 66
4303/* ==========================================================================
4304 Assembly Syntax: Vd32.w=vadd(Vu32.w,Vv32.w,Qs4):carry:sat
4305 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVwQ_carry_sat(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred Qs)
4306 Instruction Type: CVI_VA
4307 Execution Slots: SLOT0123
4308 ========================================================================== */
4309
4310#define Q6_Vw_vadd_VwVwQ_carry_sat __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddcarrysat)
4311#endif /* __HEXAGON_ARCH___ >= 66 */
4312
4313#if __HVX_ARCH__ >= 66
4314/* ==========================================================================
4315 Assembly Syntax: Vxx32.w=vasrinto(Vu32.w,Vv32.w)
4316 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vasrinto_WwVwVw(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
4317 Instruction Type: CVI_VP_VS
4318 Execution Slots: SLOT0123
4319 ========================================================================== */
4320
4321#define Q6_Ww_vasrinto_WwVwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasr_into)
4322#endif /* __HEXAGON_ARCH___ >= 66 */
4323
4324#if __HVX_ARCH__ >= 66
4325/* ==========================================================================
4326 Assembly Syntax: Vd32.uw=vrotr(Vu32.uw,Vv32.uw)
4327 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrotr_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
4328 Instruction Type: CVI_VS
4329 Execution Slots: SLOT0123
4330 ========================================================================== */
4331
4332#define Q6_Vuw_vrotr_VuwVuw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrotr)
4333#endif /* __HEXAGON_ARCH___ >= 66 */
4334
4335#if __HVX_ARCH__ >= 66
4336/* ==========================================================================
4337 Assembly Syntax: Vd32.w=vsatdw(Vu32.w,Vv32.w)
4338 C Intrinsic Prototype: HVX_Vector Q6_Vw_vsatdw_VwVw(HVX_Vector Vu, HVX_Vector Vv)
4339 Instruction Type: CVI_VA
4340 Execution Slots: SLOT0123
4341 ========================================================================== */
4342
4343#define Q6_Vw_vsatdw_VwVw __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatdw)
4344#endif /* __HEXAGON_ARCH___ >= 66 */
4345
4346#if __HVX_ARCH__ >= 68
4347/* ==========================================================================
4348 Assembly Syntax: Vdd32.w=v6mpy(Vuu32.ub,Vvv32.b,#u2):h
4349 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpy_WubWbI_h(HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4350 Instruction Type: CVI_VX_DV
4351 Execution Slots: SLOT23
4352 ========================================================================== */
4353
4354#define Q6_Ww_v6mpy_WubWbI_h __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyhubs10)
4355#endif /* __HEXAGON_ARCH___ >= 68 */
4356
4357#if __HVX_ARCH__ >= 68
4358/* ==========================================================================
4359 Assembly Syntax: Vxx32.w+=v6mpy(Vuu32.ub,Vvv32.b,#u2):h
4360 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpyacc_WwWubWbI_h(HVX_VectorPair Vxx, HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4361 Instruction Type: CVI_VX_DV
4362 Execution Slots: SLOT23
4363 ========================================================================== */
4364
4365#define Q6_Ww_v6mpyacc_WwWubWbI_h __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyhubs10_vxx)
4366#endif /* __HEXAGON_ARCH___ >= 68 */
4367
4368#if __HVX_ARCH__ >= 68
4369/* ==========================================================================
4370 Assembly Syntax: Vdd32.w=v6mpy(Vuu32.ub,Vvv32.b,#u2):v
4371 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpy_WubWbI_v(HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4372 Instruction Type: CVI_VX_DV
4373 Execution Slots: SLOT23
4374 ========================================================================== */
4375
4376#define Q6_Ww_v6mpy_WubWbI_v __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyvubs10)
4377#endif /* __HEXAGON_ARCH___ >= 68 */
4378
4379#if __HVX_ARCH__ >= 68
4380/* ==========================================================================
4381 Assembly Syntax: Vxx32.w+=v6mpy(Vuu32.ub,Vvv32.b,#u2):v
4382 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpyacc_WwWubWbI_v(HVX_VectorPair Vxx, HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4383 Instruction Type: CVI_VX_DV
4384 Execution Slots: SLOT23
4385 ========================================================================== */
4386
4387#define Q6_Ww_v6mpyacc_WwWubWbI_v __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyvubs10_vxx)
4388#endif /* __HEXAGON_ARCH___ >= 68 */
4389
4390#endif /* __HVX__ */
4391
4392#endif