1 //===----------------------------------------------------------------------===//
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
7 //===----------------------------------------------------------------------===//
8 // Automatically generated file, do not edit!
9 //===----------------------------------------------------------------------===//
12 #ifndef _HVX_HEXAGON_PROTOS_H_
13 #define _HVX_HEXAGON_PROTOS_H_ 1
16 #if __HVX_LENGTH__ == 128
17 #define __BUILTIN_VECTOR_WRAP(a) a ## _128B
19 #define __BUILTIN_VECTOR_WRAP(a) a
22 #if __HVX_ARCH__ >= 60
23 /* ==========================================================================
24 Assembly Syntax: Rd32=vextract(Vu32,Rs32)
25 C Intrinsic Prototype: Word32 Q6_R_vextract_VR(HVX_Vector Vu, Word32 Rs)
27 Execution Slots: SLOT0
28 ========================================================================== */
30 #define Q6_R_vextract_VR(Vu,Rs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_extractw)(Vu,Rs)
31 #endif /* __HEXAGON_ARCH___ >= 60 */
33 #if __HVX_ARCH__ >= 60
34 /* ==========================================================================
35 Assembly Syntax: Vd32=hi(Vss32)
36 C Intrinsic Prototype: HVX_Vector Q6_V_hi_W(HVX_VectorPair Vss)
37 Instruction Type: CVI_VA
38 Execution Slots: SLOT0123
39 ========================================================================== */
41 #define Q6_V_hi_W(Vss) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_hi)(Vss)
42 #endif /* __HEXAGON_ARCH___ >= 60 */
44 #if __HVX_ARCH__ >= 60
45 /* ==========================================================================
46 Assembly Syntax: Vd32=lo(Vss32)
47 C Intrinsic Prototype: HVX_Vector Q6_V_lo_W(HVX_VectorPair Vss)
48 Instruction Type: CVI_VA
49 Execution Slots: SLOT0123
50 ========================================================================== */
52 #define Q6_V_lo_W(Vss) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lo)(Vss)
53 #endif /* __HEXAGON_ARCH___ >= 60 */
55 #if __HVX_ARCH__ >= 60
56 /* ==========================================================================
57 Assembly Syntax: Vd32=vsplat(Rt32)
58 C Intrinsic Prototype: HVX_Vector Q6_V_vsplat_R(Word32 Rt)
59 Instruction Type: CVI_VX_LATE
60 Execution Slots: SLOT23
61 ========================================================================== */
63 #define Q6_V_vsplat_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplatw)(Rt)
64 #endif /* __HEXAGON_ARCH___ >= 60 */
66 #if __HVX_ARCH__ >= 60
67 /* ==========================================================================
68 Assembly Syntax: Qd4=and(Qs4,Qt4)
69 C Intrinsic Prototype: HVX_VectorPred Q6_Q_and_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
70 Instruction Type: CVI_VA_DV
71 Execution Slots: SLOT0123
72 ========================================================================== */
74 #define Q6_Q_and_QQ(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
75 #endif /* __HEXAGON_ARCH___ >= 60 */
77 #if __HVX_ARCH__ >= 60
78 /* ==========================================================================
79 Assembly Syntax: Qd4=and(Qs4,!Qt4)
80 C Intrinsic Prototype: HVX_VectorPred Q6_Q_and_QQn(HVX_VectorPred Qs, HVX_VectorPred Qt)
81 Instruction Type: CVI_VA_DV
82 Execution Slots: SLOT0123
83 ========================================================================== */
85 #define Q6_Q_and_QQn(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_and_n)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
86 #endif /* __HEXAGON_ARCH___ >= 60 */
88 #if __HVX_ARCH__ >= 60
89 /* ==========================================================================
90 Assembly Syntax: Qd4=not(Qs4)
91 C Intrinsic Prototype: HVX_VectorPred Q6_Q_not_Q(HVX_VectorPred Qs)
92 Instruction Type: CVI_VA
93 Execution Slots: SLOT0123
94 ========================================================================== */
96 #define Q6_Q_not_Q(Qs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_not)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1))),-1)
97 #endif /* __HEXAGON_ARCH___ >= 60 */
99 #if __HVX_ARCH__ >= 60
100 /* ==========================================================================
101 Assembly Syntax: Qd4=or(Qs4,Qt4)
102 C Intrinsic Prototype: HVX_VectorPred Q6_Q_or_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
103 Instruction Type: CVI_VA_DV
104 Execution Slots: SLOT0123
105 ========================================================================== */
107 #define Q6_Q_or_QQ(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
108 #endif /* __HEXAGON_ARCH___ >= 60 */
110 #if __HVX_ARCH__ >= 60
111 /* ==========================================================================
112 Assembly Syntax: Qd4=or(Qs4,!Qt4)
113 C Intrinsic Prototype: HVX_VectorPred Q6_Q_or_QQn(HVX_VectorPred Qs, HVX_VectorPred Qt)
114 Instruction Type: CVI_VA_DV
115 Execution Slots: SLOT0123
116 ========================================================================== */
118 #define Q6_Q_or_QQn(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_or_n)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
119 #endif /* __HEXAGON_ARCH___ >= 60 */
121 #if __HVX_ARCH__ >= 60
122 /* ==========================================================================
123 Assembly Syntax: Qd4=vsetq(Rt32)
124 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vsetq_R(Word32 Rt)
125 Instruction Type: CVI_VP
126 Execution Slots: SLOT0123
127 ========================================================================== */
129 #define Q6_Q_vsetq_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_scalar2)(Rt)),-1)
130 #endif /* __HEXAGON_ARCH___ >= 60 */
132 #if __HVX_ARCH__ >= 60
133 /* ==========================================================================
134 Assembly Syntax: Qd4=xor(Qs4,Qt4)
135 C Intrinsic Prototype: HVX_VectorPred Q6_Q_xor_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
136 Instruction Type: CVI_VA_DV
137 Execution Slots: SLOT0123
138 ========================================================================== */
140 #define Q6_Q_xor_QQ(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
141 #endif /* __HEXAGON_ARCH___ >= 60 */
143 #if __HVX_ARCH__ >= 60
144 /* ==========================================================================
145 Assembly Syntax: if (!Qv4) vmem(Rt32+#s4)=Vs32
146 C Intrinsic Prototype: void Q6_vmem_QnRIV(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
147 Instruction Type: CVI_VM_ST
148 Execution Slots: SLOT0
149 ========================================================================== */
151 #define Q6_vmem_QnRIV(Qv,Rt,Vs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_nqpred_ai)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Rt,Vs)
152 #endif /* __HEXAGON_ARCH___ >= 60 */
154 #if __HVX_ARCH__ >= 60
155 /* ==========================================================================
156 Assembly Syntax: if (!Qv4) vmem(Rt32+#s4):nt=Vs32
157 C Intrinsic Prototype: void Q6_vmem_QnRIV_nt(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
158 Instruction Type: CVI_VM_ST
159 Execution Slots: SLOT0
160 ========================================================================== */
162 #define Q6_vmem_QnRIV_nt(Qv,Rt,Vs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_nt_nqpred_ai)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Rt,Vs)
163 #endif /* __HEXAGON_ARCH___ >= 60 */
165 #if __HVX_ARCH__ >= 60
166 /* ==========================================================================
167 Assembly Syntax: if (Qv4) vmem(Rt32+#s4):nt=Vs32
168 C Intrinsic Prototype: void Q6_vmem_QRIV_nt(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
169 Instruction Type: CVI_VM_ST
170 Execution Slots: SLOT0
171 ========================================================================== */
173 #define Q6_vmem_QRIV_nt(Qv,Rt,Vs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_nt_qpred_ai)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Rt,Vs)
174 #endif /* __HEXAGON_ARCH___ >= 60 */
176 #if __HVX_ARCH__ >= 60
177 /* ==========================================================================
178 Assembly Syntax: if (Qv4) vmem(Rt32+#s4)=Vs32
179 C Intrinsic Prototype: void Q6_vmem_QRIV(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
180 Instruction Type: CVI_VM_ST
181 Execution Slots: SLOT0
182 ========================================================================== */
184 #define Q6_vmem_QRIV(Qv,Rt,Vs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_qpred_ai)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Rt,Vs)
185 #endif /* __HEXAGON_ARCH___ >= 60 */
187 #if __HVX_ARCH__ >= 60
188 /* ==========================================================================
189 Assembly Syntax: Vd32.uh=vabsdiff(Vu32.h,Vv32.h)
190 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vabsdiff_VhVh(HVX_Vector Vu, HVX_Vector Vv)
191 Instruction Type: CVI_VX
192 Execution Slots: SLOT23
193 ========================================================================== */
195 #define Q6_Vuh_vabsdiff_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffh)(Vu,Vv)
196 #endif /* __HEXAGON_ARCH___ >= 60 */
198 #if __HVX_ARCH__ >= 60
199 /* ==========================================================================
200 Assembly Syntax: Vd32.ub=vabsdiff(Vu32.ub,Vv32.ub)
201 C Intrinsic Prototype: HVX_Vector Q6_Vub_vabsdiff_VubVub(HVX_Vector Vu, HVX_Vector Vv)
202 Instruction Type: CVI_VX
203 Execution Slots: SLOT23
204 ========================================================================== */
206 #define Q6_Vub_vabsdiff_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffub)(Vu,Vv)
207 #endif /* __HEXAGON_ARCH___ >= 60 */
209 #if __HVX_ARCH__ >= 60
210 /* ==========================================================================
211 Assembly Syntax: Vd32.uh=vabsdiff(Vu32.uh,Vv32.uh)
212 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vabsdiff_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
213 Instruction Type: CVI_VX
214 Execution Slots: SLOT23
215 ========================================================================== */
217 #define Q6_Vuh_vabsdiff_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffuh)(Vu,Vv)
218 #endif /* __HEXAGON_ARCH___ >= 60 */
220 #if __HVX_ARCH__ >= 60
221 /* ==========================================================================
222 Assembly Syntax: Vd32.uw=vabsdiff(Vu32.w,Vv32.w)
223 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vabsdiff_VwVw(HVX_Vector Vu, HVX_Vector Vv)
224 Instruction Type: CVI_VX
225 Execution Slots: SLOT23
226 ========================================================================== */
228 #define Q6_Vuw_vabsdiff_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffw)(Vu,Vv)
229 #endif /* __HEXAGON_ARCH___ >= 60 */
231 #if __HVX_ARCH__ >= 60
232 /* ==========================================================================
233 Assembly Syntax: Vd32.h=vabs(Vu32.h)
234 C Intrinsic Prototype: HVX_Vector Q6_Vh_vabs_Vh(HVX_Vector Vu)
235 Instruction Type: CVI_VA
236 Execution Slots: SLOT0123
237 ========================================================================== */
239 #define Q6_Vh_vabs_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsh)(Vu)
240 #endif /* __HEXAGON_ARCH___ >= 60 */
242 #if __HVX_ARCH__ >= 60
243 /* ==========================================================================
244 Assembly Syntax: Vd32.h=vabs(Vu32.h):sat
245 C Intrinsic Prototype: HVX_Vector Q6_Vh_vabs_Vh_sat(HVX_Vector Vu)
246 Instruction Type: CVI_VA
247 Execution Slots: SLOT0123
248 ========================================================================== */
250 #define Q6_Vh_vabs_Vh_sat(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsh_sat)(Vu)
251 #endif /* __HEXAGON_ARCH___ >= 60 */
253 #if __HVX_ARCH__ >= 60
254 /* ==========================================================================
255 Assembly Syntax: Vd32.w=vabs(Vu32.w)
256 C Intrinsic Prototype: HVX_Vector Q6_Vw_vabs_Vw(HVX_Vector Vu)
257 Instruction Type: CVI_VA
258 Execution Slots: SLOT0123
259 ========================================================================== */
261 #define Q6_Vw_vabs_Vw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsw)(Vu)
262 #endif /* __HEXAGON_ARCH___ >= 60 */
264 #if __HVX_ARCH__ >= 60
265 /* ==========================================================================
266 Assembly Syntax: Vd32.w=vabs(Vu32.w):sat
267 C Intrinsic Prototype: HVX_Vector Q6_Vw_vabs_Vw_sat(HVX_Vector Vu)
268 Instruction Type: CVI_VA
269 Execution Slots: SLOT0123
270 ========================================================================== */
272 #define Q6_Vw_vabs_Vw_sat(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsw_sat)(Vu)
273 #endif /* __HEXAGON_ARCH___ >= 60 */
275 #if __HVX_ARCH__ >= 60
276 /* ==========================================================================
277 Assembly Syntax: Vd32.b=vadd(Vu32.b,Vv32.b)
278 C Intrinsic Prototype: HVX_Vector Q6_Vb_vadd_VbVb(HVX_Vector Vu, HVX_Vector Vv)
279 Instruction Type: CVI_VA
280 Execution Slots: SLOT0123
281 ========================================================================== */
283 #define Q6_Vb_vadd_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddb)(Vu,Vv)
284 #endif /* __HEXAGON_ARCH___ >= 60 */
286 #if __HVX_ARCH__ >= 60
287 /* ==========================================================================
288 Assembly Syntax: Vdd32.b=vadd(Vuu32.b,Vvv32.b)
289 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vadd_WbWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
290 Instruction Type: CVI_VA_DV
291 Execution Slots: SLOT0123
292 ========================================================================== */
294 #define Q6_Wb_vadd_WbWb(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddb_dv)(Vuu,Vvv)
295 #endif /* __HEXAGON_ARCH___ >= 60 */
297 #if __HVX_ARCH__ >= 60
298 /* ==========================================================================
299 Assembly Syntax: if (!Qv4) Vx32.b+=Vu32.b
300 C Intrinsic Prototype: HVX_Vector Q6_Vb_condacc_QnVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
301 Instruction Type: CVI_VA
302 Execution Slots: SLOT0123
303 ========================================================================== */
305 #define Q6_Vb_condacc_QnVbVb(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
306 #endif /* __HEXAGON_ARCH___ >= 60 */
308 #if __HVX_ARCH__ >= 60
309 /* ==========================================================================
310 Assembly Syntax: if (Qv4) Vx32.b+=Vu32.b
311 C Intrinsic Prototype: HVX_Vector Q6_Vb_condacc_QVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
312 Instruction Type: CVI_VA
313 Execution Slots: SLOT0123
314 ========================================================================== */
316 #define Q6_Vb_condacc_QVbVb(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
317 #endif /* __HEXAGON_ARCH___ >= 60 */
319 #if __HVX_ARCH__ >= 60
320 /* ==========================================================================
321 Assembly Syntax: Vd32.h=vadd(Vu32.h,Vv32.h)
322 C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_VhVh(HVX_Vector Vu, HVX_Vector Vv)
323 Instruction Type: CVI_VA
324 Execution Slots: SLOT0123
325 ========================================================================== */
327 #define Q6_Vh_vadd_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddh)(Vu,Vv)
328 #endif /* __HEXAGON_ARCH___ >= 60 */
330 #if __HVX_ARCH__ >= 60
331 /* ==========================================================================
332 Assembly Syntax: Vdd32.h=vadd(Vuu32.h,Vvv32.h)
333 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_WhWh(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
334 Instruction Type: CVI_VA_DV
335 Execution Slots: SLOT0123
336 ========================================================================== */
338 #define Q6_Wh_vadd_WhWh(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddh_dv)(Vuu,Vvv)
339 #endif /* __HEXAGON_ARCH___ >= 60 */
341 #if __HVX_ARCH__ >= 60
342 /* ==========================================================================
343 Assembly Syntax: if (!Qv4) Vx32.h+=Vu32.h
344 C Intrinsic Prototype: HVX_Vector Q6_Vh_condacc_QnVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
345 Instruction Type: CVI_VA
346 Execution Slots: SLOT0123
347 ========================================================================== */
349 #define Q6_Vh_condacc_QnVhVh(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
350 #endif /* __HEXAGON_ARCH___ >= 60 */
352 #if __HVX_ARCH__ >= 60
353 /* ==========================================================================
354 Assembly Syntax: if (Qv4) Vx32.h+=Vu32.h
355 C Intrinsic Prototype: HVX_Vector Q6_Vh_condacc_QVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
356 Instruction Type: CVI_VA
357 Execution Slots: SLOT0123
358 ========================================================================== */
360 #define Q6_Vh_condacc_QVhVh(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
361 #endif /* __HEXAGON_ARCH___ >= 60 */
363 #if __HVX_ARCH__ >= 60
364 /* ==========================================================================
365 Assembly Syntax: Vd32.h=vadd(Vu32.h,Vv32.h):sat
366 C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
367 Instruction Type: CVI_VA
368 Execution Slots: SLOT0123
369 ========================================================================== */
371 #define Q6_Vh_vadd_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhsat)(Vu,Vv)
372 #endif /* __HEXAGON_ARCH___ >= 60 */
374 #if __HVX_ARCH__ >= 60
375 /* ==========================================================================
376 Assembly Syntax: Vdd32.h=vadd(Vuu32.h,Vvv32.h):sat
377 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_WhWh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
378 Instruction Type: CVI_VA_DV
379 Execution Slots: SLOT0123
380 ========================================================================== */
382 #define Q6_Wh_vadd_WhWh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhsat_dv)(Vuu,Vvv)
383 #endif /* __HEXAGON_ARCH___ >= 60 */
385 #if __HVX_ARCH__ >= 60
386 /* ==========================================================================
387 Assembly Syntax: Vdd32.w=vadd(Vu32.h,Vv32.h)
388 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_VhVh(HVX_Vector Vu, HVX_Vector Vv)
389 Instruction Type: CVI_VX_DV
390 Execution Slots: SLOT23
391 ========================================================================== */
393 #define Q6_Ww_vadd_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhw)(Vu,Vv)
394 #endif /* __HEXAGON_ARCH___ >= 60 */
396 #if __HVX_ARCH__ >= 60
397 /* ==========================================================================
398 Assembly Syntax: Vdd32.h=vadd(Vu32.ub,Vv32.ub)
399 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_VubVub(HVX_Vector Vu, HVX_Vector Vv)
400 Instruction Type: CVI_VX_DV
401 Execution Slots: SLOT23
402 ========================================================================== */
404 #define Q6_Wh_vadd_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubh)(Vu,Vv)
405 #endif /* __HEXAGON_ARCH___ >= 60 */
407 #if __HVX_ARCH__ >= 60
408 /* ==========================================================================
409 Assembly Syntax: Vd32.ub=vadd(Vu32.ub,Vv32.ub):sat
410 C Intrinsic Prototype: HVX_Vector Q6_Vub_vadd_VubVub_sat(HVX_Vector Vu, HVX_Vector Vv)
411 Instruction Type: CVI_VA
412 Execution Slots: SLOT0123
413 ========================================================================== */
415 #define Q6_Vub_vadd_VubVub_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubsat)(Vu,Vv)
416 #endif /* __HEXAGON_ARCH___ >= 60 */
418 #if __HVX_ARCH__ >= 60
419 /* ==========================================================================
420 Assembly Syntax: Vdd32.ub=vadd(Vuu32.ub,Vvv32.ub):sat
421 C Intrinsic Prototype: HVX_VectorPair Q6_Wub_vadd_WubWub_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
422 Instruction Type: CVI_VA_DV
423 Execution Slots: SLOT0123
424 ========================================================================== */
426 #define Q6_Wub_vadd_WubWub_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubsat_dv)(Vuu,Vvv)
427 #endif /* __HEXAGON_ARCH___ >= 60 */
429 #if __HVX_ARCH__ >= 60
430 /* ==========================================================================
431 Assembly Syntax: Vd32.uh=vadd(Vu32.uh,Vv32.uh):sat
432 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vadd_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
433 Instruction Type: CVI_VA
434 Execution Slots: SLOT0123
435 ========================================================================== */
437 #define Q6_Vuh_vadd_VuhVuh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhsat)(Vu,Vv)
438 #endif /* __HEXAGON_ARCH___ >= 60 */
440 #if __HVX_ARCH__ >= 60
441 /* ==========================================================================
442 Assembly Syntax: Vdd32.uh=vadd(Vuu32.uh,Vvv32.uh):sat
443 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vadd_WuhWuh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
444 Instruction Type: CVI_VA_DV
445 Execution Slots: SLOT0123
446 ========================================================================== */
448 #define Q6_Wuh_vadd_WuhWuh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhsat_dv)(Vuu,Vvv)
449 #endif /* __HEXAGON_ARCH___ >= 60 */
451 #if __HVX_ARCH__ >= 60
452 /* ==========================================================================
453 Assembly Syntax: Vdd32.w=vadd(Vu32.uh,Vv32.uh)
454 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
455 Instruction Type: CVI_VX_DV
456 Execution Slots: SLOT23
457 ========================================================================== */
459 #define Q6_Ww_vadd_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhw)(Vu,Vv)
460 #endif /* __HEXAGON_ARCH___ >= 60 */
462 #if __HVX_ARCH__ >= 60
463 /* ==========================================================================
464 Assembly Syntax: Vd32.w=vadd(Vu32.w,Vv32.w)
465 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVw(HVX_Vector Vu, HVX_Vector Vv)
466 Instruction Type: CVI_VA
467 Execution Slots: SLOT0123
468 ========================================================================== */
470 #define Q6_Vw_vadd_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddw)(Vu,Vv)
471 #endif /* __HEXAGON_ARCH___ >= 60 */
473 #if __HVX_ARCH__ >= 60
474 /* ==========================================================================
475 Assembly Syntax: Vdd32.w=vadd(Vuu32.w,Vvv32.w)
476 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_WwWw(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
477 Instruction Type: CVI_VA_DV
478 Execution Slots: SLOT0123
479 ========================================================================== */
481 #define Q6_Ww_vadd_WwWw(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddw_dv)(Vuu,Vvv)
482 #endif /* __HEXAGON_ARCH___ >= 60 */
484 #if __HVX_ARCH__ >= 60
485 /* ==========================================================================
486 Assembly Syntax: if (!Qv4) Vx32.w+=Vu32.w
487 C Intrinsic Prototype: HVX_Vector Q6_Vw_condacc_QnVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
488 Instruction Type: CVI_VA
489 Execution Slots: SLOT0123
490 ========================================================================== */
492 #define Q6_Vw_condacc_QnVwVw(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
493 #endif /* __HEXAGON_ARCH___ >= 60 */
495 #if __HVX_ARCH__ >= 60
496 /* ==========================================================================
497 Assembly Syntax: if (Qv4) Vx32.w+=Vu32.w
498 C Intrinsic Prototype: HVX_Vector Q6_Vw_condacc_QVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
499 Instruction Type: CVI_VA
500 Execution Slots: SLOT0123
501 ========================================================================== */
503 #define Q6_Vw_condacc_QVwVw(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
504 #endif /* __HEXAGON_ARCH___ >= 60 */
506 #if __HVX_ARCH__ >= 60
507 /* ==========================================================================
508 Assembly Syntax: Vd32.w=vadd(Vu32.w,Vv32.w):sat
509 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
510 Instruction Type: CVI_VA
511 Execution Slots: SLOT0123
512 ========================================================================== */
514 #define Q6_Vw_vadd_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwsat)(Vu,Vv)
515 #endif /* __HEXAGON_ARCH___ >= 60 */
517 #if __HVX_ARCH__ >= 60
518 /* ==========================================================================
519 Assembly Syntax: Vdd32.w=vadd(Vuu32.w,Vvv32.w):sat
520 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_WwWw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
521 Instruction Type: CVI_VA_DV
522 Execution Slots: SLOT0123
523 ========================================================================== */
525 #define Q6_Ww_vadd_WwWw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwsat_dv)(Vuu,Vvv)
526 #endif /* __HEXAGON_ARCH___ >= 60 */
528 #if __HVX_ARCH__ >= 60
529 /* ==========================================================================
530 Assembly Syntax: Vd32=valign(Vu32,Vv32,Rt8)
531 C Intrinsic Prototype: HVX_Vector Q6_V_valign_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
532 Instruction Type: CVI_VP
533 Execution Slots: SLOT0123
534 ========================================================================== */
536 #define Q6_V_valign_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_valignb)(Vu,Vv,Rt)
537 #endif /* __HEXAGON_ARCH___ >= 60 */
539 #if __HVX_ARCH__ >= 60
540 /* ==========================================================================
541 Assembly Syntax: Vd32=valign(Vu32,Vv32,#u3)
542 C Intrinsic Prototype: HVX_Vector Q6_V_valign_VVI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
543 Instruction Type: CVI_VP
544 Execution Slots: SLOT0123
545 ========================================================================== */
547 #define Q6_V_valign_VVI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_valignbi)(Vu,Vv,Iu3)
548 #endif /* __HEXAGON_ARCH___ >= 60 */
550 #if __HVX_ARCH__ >= 60
551 /* ==========================================================================
552 Assembly Syntax: Vd32=vand(Vu32,Vv32)
553 C Intrinsic Prototype: HVX_Vector Q6_V_vand_VV(HVX_Vector Vu, HVX_Vector Vv)
554 Instruction Type: CVI_VA
555 Execution Slots: SLOT0123
556 ========================================================================== */
558 #define Q6_V_vand_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vand)(Vu,Vv)
559 #endif /* __HEXAGON_ARCH___ >= 60 */
561 #if __HVX_ARCH__ >= 60
562 /* ==========================================================================
563 Assembly Syntax: Vd32=vand(Qu4,Rt32)
564 C Intrinsic Prototype: HVX_Vector Q6_V_vand_QR(HVX_VectorPred Qu, Word32 Rt)
565 Instruction Type: CVI_VX_LATE
566 Execution Slots: SLOT23
567 ========================================================================== */
569 #define Q6_V_vand_QR(Qu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qu),-1),Rt)
570 #endif /* __HEXAGON_ARCH___ >= 60 */
572 #if __HVX_ARCH__ >= 60
573 /* ==========================================================================
574 Assembly Syntax: Vx32|=vand(Qu4,Rt32)
575 C Intrinsic Prototype: HVX_Vector Q6_V_vandor_VQR(HVX_Vector Vx, HVX_VectorPred Qu, Word32 Rt)
576 Instruction Type: CVI_VX_LATE
577 Execution Slots: SLOT23
578 ========================================================================== */
580 #define Q6_V_vandor_VQR(Vx,Qu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt_acc)(Vx,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qu),-1),Rt)
581 #endif /* __HEXAGON_ARCH___ >= 60 */
583 #if __HVX_ARCH__ >= 60
584 /* ==========================================================================
585 Assembly Syntax: Qd4=vand(Vu32,Rt32)
586 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vand_VR(HVX_Vector Vu, Word32 Rt)
587 Instruction Type: CVI_VX_LATE
588 Execution Slots: SLOT23
589 ========================================================================== */
591 #define Q6_Q_vand_VR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)(Vu,Rt)),-1)
592 #endif /* __HEXAGON_ARCH___ >= 60 */
594 #if __HVX_ARCH__ >= 60
595 /* ==========================================================================
596 Assembly Syntax: Qx4|=vand(Vu32,Rt32)
597 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vandor_QVR(HVX_VectorPred Qx, HVX_Vector Vu, Word32 Rt)
598 Instruction Type: CVI_VX_LATE
599 Execution Slots: SLOT23
600 ========================================================================== */
602 #define Q6_Q_vandor_QVR(Qx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt_acc)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Rt)),-1)
603 #endif /* __HEXAGON_ARCH___ >= 60 */
605 #if __HVX_ARCH__ >= 60
606 /* ==========================================================================
607 Assembly Syntax: Vd32.h=vasl(Vu32.h,Rt32)
608 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasl_VhR(HVX_Vector Vu, Word32 Rt)
609 Instruction Type: CVI_VS
610 Execution Slots: SLOT0123
611 ========================================================================== */
613 #define Q6_Vh_vasl_VhR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslh)(Vu,Rt)
614 #endif /* __HEXAGON_ARCH___ >= 60 */
616 #if __HVX_ARCH__ >= 60
617 /* ==========================================================================
618 Assembly Syntax: Vd32.h=vasl(Vu32.h,Vv32.h)
619 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasl_VhVh(HVX_Vector Vu, HVX_Vector Vv)
620 Instruction Type: CVI_VS
621 Execution Slots: SLOT0123
622 ========================================================================== */
624 #define Q6_Vh_vasl_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslhv)(Vu,Vv)
625 #endif /* __HEXAGON_ARCH___ >= 60 */
627 #if __HVX_ARCH__ >= 60
628 /* ==========================================================================
629 Assembly Syntax: Vd32.w=vasl(Vu32.w,Rt32)
630 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasl_VwR(HVX_Vector Vu, Word32 Rt)
631 Instruction Type: CVI_VS
632 Execution Slots: SLOT0123
633 ========================================================================== */
635 #define Q6_Vw_vasl_VwR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslw)(Vu,Rt)
636 #endif /* __HEXAGON_ARCH___ >= 60 */
638 #if __HVX_ARCH__ >= 60
639 /* ==========================================================================
640 Assembly Syntax: Vx32.w+=vasl(Vu32.w,Rt32)
641 C Intrinsic Prototype: HVX_Vector Q6_Vw_vaslacc_VwVwR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
642 Instruction Type: CVI_VS
643 Execution Slots: SLOT0123
644 ========================================================================== */
646 #define Q6_Vw_vaslacc_VwVwR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslw_acc)(Vx,Vu,Rt)
647 #endif /* __HEXAGON_ARCH___ >= 60 */
649 #if __HVX_ARCH__ >= 60
650 /* ==========================================================================
651 Assembly Syntax: Vd32.w=vasl(Vu32.w,Vv32.w)
652 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasl_VwVw(HVX_Vector Vu, HVX_Vector Vv)
653 Instruction Type: CVI_VS
654 Execution Slots: SLOT0123
655 ========================================================================== */
657 #define Q6_Vw_vasl_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslwv)(Vu,Vv)
658 #endif /* __HEXAGON_ARCH___ >= 60 */
660 #if __HVX_ARCH__ >= 60
661 /* ==========================================================================
662 Assembly Syntax: Vd32.h=vasr(Vu32.h,Rt32)
663 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VhR(HVX_Vector Vu, Word32 Rt)
664 Instruction Type: CVI_VS
665 Execution Slots: SLOT0123
666 ========================================================================== */
668 #define Q6_Vh_vasr_VhR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrh)(Vu,Rt)
669 #endif /* __HEXAGON_ARCH___ >= 60 */
671 #if __HVX_ARCH__ >= 60
672 /* ==========================================================================
673 Assembly Syntax: Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat
674 C Intrinsic Prototype: HVX_Vector Q6_Vb_vasr_VhVhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
675 Instruction Type: CVI_VS
676 Execution Slots: SLOT0123
677 ========================================================================== */
679 #define Q6_Vb_vasr_VhVhR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhbrndsat)(Vu,Vv,Rt)
680 #endif /* __HEXAGON_ARCH___ >= 60 */
682 #if __HVX_ARCH__ >= 60
683 /* ==========================================================================
684 Assembly Syntax: Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat
685 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VhVhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
686 Instruction Type: CVI_VS
687 Execution Slots: SLOT0123
688 ========================================================================== */
690 #define Q6_Vub_vasr_VhVhR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhubrndsat)(Vu,Vv,Rt)
691 #endif /* __HEXAGON_ARCH___ >= 60 */
693 #if __HVX_ARCH__ >= 60
694 /* ==========================================================================
695 Assembly Syntax: Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):sat
696 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VhVhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
697 Instruction Type: CVI_VS
698 Execution Slots: SLOT0123
699 ========================================================================== */
701 #define Q6_Vub_vasr_VhVhR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhubsat)(Vu,Vv,Rt)
702 #endif /* __HEXAGON_ARCH___ >= 60 */
704 #if __HVX_ARCH__ >= 60
705 /* ==========================================================================
706 Assembly Syntax: Vd32.h=vasr(Vu32.h,Vv32.h)
707 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VhVh(HVX_Vector Vu, HVX_Vector Vv)
708 Instruction Type: CVI_VS
709 Execution Slots: SLOT0123
710 ========================================================================== */
712 #define Q6_Vh_vasr_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhv)(Vu,Vv)
713 #endif /* __HEXAGON_ARCH___ >= 60 */
715 #if __HVX_ARCH__ >= 60
716 /* ==========================================================================
717 Assembly Syntax: Vd32.w=vasr(Vu32.w,Rt32)
718 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasr_VwR(HVX_Vector Vu, Word32 Rt)
719 Instruction Type: CVI_VS
720 Execution Slots: SLOT0123
721 ========================================================================== */
723 #define Q6_Vw_vasr_VwR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrw)(Vu,Rt)
724 #endif /* __HEXAGON_ARCH___ >= 60 */
726 #if __HVX_ARCH__ >= 60
727 /* ==========================================================================
728 Assembly Syntax: Vx32.w+=vasr(Vu32.w,Rt32)
729 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasracc_VwVwR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
730 Instruction Type: CVI_VS
731 Execution Slots: SLOT0123
732 ========================================================================== */
734 #define Q6_Vw_vasracc_VwVwR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrw_acc)(Vx,Vu,Rt)
735 #endif /* __HEXAGON_ARCH___ >= 60 */
737 #if __HVX_ARCH__ >= 60
738 /* ==========================================================================
739 Assembly Syntax: Vd32.h=vasr(Vu32.w,Vv32.w,Rt8)
740 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
741 Instruction Type: CVI_VS
742 Execution Slots: SLOT0123
743 ========================================================================== */
745 #define Q6_Vh_vasr_VwVwR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwh)(Vu,Vv,Rt)
746 #endif /* __HEXAGON_ARCH___ >= 60 */
748 #if __HVX_ARCH__ >= 60
749 /* ==========================================================================
750 Assembly Syntax: Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
751 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
752 Instruction Type: CVI_VS
753 Execution Slots: SLOT0123
754 ========================================================================== */
756 #define Q6_Vh_vasr_VwVwR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwhrndsat)(Vu,Vv,Rt)
757 #endif /* __HEXAGON_ARCH___ >= 60 */
759 #if __HVX_ARCH__ >= 60
760 /* ==========================================================================
761 Assembly Syntax: Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):sat
762 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
763 Instruction Type: CVI_VS
764 Execution Slots: SLOT0123
765 ========================================================================== */
767 #define Q6_Vh_vasr_VwVwR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwhsat)(Vu,Vv,Rt)
768 #endif /* __HEXAGON_ARCH___ >= 60 */
770 #if __HVX_ARCH__ >= 60
771 /* ==========================================================================
772 Assembly Syntax: Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):sat
773 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VwVwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
774 Instruction Type: CVI_VS
775 Execution Slots: SLOT0123
776 ========================================================================== */
778 #define Q6_Vuh_vasr_VwVwR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwuhsat)(Vu,Vv,Rt)
779 #endif /* __HEXAGON_ARCH___ >= 60 */
781 #if __HVX_ARCH__ >= 60
782 /* ==========================================================================
783 Assembly Syntax: Vd32.w=vasr(Vu32.w,Vv32.w)
784 C Intrinsic Prototype: HVX_Vector Q6_Vw_vasr_VwVw(HVX_Vector Vu, HVX_Vector Vv)
785 Instruction Type: CVI_VS
786 Execution Slots: SLOT0123
787 ========================================================================== */
789 #define Q6_Vw_vasr_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwv)(Vu,Vv)
790 #endif /* __HEXAGON_ARCH___ >= 60 */
792 #if __HVX_ARCH__ >= 60
793 /* ==========================================================================
794 Assembly Syntax: Vd32=Vu32
795 C Intrinsic Prototype: HVX_Vector Q6_V_equals_V(HVX_Vector Vu)
796 Instruction Type: CVI_VA
797 Execution Slots: SLOT0123
798 ========================================================================== */
800 #define Q6_V_equals_V(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassign)(Vu)
801 #endif /* __HEXAGON_ARCH___ >= 60 */
803 #if __HVX_ARCH__ >= 60
804 /* ==========================================================================
805 Assembly Syntax: Vdd32=Vuu32
806 C Intrinsic Prototype: HVX_VectorPair Q6_W_equals_W(HVX_VectorPair Vuu)
807 Instruction Type: CVI_VA_DV
808 Execution Slots: SLOT0123
809 ========================================================================== */
811 #define Q6_W_equals_W(Vuu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassignp)(Vuu)
812 #endif /* __HEXAGON_ARCH___ >= 60 */
814 #if __HVX_ARCH__ >= 60
815 /* ==========================================================================
816 Assembly Syntax: Vd32.h=vavg(Vu32.h,Vv32.h)
817 C Intrinsic Prototype: HVX_Vector Q6_Vh_vavg_VhVh(HVX_Vector Vu, HVX_Vector Vv)
818 Instruction Type: CVI_VA
819 Execution Slots: SLOT0123
820 ========================================================================== */
822 #define Q6_Vh_vavg_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgh)(Vu,Vv)
823 #endif /* __HEXAGON_ARCH___ >= 60 */
825 #if __HVX_ARCH__ >= 60
826 /* ==========================================================================
827 Assembly Syntax: Vd32.h=vavg(Vu32.h,Vv32.h):rnd
828 C Intrinsic Prototype: HVX_Vector Q6_Vh_vavg_VhVh_rnd(HVX_Vector Vu, HVX_Vector Vv)
829 Instruction Type: CVI_VA
830 Execution Slots: SLOT0123
831 ========================================================================== */
833 #define Q6_Vh_vavg_VhVh_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavghrnd)(Vu,Vv)
834 #endif /* __HEXAGON_ARCH___ >= 60 */
836 #if __HVX_ARCH__ >= 60
837 /* ==========================================================================
838 Assembly Syntax: Vd32.ub=vavg(Vu32.ub,Vv32.ub)
839 C Intrinsic Prototype: HVX_Vector Q6_Vub_vavg_VubVub(HVX_Vector Vu, HVX_Vector Vv)
840 Instruction Type: CVI_VA
841 Execution Slots: SLOT0123
842 ========================================================================== */
844 #define Q6_Vub_vavg_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgub)(Vu,Vv)
845 #endif /* __HEXAGON_ARCH___ >= 60 */
847 #if __HVX_ARCH__ >= 60
848 /* ==========================================================================
849 Assembly Syntax: Vd32.ub=vavg(Vu32.ub,Vv32.ub):rnd
850 C Intrinsic Prototype: HVX_Vector Q6_Vub_vavg_VubVub_rnd(HVX_Vector Vu, HVX_Vector Vv)
851 Instruction Type: CVI_VA
852 Execution Slots: SLOT0123
853 ========================================================================== */
855 #define Q6_Vub_vavg_VubVub_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgubrnd)(Vu,Vv)
856 #endif /* __HEXAGON_ARCH___ >= 60 */
858 #if __HVX_ARCH__ >= 60
859 /* ==========================================================================
860 Assembly Syntax: Vd32.uh=vavg(Vu32.uh,Vv32.uh)
861 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vavg_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
862 Instruction Type: CVI_VA
863 Execution Slots: SLOT0123
864 ========================================================================== */
866 #define Q6_Vuh_vavg_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguh)(Vu,Vv)
867 #endif /* __HEXAGON_ARCH___ >= 60 */
869 #if __HVX_ARCH__ >= 60
870 /* ==========================================================================
871 Assembly Syntax: Vd32.uh=vavg(Vu32.uh,Vv32.uh):rnd
872 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vavg_VuhVuh_rnd(HVX_Vector Vu, HVX_Vector Vv)
873 Instruction Type: CVI_VA
874 Execution Slots: SLOT0123
875 ========================================================================== */
877 #define Q6_Vuh_vavg_VuhVuh_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguhrnd)(Vu,Vv)
878 #endif /* __HEXAGON_ARCH___ >= 60 */
880 #if __HVX_ARCH__ >= 60
881 /* ==========================================================================
882 Assembly Syntax: Vd32.w=vavg(Vu32.w,Vv32.w)
883 C Intrinsic Prototype: HVX_Vector Q6_Vw_vavg_VwVw(HVX_Vector Vu, HVX_Vector Vv)
884 Instruction Type: CVI_VA
885 Execution Slots: SLOT0123
886 ========================================================================== */
888 #define Q6_Vw_vavg_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgw)(Vu,Vv)
889 #endif /* __HEXAGON_ARCH___ >= 60 */
891 #if __HVX_ARCH__ >= 60
892 /* ==========================================================================
893 Assembly Syntax: Vd32.w=vavg(Vu32.w,Vv32.w):rnd
894 C Intrinsic Prototype: HVX_Vector Q6_Vw_vavg_VwVw_rnd(HVX_Vector Vu, HVX_Vector Vv)
895 Instruction Type: CVI_VA
896 Execution Slots: SLOT0123
897 ========================================================================== */
899 #define Q6_Vw_vavg_VwVw_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgwrnd)(Vu,Vv)
900 #endif /* __HEXAGON_ARCH___ >= 60 */
902 #if __HVX_ARCH__ >= 60
903 /* ==========================================================================
904 Assembly Syntax: Vd32.uh=vcl0(Vu32.uh)
905 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vcl0_Vuh(HVX_Vector Vu)
906 Instruction Type: CVI_VS
907 Execution Slots: SLOT0123
908 ========================================================================== */
910 #define Q6_Vuh_vcl0_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcl0h)(Vu)
911 #endif /* __HEXAGON_ARCH___ >= 60 */
913 #if __HVX_ARCH__ >= 60
914 /* ==========================================================================
915 Assembly Syntax: Vd32.uw=vcl0(Vu32.uw)
916 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vcl0_Vuw(HVX_Vector Vu)
917 Instruction Type: CVI_VS
918 Execution Slots: SLOT0123
919 ========================================================================== */
921 #define Q6_Vuw_vcl0_Vuw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcl0w)(Vu)
922 #endif /* __HEXAGON_ARCH___ >= 60 */
924 #if __HVX_ARCH__ >= 60
925 /* ==========================================================================
926 Assembly Syntax: Vdd32=vcombine(Vu32,Vv32)
927 C Intrinsic Prototype: HVX_VectorPair Q6_W_vcombine_VV(HVX_Vector Vu, HVX_Vector Vv)
928 Instruction Type: CVI_VA_DV
929 Execution Slots: SLOT0123
930 ========================================================================== */
932 #define Q6_W_vcombine_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcombine)(Vu,Vv)
933 #endif /* __HEXAGON_ARCH___ >= 60 */
935 #if __HVX_ARCH__ >= 60
936 /* ==========================================================================
937 Assembly Syntax: Vd32=#0
938 C Intrinsic Prototype: HVX_Vector Q6_V_vzero()
939 Instruction Type: CVI_VA
940 Execution Slots: SLOT0123
941 ========================================================================== */
943 #define Q6_V_vzero() __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vd0)()
944 #endif /* __HEXAGON_ARCH___ >= 60 */
946 #if __HVX_ARCH__ >= 60
947 /* ==========================================================================
948 Assembly Syntax: Vd32.b=vdeal(Vu32.b)
949 C Intrinsic Prototype: HVX_Vector Q6_Vb_vdeal_Vb(HVX_Vector Vu)
950 Instruction Type: CVI_VP
951 Execution Slots: SLOT0123
952 ========================================================================== */
954 #define Q6_Vb_vdeal_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealb)(Vu)
955 #endif /* __HEXAGON_ARCH___ >= 60 */
957 #if __HVX_ARCH__ >= 60
958 /* ==========================================================================
959 Assembly Syntax: Vd32.b=vdeale(Vu32.b,Vv32.b)
960 C Intrinsic Prototype: HVX_Vector Q6_Vb_vdeale_VbVb(HVX_Vector Vu, HVX_Vector Vv)
961 Instruction Type: CVI_VP
962 Execution Slots: SLOT0123
963 ========================================================================== */
965 #define Q6_Vb_vdeale_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealb4w)(Vu,Vv)
966 #endif /* __HEXAGON_ARCH___ >= 60 */
968 #if __HVX_ARCH__ >= 60
969 /* ==========================================================================
970 Assembly Syntax: Vd32.h=vdeal(Vu32.h)
971 C Intrinsic Prototype: HVX_Vector Q6_Vh_vdeal_Vh(HVX_Vector Vu)
972 Instruction Type: CVI_VP
973 Execution Slots: SLOT0123
974 ========================================================================== */
976 #define Q6_Vh_vdeal_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealh)(Vu)
977 #endif /* __HEXAGON_ARCH___ >= 60 */
979 #if __HVX_ARCH__ >= 60
980 /* ==========================================================================
981 Assembly Syntax: Vdd32=vdeal(Vu32,Vv32,Rt8)
982 C Intrinsic Prototype: HVX_VectorPair Q6_W_vdeal_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
983 Instruction Type: CVI_VP_VS
984 Execution Slots: SLOT0123
985 ========================================================================== */
987 #define Q6_W_vdeal_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealvdd)(Vu,Vv,Rt)
988 #endif /* __HEXAGON_ARCH___ >= 60 */
990 #if __HVX_ARCH__ >= 60
991 /* ==========================================================================
992 Assembly Syntax: Vd32=vdelta(Vu32,Vv32)
993 C Intrinsic Prototype: HVX_Vector Q6_V_vdelta_VV(HVX_Vector Vu, HVX_Vector Vv)
994 Instruction Type: CVI_VP
995 Execution Slots: SLOT0123
996 ========================================================================== */
998 #define Q6_V_vdelta_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdelta)(Vu,Vv)
999 #endif /* __HEXAGON_ARCH___ >= 60 */
1001 #if __HVX_ARCH__ >= 60
1002 /* ==========================================================================
1003 Assembly Syntax: Vd32.h=vdmpy(Vu32.ub,Rt32.b)
1004 C Intrinsic Prototype: HVX_Vector Q6_Vh_vdmpy_VubRb(HVX_Vector Vu, Word32 Rt)
1005 Instruction Type: CVI_VX
1006 Execution Slots: SLOT23
1007 ========================================================================== */
1009 #define Q6_Vh_vdmpy_VubRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus)(Vu,Rt)
1010 #endif /* __HEXAGON_ARCH___ >= 60 */
1012 #if __HVX_ARCH__ >= 60
1013 /* ==========================================================================
1014 Assembly Syntax: Vx32.h+=vdmpy(Vu32.ub,Rt32.b)
1015 C Intrinsic Prototype: HVX_Vector Q6_Vh_vdmpyacc_VhVubRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1016 Instruction Type: CVI_VX
1017 Execution Slots: SLOT23
1018 ========================================================================== */
1020 #define Q6_Vh_vdmpyacc_VhVubRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_acc)(Vx,Vu,Rt)
1021 #endif /* __HEXAGON_ARCH___ >= 60 */
1023 #if __HVX_ARCH__ >= 60
1024 /* ==========================================================================
1025 Assembly Syntax: Vdd32.h=vdmpy(Vuu32.ub,Rt32.b)
1026 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vdmpy_WubRb(HVX_VectorPair Vuu, Word32 Rt)
1027 Instruction Type: CVI_VX_DV
1028 Execution Slots: SLOT23
1029 ========================================================================== */
1031 #define Q6_Wh_vdmpy_WubRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_dv)(Vuu,Rt)
1032 #endif /* __HEXAGON_ARCH___ >= 60 */
1034 #if __HVX_ARCH__ >= 60
1035 /* ==========================================================================
1036 Assembly Syntax: Vxx32.h+=vdmpy(Vuu32.ub,Rt32.b)
1037 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vdmpyacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1038 Instruction Type: CVI_VX_DV
1039 Execution Slots: SLOT23
1040 ========================================================================== */
1042 #define Q6_Wh_vdmpyacc_WhWubRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_dv_acc)(Vxx,Vuu,Rt)
1043 #endif /* __HEXAGON_ARCH___ >= 60 */
1045 #if __HVX_ARCH__ >= 60
1046 /* ==========================================================================
1047 Assembly Syntax: Vd32.w=vdmpy(Vu32.h,Rt32.b)
1048 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRb(HVX_Vector Vu, Word32 Rt)
1049 Instruction Type: CVI_VX
1050 Execution Slots: SLOT23
1051 ========================================================================== */
1053 #define Q6_Vw_vdmpy_VhRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb)(Vu,Rt)
1054 #endif /* __HEXAGON_ARCH___ >= 60 */
1056 #if __HVX_ARCH__ >= 60
1057 /* ==========================================================================
1058 Assembly Syntax: Vx32.w+=vdmpy(Vu32.h,Rt32.b)
1059 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1060 Instruction Type: CVI_VX
1061 Execution Slots: SLOT23
1062 ========================================================================== */
1064 #define Q6_Vw_vdmpyacc_VwVhRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_acc)(Vx,Vu,Rt)
1065 #endif /* __HEXAGON_ARCH___ >= 60 */
1067 #if __HVX_ARCH__ >= 60
1068 /* ==========================================================================
1069 Assembly Syntax: Vdd32.w=vdmpy(Vuu32.h,Rt32.b)
1070 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vdmpy_WhRb(HVX_VectorPair Vuu, Word32 Rt)
1071 Instruction Type: CVI_VX_DV
1072 Execution Slots: SLOT23
1073 ========================================================================== */
1075 #define Q6_Ww_vdmpy_WhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_dv)(Vuu,Rt)
1076 #endif /* __HEXAGON_ARCH___ >= 60 */
1078 #if __HVX_ARCH__ >= 60
1079 /* ==========================================================================
1080 Assembly Syntax: Vxx32.w+=vdmpy(Vuu32.h,Rt32.b)
1081 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vdmpyacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1082 Instruction Type: CVI_VX_DV
1083 Execution Slots: SLOT23
1084 ========================================================================== */
1086 #define Q6_Ww_vdmpyacc_WwWhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_dv_acc)(Vxx,Vuu,Rt)
1087 #endif /* __HEXAGON_ARCH___ >= 60 */
1089 #if __HVX_ARCH__ >= 60
1090 /* ==========================================================================
1091 Assembly Syntax: Vd32.w=vdmpy(Vuu32.h,Rt32.h):sat
1092 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_WhRh_sat(HVX_VectorPair Vuu, Word32 Rt)
1093 Instruction Type: CVI_VX_DV
1094 Execution Slots: SLOT23
1095 ========================================================================== */
1097 #define Q6_Vw_vdmpy_WhRh_sat(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhisat)(Vuu,Rt)
1098 #endif /* __HEXAGON_ARCH___ >= 60 */
1100 #if __HVX_ARCH__ >= 60
1101 /* ==========================================================================
1102 Assembly Syntax: Vx32.w+=vdmpy(Vuu32.h,Rt32.h):sat
1103 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwWhRh_sat(HVX_Vector Vx, HVX_VectorPair Vuu, Word32 Rt)
1104 Instruction Type: CVI_VX_DV
1105 Execution Slots: SLOT23
1106 ========================================================================== */
1108 #define Q6_Vw_vdmpyacc_VwWhRh_sat(Vx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhisat_acc)(Vx,Vuu,Rt)
1109 #endif /* __HEXAGON_ARCH___ >= 60 */
1111 #if __HVX_ARCH__ >= 60
1112 /* ==========================================================================
1113 Assembly Syntax: Vd32.w=vdmpy(Vu32.h,Rt32.h):sat
1114 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRh_sat(HVX_Vector Vu, Word32 Rt)
1115 Instruction Type: CVI_VX
1116 Execution Slots: SLOT23
1117 ========================================================================== */
1119 #define Q6_Vw_vdmpy_VhRh_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsat)(Vu,Rt)
1120 #endif /* __HEXAGON_ARCH___ >= 60 */
1122 #if __HVX_ARCH__ >= 60
1123 /* ==========================================================================
1124 Assembly Syntax: Vx32.w+=vdmpy(Vu32.h,Rt32.h):sat
1125 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRh_sat(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1126 Instruction Type: CVI_VX
1127 Execution Slots: SLOT23
1128 ========================================================================== */
1130 #define Q6_Vw_vdmpyacc_VwVhRh_sat(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsat_acc)(Vx,Vu,Rt)
1131 #endif /* __HEXAGON_ARCH___ >= 60 */
1133 #if __HVX_ARCH__ >= 60
1134 /* ==========================================================================
1135 Assembly Syntax: Vd32.w=vdmpy(Vuu32.h,Rt32.uh,#1):sat
1136 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_WhRuh_sat(HVX_VectorPair Vuu, Word32 Rt)
1137 Instruction Type: CVI_VX_DV
1138 Execution Slots: SLOT23
1139 ========================================================================== */
1141 #define Q6_Vw_vdmpy_WhRuh_sat(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsuisat)(Vuu,Rt)
1142 #endif /* __HEXAGON_ARCH___ >= 60 */
1144 #if __HVX_ARCH__ >= 60
1145 /* ==========================================================================
1146 Assembly Syntax: Vx32.w+=vdmpy(Vuu32.h,Rt32.uh,#1):sat
1147 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwWhRuh_sat(HVX_Vector Vx, HVX_VectorPair Vuu, Word32 Rt)
1148 Instruction Type: CVI_VX_DV
1149 Execution Slots: SLOT23
1150 ========================================================================== */
1152 #define Q6_Vw_vdmpyacc_VwWhRuh_sat(Vx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsuisat_acc)(Vx,Vuu,Rt)
1153 #endif /* __HEXAGON_ARCH___ >= 60 */
1155 #if __HVX_ARCH__ >= 60
1156 /* ==========================================================================
1157 Assembly Syntax: Vd32.w=vdmpy(Vu32.h,Rt32.uh):sat
1158 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRuh_sat(HVX_Vector Vu, Word32 Rt)
1159 Instruction Type: CVI_VX
1160 Execution Slots: SLOT23
1161 ========================================================================== */
1163 #define Q6_Vw_vdmpy_VhRuh_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsusat)(Vu,Rt)
1164 #endif /* __HEXAGON_ARCH___ >= 60 */
1166 #if __HVX_ARCH__ >= 60
1167 /* ==========================================================================
1168 Assembly Syntax: Vx32.w+=vdmpy(Vu32.h,Rt32.uh):sat
1169 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1170 Instruction Type: CVI_VX
1171 Execution Slots: SLOT23
1172 ========================================================================== */
1174 #define Q6_Vw_vdmpyacc_VwVhRuh_sat(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsusat_acc)(Vx,Vu,Rt)
1175 #endif /* __HEXAGON_ARCH___ >= 60 */
1177 #if __HVX_ARCH__ >= 60
1178 /* ==========================================================================
1179 Assembly Syntax: Vd32.w=vdmpy(Vu32.h,Vv32.h):sat
1180 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
1181 Instruction Type: CVI_VX
1182 Execution Slots: SLOT23
1183 ========================================================================== */
1185 #define Q6_Vw_vdmpy_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhvsat)(Vu,Vv)
1186 #endif /* __HEXAGON_ARCH___ >= 60 */
1188 #if __HVX_ARCH__ >= 60
1189 /* ==========================================================================
1190 Assembly Syntax: Vx32.w+=vdmpy(Vu32.h,Vv32.h):sat
1191 C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhVh_sat(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
1192 Instruction Type: CVI_VX_DV
1193 Execution Slots: SLOT23
1194 ========================================================================== */
1196 #define Q6_Vw_vdmpyacc_VwVhVh_sat(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhvsat_acc)(Vx,Vu,Vv)
1197 #endif /* __HEXAGON_ARCH___ >= 60 */
1199 #if __HVX_ARCH__ >= 60
1200 /* ==========================================================================
1201 Assembly Syntax: Vdd32.uw=vdsad(Vuu32.uh,Rt32.uh)
1202 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vdsad_WuhRuh(HVX_VectorPair Vuu, Word32 Rt)
1203 Instruction Type: CVI_VX_DV
1204 Execution Slots: SLOT23
1205 ========================================================================== */
1207 #define Q6_Wuw_vdsad_WuhRuh(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdsaduh)(Vuu,Rt)
1208 #endif /* __HEXAGON_ARCH___ >= 60 */
1210 #if __HVX_ARCH__ >= 60
1211 /* ==========================================================================
1212 Assembly Syntax: Vxx32.uw+=vdsad(Vuu32.uh,Rt32.uh)
1213 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vdsadacc_WuwWuhRuh(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1214 Instruction Type: CVI_VX_DV
1215 Execution Slots: SLOT23
1216 ========================================================================== */
1218 #define Q6_Wuw_vdsadacc_WuwWuhRuh(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdsaduh_acc)(Vxx,Vuu,Rt)
1219 #endif /* __HEXAGON_ARCH___ >= 60 */
1221 #if __HVX_ARCH__ >= 60
1222 /* ==========================================================================
1223 Assembly Syntax: Qd4=vcmp.eq(Vu32.b,Vv32.b)
1224 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1225 Instruction Type: CVI_VA
1226 Execution Slots: SLOT0123
1227 ========================================================================== */
1229 #define Q6_Q_vcmp_eq_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb)(Vu,Vv)),-1)
1230 #endif /* __HEXAGON_ARCH___ >= 60 */
1232 #if __HVX_ARCH__ >= 60
1233 /* ==========================================================================
1234 Assembly Syntax: Qx4&=vcmp.eq(Vu32.b,Vv32.b)
1235 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1236 Instruction Type: CVI_VA
1237 Execution Slots: SLOT0123
1238 ========================================================================== */
1240 #define Q6_Q_vcmp_eqand_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1241 #endif /* __HEXAGON_ARCH___ >= 60 */
1243 #if __HVX_ARCH__ >= 60
1244 /* ==========================================================================
1245 Assembly Syntax: Qx4|=vcmp.eq(Vu32.b,Vv32.b)
1246 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1247 Instruction Type: CVI_VA
1248 Execution Slots: SLOT0123
1249 ========================================================================== */
1251 #define Q6_Q_vcmp_eqor_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1252 #endif /* __HEXAGON_ARCH___ >= 60 */
1254 #if __HVX_ARCH__ >= 60
1255 /* ==========================================================================
1256 Assembly Syntax: Qx4^=vcmp.eq(Vu32.b,Vv32.b)
1257 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1258 Instruction Type: CVI_VA
1259 Execution Slots: SLOT0123
1260 ========================================================================== */
1262 #define Q6_Q_vcmp_eqxacc_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1263 #endif /* __HEXAGON_ARCH___ >= 60 */
1265 #if __HVX_ARCH__ >= 60
1266 /* ==========================================================================
1267 Assembly Syntax: Qd4=vcmp.eq(Vu32.h,Vv32.h)
1268 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1269 Instruction Type: CVI_VA
1270 Execution Slots: SLOT0123
1271 ========================================================================== */
1273 #define Q6_Q_vcmp_eq_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh)(Vu,Vv)),-1)
1274 #endif /* __HEXAGON_ARCH___ >= 60 */
1276 #if __HVX_ARCH__ >= 60
1277 /* ==========================================================================
1278 Assembly Syntax: Qx4&=vcmp.eq(Vu32.h,Vv32.h)
1279 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1280 Instruction Type: CVI_VA
1281 Execution Slots: SLOT0123
1282 ========================================================================== */
1284 #define Q6_Q_vcmp_eqand_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1285 #endif /* __HEXAGON_ARCH___ >= 60 */
1287 #if __HVX_ARCH__ >= 60
1288 /* ==========================================================================
1289 Assembly Syntax: Qx4|=vcmp.eq(Vu32.h,Vv32.h)
1290 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1291 Instruction Type: CVI_VA
1292 Execution Slots: SLOT0123
1293 ========================================================================== */
1295 #define Q6_Q_vcmp_eqor_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1296 #endif /* __HEXAGON_ARCH___ >= 60 */
1298 #if __HVX_ARCH__ >= 60
1299 /* ==========================================================================
1300 Assembly Syntax: Qx4^=vcmp.eq(Vu32.h,Vv32.h)
1301 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1302 Instruction Type: CVI_VA
1303 Execution Slots: SLOT0123
1304 ========================================================================== */
1306 #define Q6_Q_vcmp_eqxacc_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1307 #endif /* __HEXAGON_ARCH___ >= 60 */
1309 #if __HVX_ARCH__ >= 60
1310 /* ==========================================================================
1311 Assembly Syntax: Qd4=vcmp.eq(Vu32.w,Vv32.w)
1312 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1313 Instruction Type: CVI_VA
1314 Execution Slots: SLOT0123
1315 ========================================================================== */
1317 #define Q6_Q_vcmp_eq_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw)(Vu,Vv)),-1)
1318 #endif /* __HEXAGON_ARCH___ >= 60 */
1320 #if __HVX_ARCH__ >= 60
1321 /* ==========================================================================
1322 Assembly Syntax: Qx4&=vcmp.eq(Vu32.w,Vv32.w)
1323 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1324 Instruction Type: CVI_VA
1325 Execution Slots: SLOT0123
1326 ========================================================================== */
1328 #define Q6_Q_vcmp_eqand_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1329 #endif /* __HEXAGON_ARCH___ >= 60 */
1331 #if __HVX_ARCH__ >= 60
1332 /* ==========================================================================
1333 Assembly Syntax: Qx4|=vcmp.eq(Vu32.w,Vv32.w)
1334 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1335 Instruction Type: CVI_VA
1336 Execution Slots: SLOT0123
1337 ========================================================================== */
1339 #define Q6_Q_vcmp_eqor_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1340 #endif /* __HEXAGON_ARCH___ >= 60 */
1342 #if __HVX_ARCH__ >= 60
1343 /* ==========================================================================
1344 Assembly Syntax: Qx4^=vcmp.eq(Vu32.w,Vv32.w)
1345 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1346 Instruction Type: CVI_VA
1347 Execution Slots: SLOT0123
1348 ========================================================================== */
1350 #define Q6_Q_vcmp_eqxacc_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1351 #endif /* __HEXAGON_ARCH___ >= 60 */
1353 #if __HVX_ARCH__ >= 60
1354 /* ==========================================================================
1355 Assembly Syntax: Qd4=vcmp.gt(Vu32.b,Vv32.b)
1356 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1357 Instruction Type: CVI_VA
1358 Execution Slots: SLOT0123
1359 ========================================================================== */
1361 #define Q6_Q_vcmp_gt_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb)(Vu,Vv)),-1)
1362 #endif /* __HEXAGON_ARCH___ >= 60 */
1364 #if __HVX_ARCH__ >= 60
1365 /* ==========================================================================
1366 Assembly Syntax: Qx4&=vcmp.gt(Vu32.b,Vv32.b)
1367 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1368 Instruction Type: CVI_VA
1369 Execution Slots: SLOT0123
1370 ========================================================================== */
1372 #define Q6_Q_vcmp_gtand_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1373 #endif /* __HEXAGON_ARCH___ >= 60 */
1375 #if __HVX_ARCH__ >= 60
1376 /* ==========================================================================
1377 Assembly Syntax: Qx4|=vcmp.gt(Vu32.b,Vv32.b)
1378 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1379 Instruction Type: CVI_VA
1380 Execution Slots: SLOT0123
1381 ========================================================================== */
1383 #define Q6_Q_vcmp_gtor_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1384 #endif /* __HEXAGON_ARCH___ >= 60 */
1386 #if __HVX_ARCH__ >= 60
1387 /* ==========================================================================
1388 Assembly Syntax: Qx4^=vcmp.gt(Vu32.b,Vv32.b)
1389 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1390 Instruction Type: CVI_VA
1391 Execution Slots: SLOT0123
1392 ========================================================================== */
1394 #define Q6_Q_vcmp_gtxacc_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1395 #endif /* __HEXAGON_ARCH___ >= 60 */
1397 #if __HVX_ARCH__ >= 60
1398 /* ==========================================================================
1399 Assembly Syntax: Qd4=vcmp.gt(Vu32.h,Vv32.h)
1400 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1401 Instruction Type: CVI_VA
1402 Execution Slots: SLOT0123
1403 ========================================================================== */
1405 #define Q6_Q_vcmp_gt_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth)(Vu,Vv)),-1)
1406 #endif /* __HEXAGON_ARCH___ >= 60 */
1408 #if __HVX_ARCH__ >= 60
1409 /* ==========================================================================
1410 Assembly Syntax: Qx4&=vcmp.gt(Vu32.h,Vv32.h)
1411 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1412 Instruction Type: CVI_VA
1413 Execution Slots: SLOT0123
1414 ========================================================================== */
1416 #define Q6_Q_vcmp_gtand_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1417 #endif /* __HEXAGON_ARCH___ >= 60 */
1419 #if __HVX_ARCH__ >= 60
1420 /* ==========================================================================
1421 Assembly Syntax: Qx4|=vcmp.gt(Vu32.h,Vv32.h)
1422 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1423 Instruction Type: CVI_VA
1424 Execution Slots: SLOT0123
1425 ========================================================================== */
1427 #define Q6_Q_vcmp_gtor_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1428 #endif /* __HEXAGON_ARCH___ >= 60 */
1430 #if __HVX_ARCH__ >= 60
1431 /* ==========================================================================
1432 Assembly Syntax: Qx4^=vcmp.gt(Vu32.h,Vv32.h)
1433 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1434 Instruction Type: CVI_VA
1435 Execution Slots: SLOT0123
1436 ========================================================================== */
1438 #define Q6_Q_vcmp_gtxacc_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1439 #endif /* __HEXAGON_ARCH___ >= 60 */
1441 #if __HVX_ARCH__ >= 60
1442 /* ==========================================================================
1443 Assembly Syntax: Qd4=vcmp.gt(Vu32.ub,Vv32.ub)
1444 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1445 Instruction Type: CVI_VA
1446 Execution Slots: SLOT0123
1447 ========================================================================== */
1449 #define Q6_Q_vcmp_gt_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub)(Vu,Vv)),-1)
1450 #endif /* __HEXAGON_ARCH___ >= 60 */
1452 #if __HVX_ARCH__ >= 60
1453 /* ==========================================================================
1454 Assembly Syntax: Qx4&=vcmp.gt(Vu32.ub,Vv32.ub)
1455 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1456 Instruction Type: CVI_VA
1457 Execution Slots: SLOT0123
1458 ========================================================================== */
1460 #define Q6_Q_vcmp_gtand_QVubVub(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1461 #endif /* __HEXAGON_ARCH___ >= 60 */
1463 #if __HVX_ARCH__ >= 60
1464 /* ==========================================================================
1465 Assembly Syntax: Qx4|=vcmp.gt(Vu32.ub,Vv32.ub)
1466 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1467 Instruction Type: CVI_VA
1468 Execution Slots: SLOT0123
1469 ========================================================================== */
1471 #define Q6_Q_vcmp_gtor_QVubVub(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1472 #endif /* __HEXAGON_ARCH___ >= 60 */
1474 #if __HVX_ARCH__ >= 60
1475 /* ==========================================================================
1476 Assembly Syntax: Qx4^=vcmp.gt(Vu32.ub,Vv32.ub)
1477 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1478 Instruction Type: CVI_VA
1479 Execution Slots: SLOT0123
1480 ========================================================================== */
1482 #define Q6_Q_vcmp_gtxacc_QVubVub(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1483 #endif /* __HEXAGON_ARCH___ >= 60 */
1485 #if __HVX_ARCH__ >= 60
1486 /* ==========================================================================
1487 Assembly Syntax: Qd4=vcmp.gt(Vu32.uh,Vv32.uh)
1488 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1489 Instruction Type: CVI_VA
1490 Execution Slots: SLOT0123
1491 ========================================================================== */
1493 #define Q6_Q_vcmp_gt_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh)(Vu,Vv)),-1)
1494 #endif /* __HEXAGON_ARCH___ >= 60 */
1496 #if __HVX_ARCH__ >= 60
1497 /* ==========================================================================
1498 Assembly Syntax: Qx4&=vcmp.gt(Vu32.uh,Vv32.uh)
1499 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1500 Instruction Type: CVI_VA
1501 Execution Slots: SLOT0123
1502 ========================================================================== */
1504 #define Q6_Q_vcmp_gtand_QVuhVuh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1505 #endif /* __HEXAGON_ARCH___ >= 60 */
1507 #if __HVX_ARCH__ >= 60
1508 /* ==========================================================================
1509 Assembly Syntax: Qx4|=vcmp.gt(Vu32.uh,Vv32.uh)
1510 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1511 Instruction Type: CVI_VA
1512 Execution Slots: SLOT0123
1513 ========================================================================== */
1515 #define Q6_Q_vcmp_gtor_QVuhVuh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1516 #endif /* __HEXAGON_ARCH___ >= 60 */
1518 #if __HVX_ARCH__ >= 60
1519 /* ==========================================================================
1520 Assembly Syntax: Qx4^=vcmp.gt(Vu32.uh,Vv32.uh)
1521 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1522 Instruction Type: CVI_VA
1523 Execution Slots: SLOT0123
1524 ========================================================================== */
1526 #define Q6_Q_vcmp_gtxacc_QVuhVuh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1527 #endif /* __HEXAGON_ARCH___ >= 60 */
1529 #if __HVX_ARCH__ >= 60
1530 /* ==========================================================================
1531 Assembly Syntax: Qd4=vcmp.gt(Vu32.uw,Vv32.uw)
1532 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
1533 Instruction Type: CVI_VA
1534 Execution Slots: SLOT0123
1535 ========================================================================== */
1537 #define Q6_Q_vcmp_gt_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw)(Vu,Vv)),-1)
1538 #endif /* __HEXAGON_ARCH___ >= 60 */
1540 #if __HVX_ARCH__ >= 60
1541 /* ==========================================================================
1542 Assembly Syntax: Qx4&=vcmp.gt(Vu32.uw,Vv32.uw)
1543 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1544 Instruction Type: CVI_VA
1545 Execution Slots: SLOT0123
1546 ========================================================================== */
1548 #define Q6_Q_vcmp_gtand_QVuwVuw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1549 #endif /* __HEXAGON_ARCH___ >= 60 */
1551 #if __HVX_ARCH__ >= 60
1552 /* ==========================================================================
1553 Assembly Syntax: Qx4|=vcmp.gt(Vu32.uw,Vv32.uw)
1554 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1555 Instruction Type: CVI_VA
1556 Execution Slots: SLOT0123
1557 ========================================================================== */
1559 #define Q6_Q_vcmp_gtor_QVuwVuw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1560 #endif /* __HEXAGON_ARCH___ >= 60 */
1562 #if __HVX_ARCH__ >= 60
1563 /* ==========================================================================
1564 Assembly Syntax: Qx4^=vcmp.gt(Vu32.uw,Vv32.uw)
1565 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1566 Instruction Type: CVI_VA
1567 Execution Slots: SLOT0123
1568 ========================================================================== */
1570 #define Q6_Q_vcmp_gtxacc_QVuwVuw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1571 #endif /* __HEXAGON_ARCH___ >= 60 */
1573 #if __HVX_ARCH__ >= 60
1574 /* ==========================================================================
1575 Assembly Syntax: Qd4=vcmp.gt(Vu32.w,Vv32.w)
1576 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1577 Instruction Type: CVI_VA
1578 Execution Slots: SLOT0123
1579 ========================================================================== */
1581 #define Q6_Q_vcmp_gt_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw)(Vu,Vv)),-1)
1582 #endif /* __HEXAGON_ARCH___ >= 60 */
1584 #if __HVX_ARCH__ >= 60
1585 /* ==========================================================================
1586 Assembly Syntax: Qx4&=vcmp.gt(Vu32.w,Vv32.w)
1587 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1588 Instruction Type: CVI_VA
1589 Execution Slots: SLOT0123
1590 ========================================================================== */
1592 #define Q6_Q_vcmp_gtand_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1593 #endif /* __HEXAGON_ARCH___ >= 60 */
1595 #if __HVX_ARCH__ >= 60
1596 /* ==========================================================================
1597 Assembly Syntax: Qx4|=vcmp.gt(Vu32.w,Vv32.w)
1598 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1599 Instruction Type: CVI_VA
1600 Execution Slots: SLOT0123
1601 ========================================================================== */
1603 #define Q6_Q_vcmp_gtor_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1604 #endif /* __HEXAGON_ARCH___ >= 60 */
1606 #if __HVX_ARCH__ >= 60
1607 /* ==========================================================================
1608 Assembly Syntax: Qx4^=vcmp.gt(Vu32.w,Vv32.w)
1609 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1610 Instruction Type: CVI_VA
1611 Execution Slots: SLOT0123
1612 ========================================================================== */
1614 #define Q6_Q_vcmp_gtxacc_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1615 #endif /* __HEXAGON_ARCH___ >= 60 */
1617 #if __HVX_ARCH__ >= 60
1618 /* ==========================================================================
1619 Assembly Syntax: Vx32.w=vinsert(Rt32)
1620 C Intrinsic Prototype: HVX_Vector Q6_Vw_vinsert_VwR(HVX_Vector Vx, Word32 Rt)
1621 Instruction Type: CVI_VX_LATE
1622 Execution Slots: SLOT23
1623 ========================================================================== */
1625 #define Q6_Vw_vinsert_VwR(Vx,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vinsertwr)(Vx,Rt)
1626 #endif /* __HEXAGON_ARCH___ >= 60 */
1628 #if __HVX_ARCH__ >= 60
1629 /* ==========================================================================
1630 Assembly Syntax: Vd32=vlalign(Vu32,Vv32,Rt8)
1631 C Intrinsic Prototype: HVX_Vector Q6_V_vlalign_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1632 Instruction Type: CVI_VP
1633 Execution Slots: SLOT0123
1634 ========================================================================== */
1636 #define Q6_V_vlalign_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlalignb)(Vu,Vv,Rt)
1637 #endif /* __HEXAGON_ARCH___ >= 60 */
1639 #if __HVX_ARCH__ >= 60
1640 /* ==========================================================================
1641 Assembly Syntax: Vd32=vlalign(Vu32,Vv32,#u3)
1642 C Intrinsic Prototype: HVX_Vector Q6_V_vlalign_VVI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
1643 Instruction Type: CVI_VP
1644 Execution Slots: SLOT0123
1645 ========================================================================== */
1647 #define Q6_V_vlalign_VVI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlalignbi)(Vu,Vv,Iu3)
1648 #endif /* __HEXAGON_ARCH___ >= 60 */
1650 #if __HVX_ARCH__ >= 60
1651 /* ==========================================================================
1652 Assembly Syntax: Vd32.uh=vlsr(Vu32.uh,Rt32)
1653 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vlsr_VuhR(HVX_Vector Vu, Word32 Rt)
1654 Instruction Type: CVI_VS
1655 Execution Slots: SLOT0123
1656 ========================================================================== */
1658 #define Q6_Vuh_vlsr_VuhR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrh)(Vu,Rt)
1659 #endif /* __HEXAGON_ARCH___ >= 60 */
1661 #if __HVX_ARCH__ >= 60
1662 /* ==========================================================================
1663 Assembly Syntax: Vd32.h=vlsr(Vu32.h,Vv32.h)
1664 C Intrinsic Prototype: HVX_Vector Q6_Vh_vlsr_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1665 Instruction Type: CVI_VS
1666 Execution Slots: SLOT0123
1667 ========================================================================== */
1669 #define Q6_Vh_vlsr_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrhv)(Vu,Vv)
1670 #endif /* __HEXAGON_ARCH___ >= 60 */
1672 #if __HVX_ARCH__ >= 60
1673 /* ==========================================================================
1674 Assembly Syntax: Vd32.uw=vlsr(Vu32.uw,Rt32)
1675 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vlsr_VuwR(HVX_Vector Vu, Word32 Rt)
1676 Instruction Type: CVI_VS
1677 Execution Slots: SLOT0123
1678 ========================================================================== */
1680 #define Q6_Vuw_vlsr_VuwR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrw)(Vu,Rt)
1681 #endif /* __HEXAGON_ARCH___ >= 60 */
1683 #if __HVX_ARCH__ >= 60
1684 /* ==========================================================================
1685 Assembly Syntax: Vd32.w=vlsr(Vu32.w,Vv32.w)
1686 C Intrinsic Prototype: HVX_Vector Q6_Vw_vlsr_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1687 Instruction Type: CVI_VS
1688 Execution Slots: SLOT0123
1689 ========================================================================== */
1691 #define Q6_Vw_vlsr_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrwv)(Vu,Vv)
1692 #endif /* __HEXAGON_ARCH___ >= 60 */
1694 #if __HVX_ARCH__ >= 60
1695 /* ==========================================================================
1696 Assembly Syntax: Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8)
1697 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1698 Instruction Type: CVI_VP
1699 Execution Slots: SLOT0123
1700 ========================================================================== */
1702 #define Q6_Vb_vlut32_VbVbR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb)(Vu,Vv,Rt)
1703 #endif /* __HEXAGON_ARCH___ >= 60 */
1705 #if __HVX_ARCH__ >= 60
1706 /* ==========================================================================
1707 Assembly Syntax: Vx32.b|=vlut32(Vu32.b,Vv32.b,Rt8)
1708 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32or_VbVbVbR(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1709 Instruction Type: CVI_VP_VS
1710 Execution Slots: SLOT0123
1711 ========================================================================== */
1713 #define Q6_Vb_vlut32or_VbVbVbR(Vx,Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_oracc)(Vx,Vu,Vv,Rt)
1714 #endif /* __HEXAGON_ARCH___ >= 60 */
1716 #if __HVX_ARCH__ >= 60
1717 /* ==========================================================================
1718 Assembly Syntax: Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8)
1719 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1720 Instruction Type: CVI_VP_VS
1721 Execution Slots: SLOT0123
1722 ========================================================================== */
1724 #define Q6_Wh_vlut16_VbVhR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh)(Vu,Vv,Rt)
1725 #endif /* __HEXAGON_ARCH___ >= 60 */
1727 #if __HVX_ARCH__ >= 60
1728 /* ==========================================================================
1729 Assembly Syntax: Vxx32.h|=vlut16(Vu32.b,Vv32.h,Rt8)
1730 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16or_WhVbVhR(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1731 Instruction Type: CVI_VP_VS
1732 Execution Slots: SLOT0123
1733 ========================================================================== */
1735 #define Q6_Wh_vlut16or_WhVbVhR(Vxx,Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_oracc)(Vxx,Vu,Vv,Rt)
1736 #endif /* __HEXAGON_ARCH___ >= 60 */
1738 #if __HVX_ARCH__ >= 60
1739 /* ==========================================================================
1740 Assembly Syntax: Vd32.h=vmax(Vu32.h,Vv32.h)
1741 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmax_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1742 Instruction Type: CVI_VA
1743 Execution Slots: SLOT0123
1744 ========================================================================== */
1746 #define Q6_Vh_vmax_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxh)(Vu,Vv)
1747 #endif /* __HEXAGON_ARCH___ >= 60 */
1749 #if __HVX_ARCH__ >= 60
1750 /* ==========================================================================
1751 Assembly Syntax: Vd32.ub=vmax(Vu32.ub,Vv32.ub)
1752 C Intrinsic Prototype: HVX_Vector Q6_Vub_vmax_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1753 Instruction Type: CVI_VA
1754 Execution Slots: SLOT0123
1755 ========================================================================== */
1757 #define Q6_Vub_vmax_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxub)(Vu,Vv)
1758 #endif /* __HEXAGON_ARCH___ >= 60 */
1760 #if __HVX_ARCH__ >= 60
1761 /* ==========================================================================
1762 Assembly Syntax: Vd32.uh=vmax(Vu32.uh,Vv32.uh)
1763 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmax_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1764 Instruction Type: CVI_VA
1765 Execution Slots: SLOT0123
1766 ========================================================================== */
1768 #define Q6_Vuh_vmax_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxuh)(Vu,Vv)
1769 #endif /* __HEXAGON_ARCH___ >= 60 */
1771 #if __HVX_ARCH__ >= 60
1772 /* ==========================================================================
1773 Assembly Syntax: Vd32.w=vmax(Vu32.w,Vv32.w)
1774 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmax_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1775 Instruction Type: CVI_VA
1776 Execution Slots: SLOT0123
1777 ========================================================================== */
1779 #define Q6_Vw_vmax_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxw)(Vu,Vv)
1780 #endif /* __HEXAGON_ARCH___ >= 60 */
1782 #if __HVX_ARCH__ >= 60
1783 /* ==========================================================================
1784 Assembly Syntax: Vd32.h=vmin(Vu32.h,Vv32.h)
1785 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmin_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1786 Instruction Type: CVI_VA
1787 Execution Slots: SLOT0123
1788 ========================================================================== */
1790 #define Q6_Vh_vmin_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminh)(Vu,Vv)
1791 #endif /* __HEXAGON_ARCH___ >= 60 */
1793 #if __HVX_ARCH__ >= 60
1794 /* ==========================================================================
1795 Assembly Syntax: Vd32.ub=vmin(Vu32.ub,Vv32.ub)
1796 C Intrinsic Prototype: HVX_Vector Q6_Vub_vmin_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1797 Instruction Type: CVI_VA
1798 Execution Slots: SLOT0123
1799 ========================================================================== */
1801 #define Q6_Vub_vmin_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminub)(Vu,Vv)
1802 #endif /* __HEXAGON_ARCH___ >= 60 */
1804 #if __HVX_ARCH__ >= 60
1805 /* ==========================================================================
1806 Assembly Syntax: Vd32.uh=vmin(Vu32.uh,Vv32.uh)
1807 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmin_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1808 Instruction Type: CVI_VA
1809 Execution Slots: SLOT0123
1810 ========================================================================== */
1812 #define Q6_Vuh_vmin_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminuh)(Vu,Vv)
1813 #endif /* __HEXAGON_ARCH___ >= 60 */
1815 #if __HVX_ARCH__ >= 60
1816 /* ==========================================================================
1817 Assembly Syntax: Vd32.w=vmin(Vu32.w,Vv32.w)
1818 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmin_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1819 Instruction Type: CVI_VA
1820 Execution Slots: SLOT0123
1821 ========================================================================== */
1823 #define Q6_Vw_vmin_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminw)(Vu,Vv)
1824 #endif /* __HEXAGON_ARCH___ >= 60 */
1826 #if __HVX_ARCH__ >= 60
1827 /* ==========================================================================
1828 Assembly Syntax: Vdd32.h=vmpa(Vuu32.ub,Rt32.b)
1829 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubRb(HVX_VectorPair Vuu, Word32 Rt)
1830 Instruction Type: CVI_VX_DV
1831 Execution Slots: SLOT23
1832 ========================================================================== */
1834 #define Q6_Wh_vmpa_WubRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabus)(Vuu,Rt)
1835 #endif /* __HEXAGON_ARCH___ >= 60 */
1837 #if __HVX_ARCH__ >= 60
1838 /* ==========================================================================
1839 Assembly Syntax: Vxx32.h+=vmpa(Vuu32.ub,Rt32.b)
1840 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpaacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1841 Instruction Type: CVI_VX_DV
1842 Execution Slots: SLOT23
1843 ========================================================================== */
1845 #define Q6_Wh_vmpaacc_WhWubRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabus_acc)(Vxx,Vuu,Rt)
1846 #endif /* __HEXAGON_ARCH___ >= 60 */
1848 #if __HVX_ARCH__ >= 60
1849 /* ==========================================================================
1850 Assembly Syntax: Vdd32.h=vmpa(Vuu32.ub,Vvv32.b)
1851 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
1852 Instruction Type: CVI_VX_DV
1853 Execution Slots: SLOT23
1854 ========================================================================== */
1856 #define Q6_Wh_vmpa_WubWb(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabusv)(Vuu,Vvv)
1857 #endif /* __HEXAGON_ARCH___ >= 60 */
1859 #if __HVX_ARCH__ >= 60
1860 /* ==========================================================================
1861 Assembly Syntax: Vdd32.h=vmpa(Vuu32.ub,Vvv32.ub)
1862 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubWub(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
1863 Instruction Type: CVI_VX_DV
1864 Execution Slots: SLOT23
1865 ========================================================================== */
1867 #define Q6_Wh_vmpa_WubWub(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuuv)(Vuu,Vvv)
1868 #endif /* __HEXAGON_ARCH___ >= 60 */
1870 #if __HVX_ARCH__ >= 60
1871 /* ==========================================================================
1872 Assembly Syntax: Vdd32.w=vmpa(Vuu32.h,Rt32.b)
1873 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpa_WhRb(HVX_VectorPair Vuu, Word32 Rt)
1874 Instruction Type: CVI_VX_DV
1875 Execution Slots: SLOT23
1876 ========================================================================== */
1878 #define Q6_Ww_vmpa_WhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahb)(Vuu,Rt)
1879 #endif /* __HEXAGON_ARCH___ >= 60 */
1881 #if __HVX_ARCH__ >= 60
1882 /* ==========================================================================
1883 Assembly Syntax: Vxx32.w+=vmpa(Vuu32.h,Rt32.b)
1884 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpaacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1885 Instruction Type: CVI_VX_DV
1886 Execution Slots: SLOT23
1887 ========================================================================== */
1889 #define Q6_Ww_vmpaacc_WwWhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahb_acc)(Vxx,Vuu,Rt)
1890 #endif /* __HEXAGON_ARCH___ >= 60 */
1892 #if __HVX_ARCH__ >= 60
1893 /* ==========================================================================
1894 Assembly Syntax: Vdd32.h=vmpy(Vu32.ub,Rt32.b)
1895 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VubRb(HVX_Vector Vu, Word32 Rt)
1896 Instruction Type: CVI_VX_DV
1897 Execution Slots: SLOT23
1898 ========================================================================== */
1900 #define Q6_Wh_vmpy_VubRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybus)(Vu,Rt)
1901 #endif /* __HEXAGON_ARCH___ >= 60 */
1903 #if __HVX_ARCH__ >= 60
1904 /* ==========================================================================
1905 Assembly Syntax: Vxx32.h+=vmpy(Vu32.ub,Rt32.b)
1906 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVubRb(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
1907 Instruction Type: CVI_VX_DV
1908 Execution Slots: SLOT23
1909 ========================================================================== */
1911 #define Q6_Wh_vmpyacc_WhVubRb(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybus_acc)(Vxx,Vu,Rt)
1912 #endif /* __HEXAGON_ARCH___ >= 60 */
1914 #if __HVX_ARCH__ >= 60
1915 /* ==========================================================================
1916 Assembly Syntax: Vdd32.h=vmpy(Vu32.ub,Vv32.b)
1917 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VubVb(HVX_Vector Vu, HVX_Vector Vv)
1918 Instruction Type: CVI_VX_DV
1919 Execution Slots: SLOT23
1920 ========================================================================== */
1922 #define Q6_Wh_vmpy_VubVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybusv)(Vu,Vv)
1923 #endif /* __HEXAGON_ARCH___ >= 60 */
1925 #if __HVX_ARCH__ >= 60
1926 /* ==========================================================================
1927 Assembly Syntax: Vxx32.h+=vmpy(Vu32.ub,Vv32.b)
1928 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVubVb(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
1929 Instruction Type: CVI_VX_DV
1930 Execution Slots: SLOT23
1931 ========================================================================== */
1933 #define Q6_Wh_vmpyacc_WhVubVb(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybusv_acc)(Vxx,Vu,Vv)
1934 #endif /* __HEXAGON_ARCH___ >= 60 */
1936 #if __HVX_ARCH__ >= 60
1937 /* ==========================================================================
1938 Assembly Syntax: Vdd32.h=vmpy(Vu32.b,Vv32.b)
1939 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1940 Instruction Type: CVI_VX_DV
1941 Execution Slots: SLOT23
1942 ========================================================================== */
1944 #define Q6_Wh_vmpy_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybv)(Vu,Vv)
1945 #endif /* __HEXAGON_ARCH___ >= 60 */
1947 #if __HVX_ARCH__ >= 60
1948 /* ==========================================================================
1949 Assembly Syntax: Vxx32.h+=vmpy(Vu32.b,Vv32.b)
1950 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVbVb(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
1951 Instruction Type: CVI_VX_DV
1952 Execution Slots: SLOT23
1953 ========================================================================== */
1955 #define Q6_Wh_vmpyacc_WhVbVb(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybv_acc)(Vxx,Vu,Vv)
1956 #endif /* __HEXAGON_ARCH___ >= 60 */
1958 #if __HVX_ARCH__ >= 60
1959 /* ==========================================================================
1960 Assembly Syntax: Vd32.w=vmpye(Vu32.w,Vv32.uh)
1961 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpye_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
1962 Instruction Type: CVI_VX_DV
1963 Execution Slots: SLOT23
1964 ========================================================================== */
1966 #define Q6_Vw_vmpye_VwVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyewuh)(Vu,Vv)
1967 #endif /* __HEXAGON_ARCH___ >= 60 */
1969 #if __HVX_ARCH__ >= 60
1970 /* ==========================================================================
1971 Assembly Syntax: Vdd32.w=vmpy(Vu32.h,Rt32.h)
1972 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhRh(HVX_Vector Vu, Word32 Rt)
1973 Instruction Type: CVI_VX_DV
1974 Execution Slots: SLOT23
1975 ========================================================================== */
1977 #define Q6_Ww_vmpy_VhRh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyh)(Vu,Rt)
1978 #endif /* __HEXAGON_ARCH___ >= 60 */
1980 #if __HVX_ARCH__ >= 60
1981 /* ==========================================================================
1982 Assembly Syntax: Vxx32.w+=vmpy(Vu32.h,Rt32.h):sat
1983 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhRh_sat(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
1984 Instruction Type: CVI_VX_DV
1985 Execution Slots: SLOT23
1986 ========================================================================== */
1988 #define Q6_Ww_vmpyacc_WwVhRh_sat(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhsat_acc)(Vxx,Vu,Rt)
1989 #endif /* __HEXAGON_ARCH___ >= 60 */
1991 #if __HVX_ARCH__ >= 60
1992 /* ==========================================================================
1993 Assembly Syntax: Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:rnd:sat
1994 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhRh_s1_rnd_sat(HVX_Vector Vu, Word32 Rt)
1995 Instruction Type: CVI_VX
1996 Execution Slots: SLOT23
1997 ========================================================================== */
1999 #define Q6_Vh_vmpy_VhRh_s1_rnd_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhsrs)(Vu,Rt)
2000 #endif /* __HEXAGON_ARCH___ >= 60 */
2002 #if __HVX_ARCH__ >= 60
2003 /* ==========================================================================
2004 Assembly Syntax: Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:sat
2005 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhRh_s1_sat(HVX_Vector Vu, Word32 Rt)
2006 Instruction Type: CVI_VX
2007 Execution Slots: SLOT23
2008 ========================================================================== */
2010 #define Q6_Vh_vmpy_VhRh_s1_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhss)(Vu,Rt)
2011 #endif /* __HEXAGON_ARCH___ >= 60 */
2013 #if __HVX_ARCH__ >= 60
2014 /* ==========================================================================
2015 Assembly Syntax: Vdd32.w=vmpy(Vu32.h,Vv32.uh)
2016 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhVuh(HVX_Vector Vu, HVX_Vector Vv)
2017 Instruction Type: CVI_VX_DV
2018 Execution Slots: SLOT23
2019 ========================================================================== */
2021 #define Q6_Ww_vmpy_VhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhus)(Vu,Vv)
2022 #endif /* __HEXAGON_ARCH___ >= 60 */
2024 #if __HVX_ARCH__ >= 60
2025 /* ==========================================================================
2026 Assembly Syntax: Vxx32.w+=vmpy(Vu32.h,Vv32.uh)
2027 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2028 Instruction Type: CVI_VX_DV
2029 Execution Slots: SLOT23
2030 ========================================================================== */
2032 #define Q6_Ww_vmpyacc_WwVhVuh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhus_acc)(Vxx,Vu,Vv)
2033 #endif /* __HEXAGON_ARCH___ >= 60 */
2035 #if __HVX_ARCH__ >= 60
2036 /* ==========================================================================
2037 Assembly Syntax: Vdd32.w=vmpy(Vu32.h,Vv32.h)
2038 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2039 Instruction Type: CVI_VX_DV
2040 Execution Slots: SLOT23
2041 ========================================================================== */
2043 #define Q6_Ww_vmpy_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhv)(Vu,Vv)
2044 #endif /* __HEXAGON_ARCH___ >= 60 */
2046 #if __HVX_ARCH__ >= 60
2047 /* ==========================================================================
2048 Assembly Syntax: Vxx32.w+=vmpy(Vu32.h,Vv32.h)
2049 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2050 Instruction Type: CVI_VX_DV
2051 Execution Slots: SLOT23
2052 ========================================================================== */
2054 #define Q6_Ww_vmpyacc_WwVhVh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhv_acc)(Vxx,Vu,Vv)
2055 #endif /* __HEXAGON_ARCH___ >= 60 */
2057 #if __HVX_ARCH__ >= 60
2058 /* ==========================================================================
2059 Assembly Syntax: Vd32.h=vmpy(Vu32.h,Vv32.h):<<1:rnd:sat
2060 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhVh_s1_rnd_sat(HVX_Vector Vu, HVX_Vector Vv)
2061 Instruction Type: CVI_VX
2062 Execution Slots: SLOT23
2063 ========================================================================== */
2065 #define Q6_Vh_vmpy_VhVh_s1_rnd_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhvsrs)(Vu,Vv)
2066 #endif /* __HEXAGON_ARCH___ >= 60 */
2068 #if __HVX_ARCH__ >= 60
2069 /* ==========================================================================
2070 Assembly Syntax: Vd32.w=vmpyieo(Vu32.h,Vv32.h)
2071 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieo_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2072 Instruction Type: CVI_VX
2073 Execution Slots: SLOT23
2074 ========================================================================== */
2076 #define Q6_Vw_vmpyieo_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyieoh)(Vu,Vv)
2077 #endif /* __HEXAGON_ARCH___ >= 60 */
2079 #if __HVX_ARCH__ >= 60
2080 /* ==========================================================================
2081 Assembly Syntax: Vx32.w+=vmpyie(Vu32.w,Vv32.h)
2082 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieacc_VwVwVh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2083 Instruction Type: CVI_VX_DV
2084 Execution Slots: SLOT23
2085 ========================================================================== */
2087 #define Q6_Vw_vmpyieacc_VwVwVh(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewh_acc)(Vx,Vu,Vv)
2088 #endif /* __HEXAGON_ARCH___ >= 60 */
2090 #if __HVX_ARCH__ >= 60
2091 /* ==========================================================================
2092 Assembly Syntax: Vd32.w=vmpyie(Vu32.w,Vv32.uh)
2093 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyie_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
2094 Instruction Type: CVI_VX_DV
2095 Execution Slots: SLOT23
2096 ========================================================================== */
2098 #define Q6_Vw_vmpyie_VwVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewuh)(Vu,Vv)
2099 #endif /* __HEXAGON_ARCH___ >= 60 */
2101 #if __HVX_ARCH__ >= 60
2102 /* ==========================================================================
2103 Assembly Syntax: Vx32.w+=vmpyie(Vu32.w,Vv32.uh)
2104 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieacc_VwVwVuh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2105 Instruction Type: CVI_VX_DV
2106 Execution Slots: SLOT23
2107 ========================================================================== */
2109 #define Q6_Vw_vmpyieacc_VwVwVuh(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewuh_acc)(Vx,Vu,Vv)
2110 #endif /* __HEXAGON_ARCH___ >= 60 */
2112 #if __HVX_ARCH__ >= 60
2113 /* ==========================================================================
2114 Assembly Syntax: Vd32.h=vmpyi(Vu32.h,Vv32.h)
2115 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyi_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2116 Instruction Type: CVI_VX_DV
2117 Execution Slots: SLOT23
2118 ========================================================================== */
2120 #define Q6_Vh_vmpyi_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyih)(Vu,Vv)
2121 #endif /* __HEXAGON_ARCH___ >= 60 */
2123 #if __HVX_ARCH__ >= 60
2124 /* ==========================================================================
2125 Assembly Syntax: Vx32.h+=vmpyi(Vu32.h,Vv32.h)
2126 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyiacc_VhVhVh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2127 Instruction Type: CVI_VX_DV
2128 Execution Slots: SLOT23
2129 ========================================================================== */
2131 #define Q6_Vh_vmpyiacc_VhVhVh(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyih_acc)(Vx,Vu,Vv)
2132 #endif /* __HEXAGON_ARCH___ >= 60 */
2134 #if __HVX_ARCH__ >= 60
2135 /* ==========================================================================
2136 Assembly Syntax: Vd32.h=vmpyi(Vu32.h,Rt32.b)
2137 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyi_VhRb(HVX_Vector Vu, Word32 Rt)
2138 Instruction Type: CVI_VX
2139 Execution Slots: SLOT23
2140 ========================================================================== */
2142 #define Q6_Vh_vmpyi_VhRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyihb)(Vu,Rt)
2143 #endif /* __HEXAGON_ARCH___ >= 60 */
2145 #if __HVX_ARCH__ >= 60
2146 /* ==========================================================================
2147 Assembly Syntax: Vx32.h+=vmpyi(Vu32.h,Rt32.b)
2148 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyiacc_VhVhRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2149 Instruction Type: CVI_VX
2150 Execution Slots: SLOT23
2151 ========================================================================== */
2153 #define Q6_Vh_vmpyiacc_VhVhRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyihb_acc)(Vx,Vu,Rt)
2154 #endif /* __HEXAGON_ARCH___ >= 60 */
2156 #if __HVX_ARCH__ >= 60
2157 /* ==========================================================================
2158 Assembly Syntax: Vd32.w=vmpyio(Vu32.w,Vv32.h)
2159 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyio_VwVh(HVX_Vector Vu, HVX_Vector Vv)
2160 Instruction Type: CVI_VX_DV
2161 Execution Slots: SLOT23
2162 ========================================================================== */
2164 #define Q6_Vw_vmpyio_VwVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiowh)(Vu,Vv)
2165 #endif /* __HEXAGON_ARCH___ >= 60 */
2167 #if __HVX_ARCH__ >= 60
2168 /* ==========================================================================
2169 Assembly Syntax: Vd32.w=vmpyi(Vu32.w,Rt32.b)
2170 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRb(HVX_Vector Vu, Word32 Rt)
2171 Instruction Type: CVI_VX
2172 Execution Slots: SLOT23
2173 ========================================================================== */
2175 #define Q6_Vw_vmpyi_VwRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwb)(Vu,Rt)
2176 #endif /* __HEXAGON_ARCH___ >= 60 */
2178 #if __HVX_ARCH__ >= 60
2179 /* ==========================================================================
2180 Assembly Syntax: Vx32.w+=vmpyi(Vu32.w,Rt32.b)
2181 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2182 Instruction Type: CVI_VX
2183 Execution Slots: SLOT23
2184 ========================================================================== */
2186 #define Q6_Vw_vmpyiacc_VwVwRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwb_acc)(Vx,Vu,Rt)
2187 #endif /* __HEXAGON_ARCH___ >= 60 */
2189 #if __HVX_ARCH__ >= 60
2190 /* ==========================================================================
2191 Assembly Syntax: Vd32.w=vmpyi(Vu32.w,Rt32.h)
2192 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRh(HVX_Vector Vu, Word32 Rt)
2193 Instruction Type: CVI_VX_DV
2194 Execution Slots: SLOT23
2195 ========================================================================== */
2197 #define Q6_Vw_vmpyi_VwRh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwh)(Vu,Rt)
2198 #endif /* __HEXAGON_ARCH___ >= 60 */
2200 #if __HVX_ARCH__ >= 60
2201 /* ==========================================================================
2202 Assembly Syntax: Vx32.w+=vmpyi(Vu32.w,Rt32.h)
2203 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRh(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2204 Instruction Type: CVI_VX_DV
2205 Execution Slots: SLOT23
2206 ========================================================================== */
2208 #define Q6_Vw_vmpyiacc_VwVwRh(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwh_acc)(Vx,Vu,Rt)
2209 #endif /* __HEXAGON_ARCH___ >= 60 */
2211 #if __HVX_ARCH__ >= 60
2212 /* ==========================================================================
2213 Assembly Syntax: Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:sat
2214 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyo_VwVh_s1_sat(HVX_Vector Vu, HVX_Vector Vv)
2215 Instruction Type: CVI_VX_DV
2216 Execution Slots: SLOT23
2217 ========================================================================== */
2219 #define Q6_Vw_vmpyo_VwVh_s1_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh)(Vu,Vv)
2220 #endif /* __HEXAGON_ARCH___ >= 60 */
2222 #if __HVX_ARCH__ >= 60
2223 /* ==========================================================================
2224 Assembly Syntax: Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat
2225 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyo_VwVh_s1_rnd_sat(HVX_Vector Vu, HVX_Vector Vv)
2226 Instruction Type: CVI_VX_DV
2227 Execution Slots: SLOT23
2228 ========================================================================== */
2230 #define Q6_Vw_vmpyo_VwVh_s1_rnd_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_rnd)(Vu,Vv)
2231 #endif /* __HEXAGON_ARCH___ >= 60 */
2233 #if __HVX_ARCH__ >= 60
2234 /* ==========================================================================
2235 Assembly Syntax: Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat:shift
2236 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyoacc_VwVwVh_s1_rnd_sat_shift(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2237 Instruction Type: CVI_VX_DV
2238 Execution Slots: SLOT23
2239 ========================================================================== */
2241 #define Q6_Vw_vmpyoacc_VwVwVh_s1_rnd_sat_shift(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_rnd_sacc)(Vx,Vu,Vv)
2242 #endif /* __HEXAGON_ARCH___ >= 60 */
2244 #if __HVX_ARCH__ >= 60
2245 /* ==========================================================================
2246 Assembly Syntax: Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:sat:shift
2247 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyoacc_VwVwVh_s1_sat_shift(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2248 Instruction Type: CVI_VX_DV
2249 Execution Slots: SLOT23
2250 ========================================================================== */
2252 #define Q6_Vw_vmpyoacc_VwVwVh_s1_sat_shift(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_sacc)(Vx,Vu,Vv)
2253 #endif /* __HEXAGON_ARCH___ >= 60 */
2255 #if __HVX_ARCH__ >= 60
2256 /* ==========================================================================
2257 Assembly Syntax: Vdd32.uh=vmpy(Vu32.ub,Rt32.ub)
2258 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpy_VubRub(HVX_Vector Vu, Word32 Rt)
2259 Instruction Type: CVI_VX_DV
2260 Execution Slots: SLOT23
2261 ========================================================================== */
2263 #define Q6_Wuh_vmpy_VubRub(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyub)(Vu,Rt)
2264 #endif /* __HEXAGON_ARCH___ >= 60 */
2266 #if __HVX_ARCH__ >= 60
2267 /* ==========================================================================
2268 Assembly Syntax: Vxx32.uh+=vmpy(Vu32.ub,Rt32.ub)
2269 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpyacc_WuhVubRub(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
2270 Instruction Type: CVI_VX_DV
2271 Execution Slots: SLOT23
2272 ========================================================================== */
2274 #define Q6_Wuh_vmpyacc_WuhVubRub(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyub_acc)(Vxx,Vu,Rt)
2275 #endif /* __HEXAGON_ARCH___ >= 60 */
2277 #if __HVX_ARCH__ >= 60
2278 /* ==========================================================================
2279 Assembly Syntax: Vdd32.uh=vmpy(Vu32.ub,Vv32.ub)
2280 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpy_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2281 Instruction Type: CVI_VX_DV
2282 Execution Slots: SLOT23
2283 ========================================================================== */
2285 #define Q6_Wuh_vmpy_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyubv)(Vu,Vv)
2286 #endif /* __HEXAGON_ARCH___ >= 60 */
2288 #if __HVX_ARCH__ >= 60
2289 /* ==========================================================================
2290 Assembly Syntax: Vxx32.uh+=vmpy(Vu32.ub,Vv32.ub)
2291 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpyacc_WuhVubVub(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2292 Instruction Type: CVI_VX_DV
2293 Execution Slots: SLOT23
2294 ========================================================================== */
2296 #define Q6_Wuh_vmpyacc_WuhVubVub(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyubv_acc)(Vxx,Vu,Vv)
2297 #endif /* __HEXAGON_ARCH___ >= 60 */
2299 #if __HVX_ARCH__ >= 60
2300 /* ==========================================================================
2301 Assembly Syntax: Vdd32.uw=vmpy(Vu32.uh,Rt32.uh)
2302 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpy_VuhRuh(HVX_Vector Vu, Word32 Rt)
2303 Instruction Type: CVI_VX_DV
2304 Execution Slots: SLOT23
2305 ========================================================================== */
2307 #define Q6_Wuw_vmpy_VuhRuh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuh)(Vu,Rt)
2308 #endif /* __HEXAGON_ARCH___ >= 60 */
2310 #if __HVX_ARCH__ >= 60
2311 /* ==========================================================================
2312 Assembly Syntax: Vxx32.uw+=vmpy(Vu32.uh,Rt32.uh)
2313 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpyacc_WuwVuhRuh(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
2314 Instruction Type: CVI_VX_DV
2315 Execution Slots: SLOT23
2316 ========================================================================== */
2318 #define Q6_Wuw_vmpyacc_WuwVuhRuh(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuh_acc)(Vxx,Vu,Rt)
2319 #endif /* __HEXAGON_ARCH___ >= 60 */
2321 #if __HVX_ARCH__ >= 60
2322 /* ==========================================================================
2323 Assembly Syntax: Vdd32.uw=vmpy(Vu32.uh,Vv32.uh)
2324 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpy_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
2325 Instruction Type: CVI_VX_DV
2326 Execution Slots: SLOT23
2327 ========================================================================== */
2329 #define Q6_Wuw_vmpy_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhv)(Vu,Vv)
2330 #endif /* __HEXAGON_ARCH___ >= 60 */
2332 #if __HVX_ARCH__ >= 60
2333 /* ==========================================================================
2334 Assembly Syntax: Vxx32.uw+=vmpy(Vu32.uh,Vv32.uh)
2335 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpyacc_WuwVuhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2336 Instruction Type: CVI_VX_DV
2337 Execution Slots: SLOT23
2338 ========================================================================== */
2340 #define Q6_Wuw_vmpyacc_WuwVuhVuh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhv_acc)(Vxx,Vu,Vv)
2341 #endif /* __HEXAGON_ARCH___ >= 60 */
2343 #if __HVX_ARCH__ >= 60
2344 /* ==========================================================================
2345 Assembly Syntax: Vd32=vmux(Qt4,Vu32,Vv32)
2346 C Intrinsic Prototype: HVX_Vector Q6_V_vmux_QVV(HVX_VectorPred Qt, HVX_Vector Vu, HVX_Vector Vv)
2347 Instruction Type: CVI_VA
2348 Execution Slots: SLOT0123
2349 ========================================================================== */
2351 #define Q6_V_vmux_QVV(Qt,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmux)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1),Vu,Vv)
2352 #endif /* __HEXAGON_ARCH___ >= 60 */
2354 #if __HVX_ARCH__ >= 60
2355 /* ==========================================================================
2356 Assembly Syntax: Vd32.h=vnavg(Vu32.h,Vv32.h)
2357 C Intrinsic Prototype: HVX_Vector Q6_Vh_vnavg_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2358 Instruction Type: CVI_VA
2359 Execution Slots: SLOT0123
2360 ========================================================================== */
2362 #define Q6_Vh_vnavg_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgh)(Vu,Vv)
2363 #endif /* __HEXAGON_ARCH___ >= 60 */
2365 #if __HVX_ARCH__ >= 60
2366 /* ==========================================================================
2367 Assembly Syntax: Vd32.b=vnavg(Vu32.ub,Vv32.ub)
2368 C Intrinsic Prototype: HVX_Vector Q6_Vb_vnavg_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2369 Instruction Type: CVI_VA
2370 Execution Slots: SLOT0123
2371 ========================================================================== */
2373 #define Q6_Vb_vnavg_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgub)(Vu,Vv)
2374 #endif /* __HEXAGON_ARCH___ >= 60 */
2376 #if __HVX_ARCH__ >= 60
2377 /* ==========================================================================
2378 Assembly Syntax: Vd32.w=vnavg(Vu32.w,Vv32.w)
2379 C Intrinsic Prototype: HVX_Vector Q6_Vw_vnavg_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2380 Instruction Type: CVI_VA
2381 Execution Slots: SLOT0123
2382 ========================================================================== */
2384 #define Q6_Vw_vnavg_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgw)(Vu,Vv)
2385 #endif /* __HEXAGON_ARCH___ >= 60 */
2387 #if __HVX_ARCH__ >= 60
2388 /* ==========================================================================
2389 Assembly Syntax: Vd32.h=vnormamt(Vu32.h)
2390 C Intrinsic Prototype: HVX_Vector Q6_Vh_vnormamt_Vh(HVX_Vector Vu)
2391 Instruction Type: CVI_VS
2392 Execution Slots: SLOT0123
2393 ========================================================================== */
2395 #define Q6_Vh_vnormamt_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnormamth)(Vu)
2396 #endif /* __HEXAGON_ARCH___ >= 60 */
2398 #if __HVX_ARCH__ >= 60
2399 /* ==========================================================================
2400 Assembly Syntax: Vd32.w=vnormamt(Vu32.w)
2401 C Intrinsic Prototype: HVX_Vector Q6_Vw_vnormamt_Vw(HVX_Vector Vu)
2402 Instruction Type: CVI_VS
2403 Execution Slots: SLOT0123
2404 ========================================================================== */
2406 #define Q6_Vw_vnormamt_Vw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnormamtw)(Vu)
2407 #endif /* __HEXAGON_ARCH___ >= 60 */
2409 #if __HVX_ARCH__ >= 60
2410 /* ==========================================================================
2411 Assembly Syntax: Vd32=vnot(Vu32)
2412 C Intrinsic Prototype: HVX_Vector Q6_V_vnot_V(HVX_Vector Vu)
2413 Instruction Type: CVI_VA
2414 Execution Slots: SLOT0123
2415 ========================================================================== */
2417 #define Q6_V_vnot_V(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnot)(Vu)
2418 #endif /* __HEXAGON_ARCH___ >= 60 */
2420 #if __HVX_ARCH__ >= 60
2421 /* ==========================================================================
2422 Assembly Syntax: Vd32=vor(Vu32,Vv32)
2423 C Intrinsic Prototype: HVX_Vector Q6_V_vor_VV(HVX_Vector Vu, HVX_Vector Vv)
2424 Instruction Type: CVI_VA
2425 Execution Slots: SLOT0123
2426 ========================================================================== */
2428 #define Q6_V_vor_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vor)(Vu,Vv)
2429 #endif /* __HEXAGON_ARCH___ >= 60 */
2431 #if __HVX_ARCH__ >= 60
2432 /* ==========================================================================
2433 Assembly Syntax: Vd32.b=vpacke(Vu32.h,Vv32.h)
2434 C Intrinsic Prototype: HVX_Vector Q6_Vb_vpacke_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2435 Instruction Type: CVI_VP
2436 Execution Slots: SLOT0123
2437 ========================================================================== */
2439 #define Q6_Vb_vpacke_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackeb)(Vu,Vv)
2440 #endif /* __HEXAGON_ARCH___ >= 60 */
2442 #if __HVX_ARCH__ >= 60
2443 /* ==========================================================================
2444 Assembly Syntax: Vd32.h=vpacke(Vu32.w,Vv32.w)
2445 C Intrinsic Prototype: HVX_Vector Q6_Vh_vpacke_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2446 Instruction Type: CVI_VP
2447 Execution Slots: SLOT0123
2448 ========================================================================== */
2450 #define Q6_Vh_vpacke_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackeh)(Vu,Vv)
2451 #endif /* __HEXAGON_ARCH___ >= 60 */
2453 #if __HVX_ARCH__ >= 60
2454 /* ==========================================================================
2455 Assembly Syntax: Vd32.b=vpack(Vu32.h,Vv32.h):sat
2456 C Intrinsic Prototype: HVX_Vector Q6_Vb_vpack_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2457 Instruction Type: CVI_VP
2458 Execution Slots: SLOT0123
2459 ========================================================================== */
2461 #define Q6_Vb_vpack_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackhb_sat)(Vu,Vv)
2462 #endif /* __HEXAGON_ARCH___ >= 60 */
2464 #if __HVX_ARCH__ >= 60
2465 /* ==========================================================================
2466 Assembly Syntax: Vd32.ub=vpack(Vu32.h,Vv32.h):sat
2467 C Intrinsic Prototype: HVX_Vector Q6_Vub_vpack_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2468 Instruction Type: CVI_VP
2469 Execution Slots: SLOT0123
2470 ========================================================================== */
2472 #define Q6_Vub_vpack_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackhub_sat)(Vu,Vv)
2473 #endif /* __HEXAGON_ARCH___ >= 60 */
2475 #if __HVX_ARCH__ >= 60
2476 /* ==========================================================================
2477 Assembly Syntax: Vd32.b=vpacko(Vu32.h,Vv32.h)
2478 C Intrinsic Prototype: HVX_Vector Q6_Vb_vpacko_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2479 Instruction Type: CVI_VP
2480 Execution Slots: SLOT0123
2481 ========================================================================== */
2483 #define Q6_Vb_vpacko_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackob)(Vu,Vv)
2484 #endif /* __HEXAGON_ARCH___ >= 60 */
2486 #if __HVX_ARCH__ >= 60
2487 /* ==========================================================================
2488 Assembly Syntax: Vd32.h=vpacko(Vu32.w,Vv32.w)
2489 C Intrinsic Prototype: HVX_Vector Q6_Vh_vpacko_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2490 Instruction Type: CVI_VP
2491 Execution Slots: SLOT0123
2492 ========================================================================== */
2494 #define Q6_Vh_vpacko_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackoh)(Vu,Vv)
2495 #endif /* __HEXAGON_ARCH___ >= 60 */
2497 #if __HVX_ARCH__ >= 60
2498 /* ==========================================================================
2499 Assembly Syntax: Vd32.h=vpack(Vu32.w,Vv32.w):sat
2500 C Intrinsic Prototype: HVX_Vector Q6_Vh_vpack_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2501 Instruction Type: CVI_VP
2502 Execution Slots: SLOT0123
2503 ========================================================================== */
2505 #define Q6_Vh_vpack_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackwh_sat)(Vu,Vv)
2506 #endif /* __HEXAGON_ARCH___ >= 60 */
2508 #if __HVX_ARCH__ >= 60
2509 /* ==========================================================================
2510 Assembly Syntax: Vd32.uh=vpack(Vu32.w,Vv32.w):sat
2511 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vpack_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2512 Instruction Type: CVI_VP
2513 Execution Slots: SLOT0123
2514 ========================================================================== */
2516 #define Q6_Vuh_vpack_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackwuh_sat)(Vu,Vv)
2517 #endif /* __HEXAGON_ARCH___ >= 60 */
2519 #if __HVX_ARCH__ >= 60
2520 /* ==========================================================================
2521 Assembly Syntax: Vd32.h=vpopcount(Vu32.h)
2522 C Intrinsic Prototype: HVX_Vector Q6_Vh_vpopcount_Vh(HVX_Vector Vu)
2523 Instruction Type: CVI_VS
2524 Execution Slots: SLOT0123
2525 ========================================================================== */
2527 #define Q6_Vh_vpopcount_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpopcounth)(Vu)
2528 #endif /* __HEXAGON_ARCH___ >= 60 */
2530 #if __HVX_ARCH__ >= 60
2531 /* ==========================================================================
2532 Assembly Syntax: Vd32=vrdelta(Vu32,Vv32)
2533 C Intrinsic Prototype: HVX_Vector Q6_V_vrdelta_VV(HVX_Vector Vu, HVX_Vector Vv)
2534 Instruction Type: CVI_VP
2535 Execution Slots: SLOT0123
2536 ========================================================================== */
2538 #define Q6_V_vrdelta_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrdelta)(Vu,Vv)
2539 #endif /* __HEXAGON_ARCH___ >= 60 */
2541 #if __HVX_ARCH__ >= 60
2542 /* ==========================================================================
2543 Assembly Syntax: Vd32.w=vrmpy(Vu32.ub,Rt32.b)
2544 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VubRb(HVX_Vector Vu, Word32 Rt)
2545 Instruction Type: CVI_VX
2546 Execution Slots: SLOT23
2547 ========================================================================== */
2549 #define Q6_Vw_vrmpy_VubRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybus)(Vu,Rt)
2550 #endif /* __HEXAGON_ARCH___ >= 60 */
2552 #if __HVX_ARCH__ >= 60
2553 /* ==========================================================================
2554 Assembly Syntax: Vx32.w+=vrmpy(Vu32.ub,Rt32.b)
2555 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVubRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2556 Instruction Type: CVI_VX
2557 Execution Slots: SLOT23
2558 ========================================================================== */
2560 #define Q6_Vw_vrmpyacc_VwVubRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybus_acc)(Vx,Vu,Rt)
2561 #endif /* __HEXAGON_ARCH___ >= 60 */
2563 #if __HVX_ARCH__ >= 60
2564 /* ==========================================================================
2565 Assembly Syntax: Vdd32.w=vrmpy(Vuu32.ub,Rt32.b,#u1)
2566 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vrmpy_WubRbI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2567 Instruction Type: CVI_VX_DV
2568 Execution Slots: SLOT23
2569 ========================================================================== */
2571 #define Q6_Ww_vrmpy_WubRbI(Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusi)(Vuu,Rt,Iu1)
2572 #endif /* __HEXAGON_ARCH___ >= 60 */
2574 #if __HVX_ARCH__ >= 60
2575 /* ==========================================================================
2576 Assembly Syntax: Vxx32.w+=vrmpy(Vuu32.ub,Rt32.b,#u1)
2577 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vrmpyacc_WwWubRbI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2578 Instruction Type: CVI_VX_DV
2579 Execution Slots: SLOT23
2580 ========================================================================== */
2582 #define Q6_Ww_vrmpyacc_WwWubRbI(Vxx,Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusi_acc)(Vxx,Vuu,Rt,Iu1)
2583 #endif /* __HEXAGON_ARCH___ >= 60 */
2585 #if __HVX_ARCH__ >= 60
2586 /* ==========================================================================
2587 Assembly Syntax: Vd32.w=vrmpy(Vu32.ub,Vv32.b)
2588 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VubVb(HVX_Vector Vu, HVX_Vector Vv)
2589 Instruction Type: CVI_VX
2590 Execution Slots: SLOT23
2591 ========================================================================== */
2593 #define Q6_Vw_vrmpy_VubVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusv)(Vu,Vv)
2594 #endif /* __HEXAGON_ARCH___ >= 60 */
2596 #if __HVX_ARCH__ >= 60
2597 /* ==========================================================================
2598 Assembly Syntax: Vx32.w+=vrmpy(Vu32.ub,Vv32.b)
2599 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVubVb(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2600 Instruction Type: CVI_VX
2601 Execution Slots: SLOT23
2602 ========================================================================== */
2604 #define Q6_Vw_vrmpyacc_VwVubVb(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusv_acc)(Vx,Vu,Vv)
2605 #endif /* __HEXAGON_ARCH___ >= 60 */
2607 #if __HVX_ARCH__ >= 60
2608 /* ==========================================================================
2609 Assembly Syntax: Vd32.w=vrmpy(Vu32.b,Vv32.b)
2610 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2611 Instruction Type: CVI_VX
2612 Execution Slots: SLOT23
2613 ========================================================================== */
2615 #define Q6_Vw_vrmpy_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybv)(Vu,Vv)
2616 #endif /* __HEXAGON_ARCH___ >= 60 */
2618 #if __HVX_ARCH__ >= 60
2619 /* ==========================================================================
2620 Assembly Syntax: Vx32.w+=vrmpy(Vu32.b,Vv32.b)
2621 C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVbVb(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2622 Instruction Type: CVI_VX
2623 Execution Slots: SLOT23
2624 ========================================================================== */
2626 #define Q6_Vw_vrmpyacc_VwVbVb(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybv_acc)(Vx,Vu,Vv)
2627 #endif /* __HEXAGON_ARCH___ >= 60 */
2629 #if __HVX_ARCH__ >= 60
2630 /* ==========================================================================
2631 Assembly Syntax: Vd32.uw=vrmpy(Vu32.ub,Rt32.ub)
2632 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpy_VubRub(HVX_Vector Vu, Word32 Rt)
2633 Instruction Type: CVI_VX
2634 Execution Slots: SLOT23
2635 ========================================================================== */
2637 #define Q6_Vuw_vrmpy_VubRub(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyub)(Vu,Rt)
2638 #endif /* __HEXAGON_ARCH___ >= 60 */
2640 #if __HVX_ARCH__ >= 60
2641 /* ==========================================================================
2642 Assembly Syntax: Vx32.uw+=vrmpy(Vu32.ub,Rt32.ub)
2643 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpyacc_VuwVubRub(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2644 Instruction Type: CVI_VX
2645 Execution Slots: SLOT23
2646 ========================================================================== */
2648 #define Q6_Vuw_vrmpyacc_VuwVubRub(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyub_acc)(Vx,Vu,Rt)
2649 #endif /* __HEXAGON_ARCH___ >= 60 */
2651 #if __HVX_ARCH__ >= 60
2652 /* ==========================================================================
2653 Assembly Syntax: Vdd32.uw=vrmpy(Vuu32.ub,Rt32.ub,#u1)
2654 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrmpy_WubRubI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2655 Instruction Type: CVI_VX_DV
2656 Execution Slots: SLOT23
2657 ========================================================================== */
2659 #define Q6_Wuw_vrmpy_WubRubI(Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubi)(Vuu,Rt,Iu1)
2660 #endif /* __HEXAGON_ARCH___ >= 60 */
2662 #if __HVX_ARCH__ >= 60
2663 /* ==========================================================================
2664 Assembly Syntax: Vxx32.uw+=vrmpy(Vuu32.ub,Rt32.ub,#u1)
2665 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrmpyacc_WuwWubRubI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2666 Instruction Type: CVI_VX_DV
2667 Execution Slots: SLOT23
2668 ========================================================================== */
2670 #define Q6_Wuw_vrmpyacc_WuwWubRubI(Vxx,Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubi_acc)(Vxx,Vuu,Rt,Iu1)
2671 #endif /* __HEXAGON_ARCH___ >= 60 */
2673 #if __HVX_ARCH__ >= 60
2674 /* ==========================================================================
2675 Assembly Syntax: Vd32.uw=vrmpy(Vu32.ub,Vv32.ub)
2676 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpy_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2677 Instruction Type: CVI_VX
2678 Execution Slots: SLOT23
2679 ========================================================================== */
2681 #define Q6_Vuw_vrmpy_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubv)(Vu,Vv)
2682 #endif /* __HEXAGON_ARCH___ >= 60 */
2684 #if __HVX_ARCH__ >= 60
2685 /* ==========================================================================
2686 Assembly Syntax: Vx32.uw+=vrmpy(Vu32.ub,Vv32.ub)
2687 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpyacc_VuwVubVub(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2688 Instruction Type: CVI_VX
2689 Execution Slots: SLOT23
2690 ========================================================================== */
2692 #define Q6_Vuw_vrmpyacc_VuwVubVub(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubv_acc)(Vx,Vu,Vv)
2693 #endif /* __HEXAGON_ARCH___ >= 60 */
2695 #if __HVX_ARCH__ >= 60
2696 /* ==========================================================================
2697 Assembly Syntax: Vd32=vror(Vu32,Rt32)
2698 C Intrinsic Prototype: HVX_Vector Q6_V_vror_VR(HVX_Vector Vu, Word32 Rt)
2699 Instruction Type: CVI_VP
2700 Execution Slots: SLOT0123
2701 ========================================================================== */
2703 #define Q6_V_vror_VR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vror)(Vu,Rt)
2704 #endif /* __HEXAGON_ARCH___ >= 60 */
2706 #if __HVX_ARCH__ >= 60
2707 /* ==========================================================================
2708 Assembly Syntax: Vd32.b=vround(Vu32.h,Vv32.h):sat
2709 C Intrinsic Prototype: HVX_Vector Q6_Vb_vround_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2710 Instruction Type: CVI_VS
2711 Execution Slots: SLOT0123
2712 ========================================================================== */
2714 #define Q6_Vb_vround_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundhb)(Vu,Vv)
2715 #endif /* __HEXAGON_ARCH___ >= 60 */
2717 #if __HVX_ARCH__ >= 60
2718 /* ==========================================================================
2719 Assembly Syntax: Vd32.ub=vround(Vu32.h,Vv32.h):sat
2720 C Intrinsic Prototype: HVX_Vector Q6_Vub_vround_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2721 Instruction Type: CVI_VS
2722 Execution Slots: SLOT0123
2723 ========================================================================== */
2725 #define Q6_Vub_vround_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundhub)(Vu,Vv)
2726 #endif /* __HEXAGON_ARCH___ >= 60 */
2728 #if __HVX_ARCH__ >= 60
2729 /* ==========================================================================
2730 Assembly Syntax: Vd32.h=vround(Vu32.w,Vv32.w):sat
2731 C Intrinsic Prototype: HVX_Vector Q6_Vh_vround_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2732 Instruction Type: CVI_VS
2733 Execution Slots: SLOT0123
2734 ========================================================================== */
2736 #define Q6_Vh_vround_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundwh)(Vu,Vv)
2737 #endif /* __HEXAGON_ARCH___ >= 60 */
2739 #if __HVX_ARCH__ >= 60
2740 /* ==========================================================================
2741 Assembly Syntax: Vd32.uh=vround(Vu32.w,Vv32.w):sat
2742 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vround_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2743 Instruction Type: CVI_VS
2744 Execution Slots: SLOT0123
2745 ========================================================================== */
2747 #define Q6_Vuh_vround_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundwuh)(Vu,Vv)
2748 #endif /* __HEXAGON_ARCH___ >= 60 */
2750 #if __HVX_ARCH__ >= 60
2751 /* ==========================================================================
2752 Assembly Syntax: Vdd32.uw=vrsad(Vuu32.ub,Rt32.ub,#u1)
2753 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrsad_WubRubI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2754 Instruction Type: CVI_VX_DV
2755 Execution Slots: SLOT23
2756 ========================================================================== */
2758 #define Q6_Wuw_vrsad_WubRubI(Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrsadubi)(Vuu,Rt,Iu1)
2759 #endif /* __HEXAGON_ARCH___ >= 60 */
2761 #if __HVX_ARCH__ >= 60
2762 /* ==========================================================================
2763 Assembly Syntax: Vxx32.uw+=vrsad(Vuu32.ub,Rt32.ub,#u1)
2764 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrsadacc_WuwWubRubI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2765 Instruction Type: CVI_VX_DV
2766 Execution Slots: SLOT23
2767 ========================================================================== */
2769 #define Q6_Wuw_vrsadacc_WuwWubRubI(Vxx,Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrsadubi_acc)(Vxx,Vuu,Rt,Iu1)
2770 #endif /* __HEXAGON_ARCH___ >= 60 */
2772 #if __HVX_ARCH__ >= 60
2773 /* ==========================================================================
2774 Assembly Syntax: Vd32.ub=vsat(Vu32.h,Vv32.h)
2775 C Intrinsic Prototype: HVX_Vector Q6_Vub_vsat_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2776 Instruction Type: CVI_VA
2777 Execution Slots: SLOT0123
2778 ========================================================================== */
2780 #define Q6_Vub_vsat_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsathub)(Vu,Vv)
2781 #endif /* __HEXAGON_ARCH___ >= 60 */
2783 #if __HVX_ARCH__ >= 60
2784 /* ==========================================================================
2785 Assembly Syntax: Vd32.h=vsat(Vu32.w,Vv32.w)
2786 C Intrinsic Prototype: HVX_Vector Q6_Vh_vsat_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2787 Instruction Type: CVI_VA
2788 Execution Slots: SLOT0123
2789 ========================================================================== */
2791 #define Q6_Vh_vsat_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatwh)(Vu,Vv)
2792 #endif /* __HEXAGON_ARCH___ >= 60 */
2794 #if __HVX_ARCH__ >= 60
2795 /* ==========================================================================
2796 Assembly Syntax: Vdd32.h=vsxt(Vu32.b)
2797 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsxt_Vb(HVX_Vector Vu)
2798 Instruction Type: CVI_VA_DV
2799 Execution Slots: SLOT0123
2800 ========================================================================== */
2802 #define Q6_Wh_vsxt_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsb)(Vu)
2803 #endif /* __HEXAGON_ARCH___ >= 60 */
2805 #if __HVX_ARCH__ >= 60
2806 /* ==========================================================================
2807 Assembly Syntax: Vdd32.w=vsxt(Vu32.h)
2808 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsxt_Vh(HVX_Vector Vu)
2809 Instruction Type: CVI_VA_DV
2810 Execution Slots: SLOT0123
2811 ========================================================================== */
2813 #define Q6_Ww_vsxt_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsh)(Vu)
2814 #endif /* __HEXAGON_ARCH___ >= 60 */
2816 #if __HVX_ARCH__ >= 60
2817 /* ==========================================================================
2818 Assembly Syntax: Vd32.h=vshuffe(Vu32.h,Vv32.h)
2819 C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuffe_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2820 Instruction Type: CVI_VA
2821 Execution Slots: SLOT0123
2822 ========================================================================== */
2824 #define Q6_Vh_vshuffe_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufeh)(Vu,Vv)
2825 #endif /* __HEXAGON_ARCH___ >= 60 */
2827 #if __HVX_ARCH__ >= 60
2828 /* ==========================================================================
2829 Assembly Syntax: Vd32.b=vshuff(Vu32.b)
2830 C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuff_Vb(HVX_Vector Vu)
2831 Instruction Type: CVI_VP
2832 Execution Slots: SLOT0123
2833 ========================================================================== */
2835 #define Q6_Vb_vshuff_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffb)(Vu)
2836 #endif /* __HEXAGON_ARCH___ >= 60 */
2838 #if __HVX_ARCH__ >= 60
2839 /* ==========================================================================
2840 Assembly Syntax: Vd32.b=vshuffe(Vu32.b,Vv32.b)
2841 C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuffe_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2842 Instruction Type: CVI_VA
2843 Execution Slots: SLOT0123
2844 ========================================================================== */
2846 #define Q6_Vb_vshuffe_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffeb)(Vu,Vv)
2847 #endif /* __HEXAGON_ARCH___ >= 60 */
2849 #if __HVX_ARCH__ >= 60
2850 /* ==========================================================================
2851 Assembly Syntax: Vd32.h=vshuff(Vu32.h)
2852 C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuff_Vh(HVX_Vector Vu)
2853 Instruction Type: CVI_VP
2854 Execution Slots: SLOT0123
2855 ========================================================================== */
2857 #define Q6_Vh_vshuff_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffh)(Vu)
2858 #endif /* __HEXAGON_ARCH___ >= 60 */
2860 #if __HVX_ARCH__ >= 60
2861 /* ==========================================================================
2862 Assembly Syntax: Vd32.b=vshuffo(Vu32.b,Vv32.b)
2863 C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuffo_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2864 Instruction Type: CVI_VA
2865 Execution Slots: SLOT0123
2866 ========================================================================== */
2868 #define Q6_Vb_vshuffo_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffob)(Vu,Vv)
2869 #endif /* __HEXAGON_ARCH___ >= 60 */
2871 #if __HVX_ARCH__ >= 60
2872 /* ==========================================================================
2873 Assembly Syntax: Vdd32=vshuff(Vu32,Vv32,Rt8)
2874 C Intrinsic Prototype: HVX_VectorPair Q6_W_vshuff_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
2875 Instruction Type: CVI_VP_VS
2876 Execution Slots: SLOT0123
2877 ========================================================================== */
2879 #define Q6_W_vshuff_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffvdd)(Vu,Vv,Rt)
2880 #endif /* __HEXAGON_ARCH___ >= 60 */
2882 #if __HVX_ARCH__ >= 60
2883 /* ==========================================================================
2884 Assembly Syntax: Vdd32.b=vshuffoe(Vu32.b,Vv32.b)
2885 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vshuffoe_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2886 Instruction Type: CVI_VA_DV
2887 Execution Slots: SLOT0123
2888 ========================================================================== */
2890 #define Q6_Wb_vshuffoe_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoeb)(Vu,Vv)
2891 #endif /* __HEXAGON_ARCH___ >= 60 */
2893 #if __HVX_ARCH__ >= 60
2894 /* ==========================================================================
2895 Assembly Syntax: Vdd32.h=vshuffoe(Vu32.h,Vv32.h)
2896 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vshuffoe_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2897 Instruction Type: CVI_VA_DV
2898 Execution Slots: SLOT0123
2899 ========================================================================== */
2901 #define Q6_Wh_vshuffoe_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoeh)(Vu,Vv)
2902 #endif /* __HEXAGON_ARCH___ >= 60 */
2904 #if __HVX_ARCH__ >= 60
2905 /* ==========================================================================
2906 Assembly Syntax: Vd32.h=vshuffo(Vu32.h,Vv32.h)
2907 C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuffo_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2908 Instruction Type: CVI_VA
2909 Execution Slots: SLOT0123
2910 ========================================================================== */
2912 #define Q6_Vh_vshuffo_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoh)(Vu,Vv)
2913 #endif /* __HEXAGON_ARCH___ >= 60 */
2915 #if __HVX_ARCH__ >= 60
2916 /* ==========================================================================
2917 Assembly Syntax: Vd32.b=vsub(Vu32.b,Vv32.b)
2918 C Intrinsic Prototype: HVX_Vector Q6_Vb_vsub_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2919 Instruction Type: CVI_VA
2920 Execution Slots: SLOT0123
2921 ========================================================================== */
2923 #define Q6_Vb_vsub_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubb)(Vu,Vv)
2924 #endif /* __HEXAGON_ARCH___ >= 60 */
2926 #if __HVX_ARCH__ >= 60
2927 /* ==========================================================================
2928 Assembly Syntax: Vdd32.b=vsub(Vuu32.b,Vvv32.b)
2929 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vsub_WbWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
2930 Instruction Type: CVI_VA_DV
2931 Execution Slots: SLOT0123
2932 ========================================================================== */
2934 #define Q6_Wb_vsub_WbWb(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubb_dv)(Vuu,Vvv)
2935 #endif /* __HEXAGON_ARCH___ >= 60 */
2937 #if __HVX_ARCH__ >= 60
2938 /* ==========================================================================
2939 Assembly Syntax: if (!Qv4) Vx32.b-=Vu32.b
2940 C Intrinsic Prototype: HVX_Vector Q6_Vb_condnac_QnVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2941 Instruction Type: CVI_VA
2942 Execution Slots: SLOT0123
2943 ========================================================================== */
2945 #define Q6_Vb_condnac_QnVbVb(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
2946 #endif /* __HEXAGON_ARCH___ >= 60 */
2948 #if __HVX_ARCH__ >= 60
2949 /* ==========================================================================
2950 Assembly Syntax: if (Qv4) Vx32.b-=Vu32.b
2951 C Intrinsic Prototype: HVX_Vector Q6_Vb_condnac_QVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2952 Instruction Type: CVI_VA
2953 Execution Slots: SLOT0123
2954 ========================================================================== */
2956 #define Q6_Vb_condnac_QVbVb(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
2957 #endif /* __HEXAGON_ARCH___ >= 60 */
2959 #if __HVX_ARCH__ >= 60
2960 /* ==========================================================================
2961 Assembly Syntax: Vd32.h=vsub(Vu32.h,Vv32.h)
2962 C Intrinsic Prototype: HVX_Vector Q6_Vh_vsub_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2963 Instruction Type: CVI_VA
2964 Execution Slots: SLOT0123
2965 ========================================================================== */
2967 #define Q6_Vh_vsub_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubh)(Vu,Vv)
2968 #endif /* __HEXAGON_ARCH___ >= 60 */
2970 #if __HVX_ARCH__ >= 60
2971 /* ==========================================================================
2972 Assembly Syntax: Vdd32.h=vsub(Vuu32.h,Vvv32.h)
2973 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_WhWh(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
2974 Instruction Type: CVI_VA_DV
2975 Execution Slots: SLOT0123
2976 ========================================================================== */
2978 #define Q6_Wh_vsub_WhWh(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubh_dv)(Vuu,Vvv)
2979 #endif /* __HEXAGON_ARCH___ >= 60 */
2981 #if __HVX_ARCH__ >= 60
2982 /* ==========================================================================
2983 Assembly Syntax: if (!Qv4) Vx32.h-=Vu32.h
2984 C Intrinsic Prototype: HVX_Vector Q6_Vh_condnac_QnVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2985 Instruction Type: CVI_VA
2986 Execution Slots: SLOT0123
2987 ========================================================================== */
2989 #define Q6_Vh_condnac_QnVhVh(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
2990 #endif /* __HEXAGON_ARCH___ >= 60 */
2992 #if __HVX_ARCH__ >= 60
2993 /* ==========================================================================
2994 Assembly Syntax: if (Qv4) Vx32.h-=Vu32.h
2995 C Intrinsic Prototype: HVX_Vector Q6_Vh_condnac_QVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2996 Instruction Type: CVI_VA
2997 Execution Slots: SLOT0123
2998 ========================================================================== */
3000 #define Q6_Vh_condnac_QVhVh(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
3001 #endif /* __HEXAGON_ARCH___ >= 60 */
3003 #if __HVX_ARCH__ >= 60
3004 /* ==========================================================================
3005 Assembly Syntax: Vd32.h=vsub(Vu32.h,Vv32.h):sat
3006 C Intrinsic Prototype: HVX_Vector Q6_Vh_vsub_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
3007 Instruction Type: CVI_VA
3008 Execution Slots: SLOT0123
3009 ========================================================================== */
3011 #define Q6_Vh_vsub_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhsat)(Vu,Vv)
3012 #endif /* __HEXAGON_ARCH___ >= 60 */
3014 #if __HVX_ARCH__ >= 60
3015 /* ==========================================================================
3016 Assembly Syntax: Vdd32.h=vsub(Vuu32.h,Vvv32.h):sat
3017 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_WhWh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3018 Instruction Type: CVI_VA_DV
3019 Execution Slots: SLOT0123
3020 ========================================================================== */
3022 #define Q6_Wh_vsub_WhWh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhsat_dv)(Vuu,Vvv)
3023 #endif /* __HEXAGON_ARCH___ >= 60 */
3025 #if __HVX_ARCH__ >= 60
3026 /* ==========================================================================
3027 Assembly Syntax: Vdd32.w=vsub(Vu32.h,Vv32.h)
3028 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_VhVh(HVX_Vector Vu, HVX_Vector Vv)
3029 Instruction Type: CVI_VX_DV
3030 Execution Slots: SLOT23
3031 ========================================================================== */
3033 #define Q6_Ww_vsub_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhw)(Vu,Vv)
3034 #endif /* __HEXAGON_ARCH___ >= 60 */
3036 #if __HVX_ARCH__ >= 60
3037 /* ==========================================================================
3038 Assembly Syntax: Vdd32.h=vsub(Vu32.ub,Vv32.ub)
3039 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_VubVub(HVX_Vector Vu, HVX_Vector Vv)
3040 Instruction Type: CVI_VX_DV
3041 Execution Slots: SLOT23
3042 ========================================================================== */
3044 #define Q6_Wh_vsub_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububh)(Vu,Vv)
3045 #endif /* __HEXAGON_ARCH___ >= 60 */
3047 #if __HVX_ARCH__ >= 60
3048 /* ==========================================================================
3049 Assembly Syntax: Vd32.ub=vsub(Vu32.ub,Vv32.ub):sat
3050 C Intrinsic Prototype: HVX_Vector Q6_Vub_vsub_VubVub_sat(HVX_Vector Vu, HVX_Vector Vv)
3051 Instruction Type: CVI_VA
3052 Execution Slots: SLOT0123
3053 ========================================================================== */
3055 #define Q6_Vub_vsub_VubVub_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububsat)(Vu,Vv)
3056 #endif /* __HEXAGON_ARCH___ >= 60 */
3058 #if __HVX_ARCH__ >= 60
3059 /* ==========================================================================
3060 Assembly Syntax: Vdd32.ub=vsub(Vuu32.ub,Vvv32.ub):sat
3061 C Intrinsic Prototype: HVX_VectorPair Q6_Wub_vsub_WubWub_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3062 Instruction Type: CVI_VA_DV
3063 Execution Slots: SLOT0123
3064 ========================================================================== */
3066 #define Q6_Wub_vsub_WubWub_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububsat_dv)(Vuu,Vvv)
3067 #endif /* __HEXAGON_ARCH___ >= 60 */
3069 #if __HVX_ARCH__ >= 60
3070 /* ==========================================================================
3071 Assembly Syntax: Vd32.uh=vsub(Vu32.uh,Vv32.uh):sat
3072 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vsub_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
3073 Instruction Type: CVI_VA
3074 Execution Slots: SLOT0123
3075 ========================================================================== */
3077 #define Q6_Vuh_vsub_VuhVuh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhsat)(Vu,Vv)
3078 #endif /* __HEXAGON_ARCH___ >= 60 */
3080 #if __HVX_ARCH__ >= 60
3081 /* ==========================================================================
3082 Assembly Syntax: Vdd32.uh=vsub(Vuu32.uh,Vvv32.uh):sat
3083 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vsub_WuhWuh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3084 Instruction Type: CVI_VA_DV
3085 Execution Slots: SLOT0123
3086 ========================================================================== */
3088 #define Q6_Wuh_vsub_WuhWuh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhsat_dv)(Vuu,Vvv)
3089 #endif /* __HEXAGON_ARCH___ >= 60 */
3091 #if __HVX_ARCH__ >= 60
3092 /* ==========================================================================
3093 Assembly Syntax: Vdd32.w=vsub(Vu32.uh,Vv32.uh)
3094 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
3095 Instruction Type: CVI_VX_DV
3096 Execution Slots: SLOT23
3097 ========================================================================== */
3099 #define Q6_Ww_vsub_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhw)(Vu,Vv)
3100 #endif /* __HEXAGON_ARCH___ >= 60 */
3102 #if __HVX_ARCH__ >= 60
3103 /* ==========================================================================
3104 Assembly Syntax: Vd32.w=vsub(Vu32.w,Vv32.w)
3105 C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVw(HVX_Vector Vu, HVX_Vector Vv)
3106 Instruction Type: CVI_VA
3107 Execution Slots: SLOT0123
3108 ========================================================================== */
3110 #define Q6_Vw_vsub_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubw)(Vu,Vv)
3111 #endif /* __HEXAGON_ARCH___ >= 60 */
3113 #if __HVX_ARCH__ >= 60
3114 /* ==========================================================================
3115 Assembly Syntax: Vdd32.w=vsub(Vuu32.w,Vvv32.w)
3116 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_WwWw(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3117 Instruction Type: CVI_VA_DV
3118 Execution Slots: SLOT0123
3119 ========================================================================== */
3121 #define Q6_Ww_vsub_WwWw(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubw_dv)(Vuu,Vvv)
3122 #endif /* __HEXAGON_ARCH___ >= 60 */
3124 #if __HVX_ARCH__ >= 60
3125 /* ==========================================================================
3126 Assembly Syntax: if (!Qv4) Vx32.w-=Vu32.w
3127 C Intrinsic Prototype: HVX_Vector Q6_Vw_condnac_QnVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
3128 Instruction Type: CVI_VA
3129 Execution Slots: SLOT0123
3130 ========================================================================== */
3132 #define Q6_Vw_condnac_QnVwVw(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
3133 #endif /* __HEXAGON_ARCH___ >= 60 */
3135 #if __HVX_ARCH__ >= 60
3136 /* ==========================================================================
3137 Assembly Syntax: if (Qv4) Vx32.w-=Vu32.w
3138 C Intrinsic Prototype: HVX_Vector Q6_Vw_condnac_QVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
3139 Instruction Type: CVI_VA
3140 Execution Slots: SLOT0123
3141 ========================================================================== */
3143 #define Q6_Vw_condnac_QVwVw(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
3144 #endif /* __HEXAGON_ARCH___ >= 60 */
3146 #if __HVX_ARCH__ >= 60
3147 /* ==========================================================================
3148 Assembly Syntax: Vd32.w=vsub(Vu32.w,Vv32.w):sat
3149 C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
3150 Instruction Type: CVI_VA
3151 Execution Slots: SLOT0123
3152 ========================================================================== */
3154 #define Q6_Vw_vsub_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwsat)(Vu,Vv)
3155 #endif /* __HEXAGON_ARCH___ >= 60 */
3157 #if __HVX_ARCH__ >= 60
3158 /* ==========================================================================
3159 Assembly Syntax: Vdd32.w=vsub(Vuu32.w,Vvv32.w):sat
3160 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_WwWw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3161 Instruction Type: CVI_VA_DV
3162 Execution Slots: SLOT0123
3163 ========================================================================== */
3165 #define Q6_Ww_vsub_WwWw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwsat_dv)(Vuu,Vvv)
3166 #endif /* __HEXAGON_ARCH___ >= 60 */
3168 #if __HVX_ARCH__ >= 60
3169 /* ==========================================================================
3170 Assembly Syntax: Vdd32=vswap(Qt4,Vu32,Vv32)
3171 C Intrinsic Prototype: HVX_VectorPair Q6_W_vswap_QVV(HVX_VectorPred Qt, HVX_Vector Vu, HVX_Vector Vv)
3172 Instruction Type: CVI_VA_DV
3173 Execution Slots: SLOT0123
3174 ========================================================================== */
3176 #define Q6_W_vswap_QVV(Qt,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vswap)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1),Vu,Vv)
3177 #endif /* __HEXAGON_ARCH___ >= 60 */
3179 #if __HVX_ARCH__ >= 60
3180 /* ==========================================================================
3181 Assembly Syntax: Vdd32.h=vtmpy(Vuu32.b,Rt32.b)
3182 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpy_WbRb(HVX_VectorPair Vuu, Word32 Rt)
3183 Instruction Type: CVI_VX_DV
3184 Execution Slots: SLOT23
3185 ========================================================================== */
3187 #define Q6_Wh_vtmpy_WbRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyb)(Vuu,Rt)
3188 #endif /* __HEXAGON_ARCH___ >= 60 */
3190 #if __HVX_ARCH__ >= 60
3191 /* ==========================================================================
3192 Assembly Syntax: Vxx32.h+=vtmpy(Vuu32.b,Rt32.b)
3193 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpyacc_WhWbRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3194 Instruction Type: CVI_VX_DV
3195 Execution Slots: SLOT23
3196 ========================================================================== */
3198 #define Q6_Wh_vtmpyacc_WhWbRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyb_acc)(Vxx,Vuu,Rt)
3199 #endif /* __HEXAGON_ARCH___ >= 60 */
3201 #if __HVX_ARCH__ >= 60
3202 /* ==========================================================================
3203 Assembly Syntax: Vdd32.h=vtmpy(Vuu32.ub,Rt32.b)
3204 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpy_WubRb(HVX_VectorPair Vuu, Word32 Rt)
3205 Instruction Type: CVI_VX_DV
3206 Execution Slots: SLOT23
3207 ========================================================================== */
3209 #define Q6_Wh_vtmpy_WubRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpybus)(Vuu,Rt)
3210 #endif /* __HEXAGON_ARCH___ >= 60 */
3212 #if __HVX_ARCH__ >= 60
3213 /* ==========================================================================
3214 Assembly Syntax: Vxx32.h+=vtmpy(Vuu32.ub,Rt32.b)
3215 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpyacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3216 Instruction Type: CVI_VX_DV
3217 Execution Slots: SLOT23
3218 ========================================================================== */
3220 #define Q6_Wh_vtmpyacc_WhWubRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpybus_acc)(Vxx,Vuu,Rt)
3221 #endif /* __HEXAGON_ARCH___ >= 60 */
3223 #if __HVX_ARCH__ >= 60
3224 /* ==========================================================================
3225 Assembly Syntax: Vdd32.w=vtmpy(Vuu32.h,Rt32.b)
3226 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vtmpy_WhRb(HVX_VectorPair Vuu, Word32 Rt)
3227 Instruction Type: CVI_VX_DV
3228 Execution Slots: SLOT23
3229 ========================================================================== */
3231 #define Q6_Ww_vtmpy_WhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyhb)(Vuu,Rt)
3232 #endif /* __HEXAGON_ARCH___ >= 60 */
3234 #if __HVX_ARCH__ >= 60
3235 /* ==========================================================================
3236 Assembly Syntax: Vxx32.w+=vtmpy(Vuu32.h,Rt32.b)
3237 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vtmpyacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3238 Instruction Type: CVI_VX_DV
3239 Execution Slots: SLOT23
3240 ========================================================================== */
3242 #define Q6_Ww_vtmpyacc_WwWhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyhb_acc)(Vxx,Vuu,Rt)
3243 #endif /* __HEXAGON_ARCH___ >= 60 */
3245 #if __HVX_ARCH__ >= 60
3246 /* ==========================================================================
3247 Assembly Syntax: Vdd32.h=vunpack(Vu32.b)
3248 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vunpack_Vb(HVX_Vector Vu)
3249 Instruction Type: CVI_VP_VS
3250 Execution Slots: SLOT0123
3251 ========================================================================== */
3253 #define Q6_Wh_vunpack_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackb)(Vu)
3254 #endif /* __HEXAGON_ARCH___ >= 60 */
3256 #if __HVX_ARCH__ >= 60
3257 /* ==========================================================================
3258 Assembly Syntax: Vdd32.w=vunpack(Vu32.h)
3259 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vunpack_Vh(HVX_Vector Vu)
3260 Instruction Type: CVI_VP_VS
3261 Execution Slots: SLOT0123
3262 ========================================================================== */
3264 #define Q6_Ww_vunpack_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackh)(Vu)
3265 #endif /* __HEXAGON_ARCH___ >= 60 */
3267 #if __HVX_ARCH__ >= 60
3268 /* ==========================================================================
3269 Assembly Syntax: Vxx32.h|=vunpacko(Vu32.b)
3270 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vunpackoor_WhVb(HVX_VectorPair Vxx, HVX_Vector Vu)
3271 Instruction Type: CVI_VP_VS
3272 Execution Slots: SLOT0123
3273 ========================================================================== */
3275 #define Q6_Wh_vunpackoor_WhVb(Vxx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackob)(Vxx,Vu)
3276 #endif /* __HEXAGON_ARCH___ >= 60 */
3278 #if __HVX_ARCH__ >= 60
3279 /* ==========================================================================
3280 Assembly Syntax: Vxx32.w|=vunpacko(Vu32.h)
3281 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vunpackoor_WwVh(HVX_VectorPair Vxx, HVX_Vector Vu)
3282 Instruction Type: CVI_VP_VS
3283 Execution Slots: SLOT0123
3284 ========================================================================== */
3286 #define Q6_Ww_vunpackoor_WwVh(Vxx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackoh)(Vxx,Vu)
3287 #endif /* __HEXAGON_ARCH___ >= 60 */
3289 #if __HVX_ARCH__ >= 60
3290 /* ==========================================================================
3291 Assembly Syntax: Vdd32.uh=vunpack(Vu32.ub)
3292 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vunpack_Vub(HVX_Vector Vu)
3293 Instruction Type: CVI_VP_VS
3294 Execution Slots: SLOT0123
3295 ========================================================================== */
3297 #define Q6_Wuh_vunpack_Vub(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackub)(Vu)
3298 #endif /* __HEXAGON_ARCH___ >= 60 */
3300 #if __HVX_ARCH__ >= 60
3301 /* ==========================================================================
3302 Assembly Syntax: Vdd32.uw=vunpack(Vu32.uh)
3303 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vunpack_Vuh(HVX_Vector Vu)
3304 Instruction Type: CVI_VP_VS
3305 Execution Slots: SLOT0123
3306 ========================================================================== */
3308 #define Q6_Wuw_vunpack_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackuh)(Vu)
3309 #endif /* __HEXAGON_ARCH___ >= 60 */
3311 #if __HVX_ARCH__ >= 60
3312 /* ==========================================================================
3313 Assembly Syntax: Vd32=vxor(Vu32,Vv32)
3314 C Intrinsic Prototype: HVX_Vector Q6_V_vxor_VV(HVX_Vector Vu, HVX_Vector Vv)
3315 Instruction Type: CVI_VA
3316 Execution Slots: SLOT0123
3317 ========================================================================== */
3319 #define Q6_V_vxor_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vxor)(Vu,Vv)
3320 #endif /* __HEXAGON_ARCH___ >= 60 */
3322 #if __HVX_ARCH__ >= 60
3323 /* ==========================================================================
3324 Assembly Syntax: Vdd32.uh=vzxt(Vu32.ub)
3325 C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vzxt_Vub(HVX_Vector Vu)
3326 Instruction Type: CVI_VA_DV
3327 Execution Slots: SLOT0123
3328 ========================================================================== */
3330 #define Q6_Wuh_vzxt_Vub(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vzb)(Vu)
3331 #endif /* __HEXAGON_ARCH___ >= 60 */
3333 #if __HVX_ARCH__ >= 60
3334 /* ==========================================================================
3335 Assembly Syntax: Vdd32.uw=vzxt(Vu32.uh)
3336 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vzxt_Vuh(HVX_Vector Vu)
3337 Instruction Type: CVI_VA_DV
3338 Execution Slots: SLOT0123
3339 ========================================================================== */
3341 #define Q6_Wuw_vzxt_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vzh)(Vu)
3342 #endif /* __HEXAGON_ARCH___ >= 60 */
3344 #if __HVX_ARCH__ >= 62
3345 /* ==========================================================================
3346 Assembly Syntax: Vd32.b=vsplat(Rt32)
3347 C Intrinsic Prototype: HVX_Vector Q6_Vb_vsplat_R(Word32 Rt)
3348 Instruction Type: CVI_VX_LATE
3349 Execution Slots: SLOT23
3350 ========================================================================== */
3352 #define Q6_Vb_vsplat_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplatb)(Rt)
3353 #endif /* __HEXAGON_ARCH___ >= 62 */
3355 #if __HVX_ARCH__ >= 62
3356 /* ==========================================================================
3357 Assembly Syntax: Vd32.h=vsplat(Rt32)
3358 C Intrinsic Prototype: HVX_Vector Q6_Vh_vsplat_R(Word32 Rt)
3359 Instruction Type: CVI_VX_LATE
3360 Execution Slots: SLOT23
3361 ========================================================================== */
3363 #define Q6_Vh_vsplat_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplath)(Rt)
3364 #endif /* __HEXAGON_ARCH___ >= 62 */
3366 #if __HVX_ARCH__ >= 62
3367 /* ==========================================================================
3368 Assembly Syntax: Qd4=vsetq2(Rt32)
3369 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vsetq2_R(Word32 Rt)
3370 Instruction Type: CVI_VP
3371 Execution Slots: SLOT0123
3372 ========================================================================== */
3374 #define Q6_Q_vsetq2_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_scalar2v2)(Rt)),-1)
3375 #endif /* __HEXAGON_ARCH___ >= 62 */
3377 #if __HVX_ARCH__ >= 62
3378 /* ==========================================================================
3379 Assembly Syntax: Qd4.b=vshuffe(Qs4.h,Qt4.h)
3380 C Intrinsic Prototype: HVX_VectorPred Q6_Qb_vshuffe_QhQh(HVX_VectorPred Qs, HVX_VectorPred Qt)
3381 Instruction Type: CVI_VA_DV
3382 Execution Slots: SLOT0123
3383 ========================================================================== */
3385 #define Q6_Qb_vshuffe_QhQh(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_shuffeqh)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
3386 #endif /* __HEXAGON_ARCH___ >= 62 */
3388 #if __HVX_ARCH__ >= 62
3389 /* ==========================================================================
3390 Assembly Syntax: Qd4.h=vshuffe(Qs4.w,Qt4.w)
3391 C Intrinsic Prototype: HVX_VectorPred Q6_Qh_vshuffe_QwQw(HVX_VectorPred Qs, HVX_VectorPred Qt)
3392 Instruction Type: CVI_VA_DV
3393 Execution Slots: SLOT0123
3394 ========================================================================== */
3396 #define Q6_Qh_vshuffe_QwQw(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_shuffeqw)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
3397 #endif /* __HEXAGON_ARCH___ >= 62 */
3399 #if __HVX_ARCH__ >= 62
3400 /* ==========================================================================
3401 Assembly Syntax: Vd32.b=vadd(Vu32.b,Vv32.b):sat
3402 C Intrinsic Prototype: HVX_Vector Q6_Vb_vadd_VbVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3403 Instruction Type: CVI_VA
3404 Execution Slots: SLOT0123
3405 ========================================================================== */
3407 #define Q6_Vb_vadd_VbVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbsat)(Vu,Vv)
3408 #endif /* __HEXAGON_ARCH___ >= 62 */
3410 #if __HVX_ARCH__ >= 62
3411 /* ==========================================================================
3412 Assembly Syntax: Vdd32.b=vadd(Vuu32.b,Vvv32.b):sat
3413 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vadd_WbWb_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3414 Instruction Type: CVI_VA_DV
3415 Execution Slots: SLOT0123
3416 ========================================================================== */
3418 #define Q6_Wb_vadd_WbWb_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbsat_dv)(Vuu,Vvv)
3419 #endif /* __HEXAGON_ARCH___ >= 62 */
3421 #if __HVX_ARCH__ >= 62
3422 /* ==========================================================================
3423 Assembly Syntax: Vd32.w=vadd(Vu32.w,Vv32.w,Qx4):carry
3424 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVwQ_carry(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred* Qx)
3425 Instruction Type: CVI_VA
3426 Execution Slots: SLOT0123
3427 ========================================================================== */
3429 #define Q6_Vw_vadd_VwVwQ_carry(Vu,Vv,Qx) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddcarry)(Vu,Vv,Qx)
3430 #endif /* __HEXAGON_ARCH___ >= 62 */
3432 #if __HVX_ARCH__ >= 62
3433 /* ==========================================================================
3434 Assembly Syntax: Vd32.h=vadd(vclb(Vu32.h),Vv32.h)
3435 C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_vclb_VhVh(HVX_Vector Vu, HVX_Vector Vv)
3436 Instruction Type: CVI_VS
3437 Execution Slots: SLOT0123
3438 ========================================================================== */
3440 #define Q6_Vh_vadd_vclb_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddclbh)(Vu,Vv)
3441 #endif /* __HEXAGON_ARCH___ >= 62 */
3443 #if __HVX_ARCH__ >= 62
3444 /* ==========================================================================
3445 Assembly Syntax: Vd32.w=vadd(vclb(Vu32.w),Vv32.w)
3446 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_vclb_VwVw(HVX_Vector Vu, HVX_Vector Vv)
3447 Instruction Type: CVI_VS
3448 Execution Slots: SLOT0123
3449 ========================================================================== */
3451 #define Q6_Vw_vadd_vclb_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddclbw)(Vu,Vv)
3452 #endif /* __HEXAGON_ARCH___ >= 62 */
3454 #if __HVX_ARCH__ >= 62
3455 /* ==========================================================================
3456 Assembly Syntax: Vxx32.w+=vadd(Vu32.h,Vv32.h)
3457 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vaddacc_WwVhVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3458 Instruction Type: CVI_VX_DV
3459 Execution Slots: SLOT23
3460 ========================================================================== */
3462 #define Q6_Ww_vaddacc_WwVhVh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhw_acc)(Vxx,Vu,Vv)
3463 #endif /* __HEXAGON_ARCH___ >= 62 */
3465 #if __HVX_ARCH__ >= 62
3466 /* ==========================================================================
3467 Assembly Syntax: Vxx32.h+=vadd(Vu32.ub,Vv32.ub)
3468 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vaddacc_WhVubVub(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3469 Instruction Type: CVI_VX_DV
3470 Execution Slots: SLOT23
3471 ========================================================================== */
3473 #define Q6_Wh_vaddacc_WhVubVub(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubh_acc)(Vxx,Vu,Vv)
3474 #endif /* __HEXAGON_ARCH___ >= 62 */
3476 #if __HVX_ARCH__ >= 62
3477 /* ==========================================================================
3478 Assembly Syntax: Vd32.ub=vadd(Vu32.ub,Vv32.b):sat
3479 C Intrinsic Prototype: HVX_Vector Q6_Vub_vadd_VubVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3480 Instruction Type: CVI_VA
3481 Execution Slots: SLOT0123
3482 ========================================================================== */
3484 #define Q6_Vub_vadd_VubVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddububb_sat)(Vu,Vv)
3485 #endif /* __HEXAGON_ARCH___ >= 62 */
3487 #if __HVX_ARCH__ >= 62
3488 /* ==========================================================================
3489 Assembly Syntax: Vxx32.w+=vadd(Vu32.uh,Vv32.uh)
3490 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vaddacc_WwVuhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3491 Instruction Type: CVI_VX_DV
3492 Execution Slots: SLOT23
3493 ========================================================================== */
3495 #define Q6_Ww_vaddacc_WwVuhVuh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhw_acc)(Vxx,Vu,Vv)
3496 #endif /* __HEXAGON_ARCH___ >= 62 */
3498 #if __HVX_ARCH__ >= 62
3499 /* ==========================================================================
3500 Assembly Syntax: Vd32.uw=vadd(Vu32.uw,Vv32.uw):sat
3501 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vadd_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3502 Instruction Type: CVI_VA
3503 Execution Slots: SLOT0123
3504 ========================================================================== */
3506 #define Q6_Vuw_vadd_VuwVuw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduwsat)(Vu,Vv)
3507 #endif /* __HEXAGON_ARCH___ >= 62 */
3509 #if __HVX_ARCH__ >= 62
3510 /* ==========================================================================
3511 Assembly Syntax: Vdd32.uw=vadd(Vuu32.uw,Vvv32.uw):sat
3512 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vadd_WuwWuw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3513 Instruction Type: CVI_VA_DV
3514 Execution Slots: SLOT0123
3515 ========================================================================== */
3517 #define Q6_Wuw_vadd_WuwWuw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduwsat_dv)(Vuu,Vvv)
3518 #endif /* __HEXAGON_ARCH___ >= 62 */
3520 #if __HVX_ARCH__ >= 62
3521 /* ==========================================================================
3522 Assembly Syntax: Vd32=vand(!Qu4,Rt32)
3523 C Intrinsic Prototype: HVX_Vector Q6_V_vand_QnR(HVX_VectorPred Qu, Word32 Rt)
3524 Instruction Type: CVI_VX_LATE
3525 Execution Slots: SLOT23
3526 ========================================================================== */
3528 #define Q6_V_vand_QnR(Qu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandnqrt)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qu),-1),Rt)
3529 #endif /* __HEXAGON_ARCH___ >= 62 */
3531 #if __HVX_ARCH__ >= 62
3532 /* ==========================================================================
3533 Assembly Syntax: Vx32|=vand(!Qu4,Rt32)
3534 C Intrinsic Prototype: HVX_Vector Q6_V_vandor_VQnR(HVX_Vector Vx, HVX_VectorPred Qu, Word32 Rt)
3535 Instruction Type: CVI_VX_LATE
3536 Execution Slots: SLOT23
3537 ========================================================================== */
3539 #define Q6_V_vandor_VQnR(Vx,Qu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandnqrt_acc)(Vx,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qu),-1),Rt)
3540 #endif /* __HEXAGON_ARCH___ >= 62 */
3542 #if __HVX_ARCH__ >= 62
3543 /* ==========================================================================
3544 Assembly Syntax: Vd32=vand(!Qv4,Vu32)
3545 C Intrinsic Prototype: HVX_Vector Q6_V_vand_QnV(HVX_VectorPred Qv, HVX_Vector Vu)
3546 Instruction Type: CVI_VA
3547 Execution Slots: SLOT0123
3548 ========================================================================== */
3550 #define Q6_V_vand_QnV(Qv,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvnqv)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vu)
3551 #endif /* __HEXAGON_ARCH___ >= 62 */
3553 #if __HVX_ARCH__ >= 62
3554 /* ==========================================================================
3555 Assembly Syntax: Vd32=vand(Qv4,Vu32)
3556 C Intrinsic Prototype: HVX_Vector Q6_V_vand_QV(HVX_VectorPred Qv, HVX_Vector Vu)
3557 Instruction Type: CVI_VA
3558 Execution Slots: SLOT0123
3559 ========================================================================== */
3561 #define Q6_V_vand_QV(Qv,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvqv)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vu)
3562 #endif /* __HEXAGON_ARCH___ >= 62 */
3564 #if __HVX_ARCH__ >= 62
3565 /* ==========================================================================
3566 Assembly Syntax: Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):sat
3567 C Intrinsic Prototype: HVX_Vector Q6_Vb_vasr_VhVhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3568 Instruction Type: CVI_VS
3569 Execution Slots: SLOT0123
3570 ========================================================================== */
3572 #define Q6_Vb_vasr_VhVhR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhbsat)(Vu,Vv,Rt)
3573 #endif /* __HEXAGON_ARCH___ >= 62 */
3575 #if __HVX_ARCH__ >= 62
3576 /* ==========================================================================
3577 Assembly Syntax: Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):rnd:sat
3578 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VuwVuwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3579 Instruction Type: CVI_VS
3580 Execution Slots: SLOT0123
3581 ========================================================================== */
3583 #define Q6_Vuh_vasr_VuwVuwR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruwuhrndsat)(Vu,Vv,Rt)
3584 #endif /* __HEXAGON_ARCH___ >= 62 */
3586 #if __HVX_ARCH__ >= 62
3587 /* ==========================================================================
3588 Assembly Syntax: Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
3589 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VwVwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3590 Instruction Type: CVI_VS
3591 Execution Slots: SLOT0123
3592 ========================================================================== */
3594 #define Q6_Vuh_vasr_VwVwR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwuhrndsat)(Vu,Vv,Rt)
3595 #endif /* __HEXAGON_ARCH___ >= 62 */
3597 #if __HVX_ARCH__ >= 62
3598 /* ==========================================================================
3599 Assembly Syntax: Vd32.ub=vlsr(Vu32.ub,Rt32)
3600 C Intrinsic Prototype: HVX_Vector Q6_Vub_vlsr_VubR(HVX_Vector Vu, Word32 Rt)
3601 Instruction Type: CVI_VS
3602 Execution Slots: SLOT0123
3603 ========================================================================== */
3605 #define Q6_Vub_vlsr_VubR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrb)(Vu,Rt)
3606 #endif /* __HEXAGON_ARCH___ >= 62 */
3608 #if __HVX_ARCH__ >= 62
3609 /* ==========================================================================
3610 Assembly Syntax: Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8):nomatch
3611 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbR_nomatch(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3612 Instruction Type: CVI_VP
3613 Execution Slots: SLOT0123
3614 ========================================================================== */
3616 #define Q6_Vb_vlut32_VbVbR_nomatch(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_nm)(Vu,Vv,Rt)
3617 #endif /* __HEXAGON_ARCH___ >= 62 */
3619 #if __HVX_ARCH__ >= 62
3620 /* ==========================================================================
3621 Assembly Syntax: Vx32.b|=vlut32(Vu32.b,Vv32.b,#u3)
3622 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32or_VbVbVbI(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3623 Instruction Type: CVI_VP_VS
3624 Execution Slots: SLOT0123
3625 ========================================================================== */
3627 #define Q6_Vb_vlut32or_VbVbVbI(Vx,Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_oracci)(Vx,Vu,Vv,Iu3)
3628 #endif /* __HEXAGON_ARCH___ >= 62 */
3630 #if __HVX_ARCH__ >= 62
3631 /* ==========================================================================
3632 Assembly Syntax: Vd32.b=vlut32(Vu32.b,Vv32.b,#u3)
3633 C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3634 Instruction Type: CVI_VP
3635 Execution Slots: SLOT0123
3636 ========================================================================== */
3638 #define Q6_Vb_vlut32_VbVbI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvbi)(Vu,Vv,Iu3)
3639 #endif /* __HEXAGON_ARCH___ >= 62 */
3641 #if __HVX_ARCH__ >= 62
3642 /* ==========================================================================
3643 Assembly Syntax: Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8):nomatch
3644 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhR_nomatch(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3645 Instruction Type: CVI_VP_VS
3646 Execution Slots: SLOT0123
3647 ========================================================================== */
3649 #define Q6_Wh_vlut16_VbVhR_nomatch(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_nm)(Vu,Vv,Rt)
3650 #endif /* __HEXAGON_ARCH___ >= 62 */
3652 #if __HVX_ARCH__ >= 62
3653 /* ==========================================================================
3654 Assembly Syntax: Vxx32.h|=vlut16(Vu32.b,Vv32.h,#u3)
3655 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16or_WhVbVhI(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3656 Instruction Type: CVI_VP_VS
3657 Execution Slots: SLOT0123
3658 ========================================================================== */
3660 #define Q6_Wh_vlut16or_WhVbVhI(Vxx,Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_oracci)(Vxx,Vu,Vv,Iu3)
3661 #endif /* __HEXAGON_ARCH___ >= 62 */
3663 #if __HVX_ARCH__ >= 62
3664 /* ==========================================================================
3665 Assembly Syntax: Vdd32.h=vlut16(Vu32.b,Vv32.h,#u3)
3666 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3667 Instruction Type: CVI_VP_VS
3668 Execution Slots: SLOT0123
3669 ========================================================================== */
3671 #define Q6_Wh_vlut16_VbVhI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwhi)(Vu,Vv,Iu3)
3672 #endif /* __HEXAGON_ARCH___ >= 62 */
3674 #if __HVX_ARCH__ >= 62
3675 /* ==========================================================================
3676 Assembly Syntax: Vd32.b=vmax(Vu32.b,Vv32.b)
3677 C Intrinsic Prototype: HVX_Vector Q6_Vb_vmax_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3678 Instruction Type: CVI_VA
3679 Execution Slots: SLOT0123
3680 ========================================================================== */
3682 #define Q6_Vb_vmax_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxb)(Vu,Vv)
3683 #endif /* __HEXAGON_ARCH___ >= 62 */
3685 #if __HVX_ARCH__ >= 62
3686 /* ==========================================================================
3687 Assembly Syntax: Vd32.b=vmin(Vu32.b,Vv32.b)
3688 C Intrinsic Prototype: HVX_Vector Q6_Vb_vmin_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3689 Instruction Type: CVI_VA
3690 Execution Slots: SLOT0123
3691 ========================================================================== */
3693 #define Q6_Vb_vmin_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminb)(Vu,Vv)
3694 #endif /* __HEXAGON_ARCH___ >= 62 */
3696 #if __HVX_ARCH__ >= 62
3697 /* ==========================================================================
3698 Assembly Syntax: Vdd32.w=vmpa(Vuu32.uh,Rt32.b)
3699 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpa_WuhRb(HVX_VectorPair Vuu, Word32 Rt)
3700 Instruction Type: CVI_VX_DV
3701 Execution Slots: SLOT23
3702 ========================================================================== */
3704 #define Q6_Ww_vmpa_WuhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhb)(Vuu,Rt)
3705 #endif /* __HEXAGON_ARCH___ >= 62 */
3707 #if __HVX_ARCH__ >= 62
3708 /* ==========================================================================
3709 Assembly Syntax: Vxx32.w+=vmpa(Vuu32.uh,Rt32.b)
3710 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpaacc_WwWuhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3711 Instruction Type: CVI_VX_DV
3712 Execution Slots: SLOT23
3713 ========================================================================== */
3715 #define Q6_Ww_vmpaacc_WwWuhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhb_acc)(Vxx,Vuu,Rt)
3716 #endif /* __HEXAGON_ARCH___ >= 62 */
3718 #if __HVX_ARCH__ >= 62
3719 /* ==========================================================================
3720 Assembly Syntax: Vdd32=vmpye(Vu32.w,Vv32.uh)
3721 C Intrinsic Prototype: HVX_VectorPair Q6_W_vmpye_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
3722 Instruction Type: CVI_VX_DV
3723 Execution Slots: SLOT23
3724 ========================================================================== */
3726 #define Q6_W_vmpye_VwVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyewuh_64)(Vu,Vv)
3727 #endif /* __HEXAGON_ARCH___ >= 62 */
3729 #if __HVX_ARCH__ >= 62
3730 /* ==========================================================================
3731 Assembly Syntax: Vd32.w=vmpyi(Vu32.w,Rt32.ub)
3732 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRub(HVX_Vector Vu, Word32 Rt)
3733 Instruction Type: CVI_VX
3734 Execution Slots: SLOT23
3735 ========================================================================== */
3737 #define Q6_Vw_vmpyi_VwRub(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwub)(Vu,Rt)
3738 #endif /* __HEXAGON_ARCH___ >= 62 */
3740 #if __HVX_ARCH__ >= 62
3741 /* ==========================================================================
3742 Assembly Syntax: Vx32.w+=vmpyi(Vu32.w,Rt32.ub)
3743 C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRub(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3744 Instruction Type: CVI_VX
3745 Execution Slots: SLOT23
3746 ========================================================================== */
3748 #define Q6_Vw_vmpyiacc_VwVwRub(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwub_acc)(Vx,Vu,Rt)
3749 #endif /* __HEXAGON_ARCH___ >= 62 */
3751 #if __HVX_ARCH__ >= 62
3752 /* ==========================================================================
3753 Assembly Syntax: Vxx32+=vmpyo(Vu32.w,Vv32.h)
3754 C Intrinsic Prototype: HVX_VectorPair Q6_W_vmpyoacc_WVwVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3755 Instruction Type: CVI_VX_DV
3756 Execution Slots: SLOT23
3757 ========================================================================== */
3759 #define Q6_W_vmpyoacc_WVwVh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_64_acc)(Vxx,Vu,Vv)
3760 #endif /* __HEXAGON_ARCH___ >= 62 */
3762 #if __HVX_ARCH__ >= 62
3763 /* ==========================================================================
3764 Assembly Syntax: Vd32.ub=vround(Vu32.uh,Vv32.uh):sat
3765 C Intrinsic Prototype: HVX_Vector Q6_Vub_vround_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
3766 Instruction Type: CVI_VS
3767 Execution Slots: SLOT0123
3768 ========================================================================== */
3770 #define Q6_Vub_vround_VuhVuh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrounduhub)(Vu,Vv)
3771 #endif /* __HEXAGON_ARCH___ >= 62 */
3773 #if __HVX_ARCH__ >= 62
3774 /* ==========================================================================
3775 Assembly Syntax: Vd32.uh=vround(Vu32.uw,Vv32.uw):sat
3776 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vround_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3777 Instruction Type: CVI_VS
3778 Execution Slots: SLOT0123
3779 ========================================================================== */
3781 #define Q6_Vuh_vround_VuwVuw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrounduwuh)(Vu,Vv)
3782 #endif /* __HEXAGON_ARCH___ >= 62 */
3784 #if __HVX_ARCH__ >= 62
3785 /* ==========================================================================
3786 Assembly Syntax: Vd32.uh=vsat(Vu32.uw,Vv32.uw)
3787 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vsat_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
3788 Instruction Type: CVI_VA
3789 Execution Slots: SLOT0123
3790 ========================================================================== */
3792 #define Q6_Vuh_vsat_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatuwuh)(Vu,Vv)
3793 #endif /* __HEXAGON_ARCH___ >= 62 */
3795 #if __HVX_ARCH__ >= 62
3796 /* ==========================================================================
3797 Assembly Syntax: Vd32.b=vsub(Vu32.b,Vv32.b):sat
3798 C Intrinsic Prototype: HVX_Vector Q6_Vb_vsub_VbVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3799 Instruction Type: CVI_VA
3800 Execution Slots: SLOT0123
3801 ========================================================================== */
3803 #define Q6_Vb_vsub_VbVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbsat)(Vu,Vv)
3804 #endif /* __HEXAGON_ARCH___ >= 62 */
3806 #if __HVX_ARCH__ >= 62
3807 /* ==========================================================================
3808 Assembly Syntax: Vdd32.b=vsub(Vuu32.b,Vvv32.b):sat
3809 C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vsub_WbWb_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3810 Instruction Type: CVI_VA_DV
3811 Execution Slots: SLOT0123
3812 ========================================================================== */
3814 #define Q6_Wb_vsub_WbWb_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbsat_dv)(Vuu,Vvv)
3815 #endif /* __HEXAGON_ARCH___ >= 62 */
3817 #if __HVX_ARCH__ >= 62
3818 /* ==========================================================================
3819 Assembly Syntax: Vd32.w=vsub(Vu32.w,Vv32.w,Qx4):carry
3820 C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVwQ_carry(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred* Qx)
3821 Instruction Type: CVI_VA
3822 Execution Slots: SLOT0123
3823 ========================================================================== */
3825 #define Q6_Vw_vsub_VwVwQ_carry(Vu,Vv,Qx) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubcarry)(Vu,Vv,Qx)
3826 #endif /* __HEXAGON_ARCH___ >= 62 */
3828 #if __HVX_ARCH__ >= 62
3829 /* ==========================================================================
3830 Assembly Syntax: Vd32.ub=vsub(Vu32.ub,Vv32.b):sat
3831 C Intrinsic Prototype: HVX_Vector Q6_Vub_vsub_VubVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3832 Instruction Type: CVI_VA
3833 Execution Slots: SLOT0123
3834 ========================================================================== */
3836 #define Q6_Vub_vsub_VubVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubububb_sat)(Vu,Vv)
3837 #endif /* __HEXAGON_ARCH___ >= 62 */
3839 #if __HVX_ARCH__ >= 62
3840 /* ==========================================================================
3841 Assembly Syntax: Vd32.uw=vsub(Vu32.uw,Vv32.uw):sat
3842 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vsub_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3843 Instruction Type: CVI_VA
3844 Execution Slots: SLOT0123
3845 ========================================================================== */
3847 #define Q6_Vuw_vsub_VuwVuw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuwsat)(Vu,Vv)
3848 #endif /* __HEXAGON_ARCH___ >= 62 */
3850 #if __HVX_ARCH__ >= 62
3851 /* ==========================================================================
3852 Assembly Syntax: Vdd32.uw=vsub(Vuu32.uw,Vvv32.uw):sat
3853 C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vsub_WuwWuw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3854 Instruction Type: CVI_VA_DV
3855 Execution Slots: SLOT0123
3856 ========================================================================== */
3858 #define Q6_Wuw_vsub_WuwWuw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuwsat_dv)(Vuu,Vvv)
3859 #endif /* __HEXAGON_ARCH___ >= 62 */
3861 #if __HVX_ARCH__ >= 65
3862 /* ==========================================================================
3863 Assembly Syntax: Vd32.b=vabs(Vu32.b)
3864 C Intrinsic Prototype: HVX_Vector Q6_Vb_vabs_Vb(HVX_Vector Vu)
3865 Instruction Type: CVI_VA
3866 Execution Slots: SLOT0123
3867 ========================================================================== */
3869 #define Q6_Vb_vabs_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsb)(Vu)
3870 #endif /* __HEXAGON_ARCH___ >= 65 */
3872 #if __HVX_ARCH__ >= 65
3873 /* ==========================================================================
3874 Assembly Syntax: Vd32.b=vabs(Vu32.b):sat
3875 C Intrinsic Prototype: HVX_Vector Q6_Vb_vabs_Vb_sat(HVX_Vector Vu)
3876 Instruction Type: CVI_VA
3877 Execution Slots: SLOT0123
3878 ========================================================================== */
3880 #define Q6_Vb_vabs_Vb_sat(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsb_sat)(Vu)
3881 #endif /* __HEXAGON_ARCH___ >= 65 */
3883 #if __HVX_ARCH__ >= 65
3884 /* ==========================================================================
3885 Assembly Syntax: Vx32.h+=vasl(Vu32.h,Rt32)
3886 C Intrinsic Prototype: HVX_Vector Q6_Vh_vaslacc_VhVhR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3887 Instruction Type: CVI_VS
3888 Execution Slots: SLOT0123
3889 ========================================================================== */
3891 #define Q6_Vh_vaslacc_VhVhR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslh_acc)(Vx,Vu,Rt)
3892 #endif /* __HEXAGON_ARCH___ >= 65 */
3894 #if __HVX_ARCH__ >= 65
3895 /* ==========================================================================
3896 Assembly Syntax: Vx32.h+=vasr(Vu32.h,Rt32)
3897 C Intrinsic Prototype: HVX_Vector Q6_Vh_vasracc_VhVhR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3898 Instruction Type: CVI_VS
3899 Execution Slots: SLOT0123
3900 ========================================================================== */
3902 #define Q6_Vh_vasracc_VhVhR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrh_acc)(Vx,Vu,Rt)
3903 #endif /* __HEXAGON_ARCH___ >= 65 */
3905 #if __HVX_ARCH__ >= 65
3906 /* ==========================================================================
3907 Assembly Syntax: Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):rnd:sat
3908 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VuhVuhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3909 Instruction Type: CVI_VS
3910 Execution Slots: SLOT0123
3911 ========================================================================== */
3913 #define Q6_Vub_vasr_VuhVuhR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruhubrndsat)(Vu,Vv,Rt)
3914 #endif /* __HEXAGON_ARCH___ >= 65 */
3916 #if __HVX_ARCH__ >= 65
3917 /* ==========================================================================
3918 Assembly Syntax: Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):sat
3919 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VuhVuhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3920 Instruction Type: CVI_VS
3921 Execution Slots: SLOT0123
3922 ========================================================================== */
3924 #define Q6_Vub_vasr_VuhVuhR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruhubsat)(Vu,Vv,Rt)
3925 #endif /* __HEXAGON_ARCH___ >= 65 */
3927 #if __HVX_ARCH__ >= 65
3928 /* ==========================================================================
3929 Assembly Syntax: Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):sat
3930 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VuwVuwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3931 Instruction Type: CVI_VS
3932 Execution Slots: SLOT0123
3933 ========================================================================== */
3935 #define Q6_Vuh_vasr_VuwVuwR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruwuhsat)(Vu,Vv,Rt)
3936 #endif /* __HEXAGON_ARCH___ >= 65 */
3938 #if __HVX_ARCH__ >= 65
3939 /* ==========================================================================
3940 Assembly Syntax: Vd32.b=vavg(Vu32.b,Vv32.b)
3941 C Intrinsic Prototype: HVX_Vector Q6_Vb_vavg_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3942 Instruction Type: CVI_VA
3943 Execution Slots: SLOT0123
3944 ========================================================================== */
3946 #define Q6_Vb_vavg_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgb)(Vu,Vv)
3947 #endif /* __HEXAGON_ARCH___ >= 65 */
3949 #if __HVX_ARCH__ >= 65
3950 /* ==========================================================================
3951 Assembly Syntax: Vd32.b=vavg(Vu32.b,Vv32.b):rnd
3952 C Intrinsic Prototype: HVX_Vector Q6_Vb_vavg_VbVb_rnd(HVX_Vector Vu, HVX_Vector Vv)
3953 Instruction Type: CVI_VA
3954 Execution Slots: SLOT0123
3955 ========================================================================== */
3957 #define Q6_Vb_vavg_VbVb_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgbrnd)(Vu,Vv)
3958 #endif /* __HEXAGON_ARCH___ >= 65 */
3960 #if __HVX_ARCH__ >= 65
3961 /* ==========================================================================
3962 Assembly Syntax: Vd32.uw=vavg(Vu32.uw,Vv32.uw)
3963 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vavg_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
3964 Instruction Type: CVI_VA
3965 Execution Slots: SLOT0123
3966 ========================================================================== */
3968 #define Q6_Vuw_vavg_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguw)(Vu,Vv)
3969 #endif /* __HEXAGON_ARCH___ >= 65 */
3971 #if __HVX_ARCH__ >= 65
3972 /* ==========================================================================
3973 Assembly Syntax: Vd32.uw=vavg(Vu32.uw,Vv32.uw):rnd
3974 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vavg_VuwVuw_rnd(HVX_Vector Vu, HVX_Vector Vv)
3975 Instruction Type: CVI_VA
3976 Execution Slots: SLOT0123
3977 ========================================================================== */
3979 #define Q6_Vuw_vavg_VuwVuw_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguwrnd)(Vu,Vv)
3980 #endif /* __HEXAGON_ARCH___ >= 65 */
3982 #if __HVX_ARCH__ >= 65
3983 /* ==========================================================================
3984 Assembly Syntax: Vdd32=#0
3985 C Intrinsic Prototype: HVX_VectorPair Q6_W_vzero()
3986 Instruction Type: MAPPING
3987 Execution Slots: SLOT0123
3988 ========================================================================== */
3990 #define Q6_W_vzero() __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdd0)()
3991 #endif /* __HEXAGON_ARCH___ >= 65 */
3993 #if __HVX_ARCH__ >= 65
3994 /* ==========================================================================
3995 Assembly Syntax: vtmp.h=vgather(Rt32,Mu2,Vv32.h).h
3996 C Intrinsic Prototype: void Q6_vgather_ARMVh(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
3997 Instruction Type: CVI_GATHER
3998 Execution Slots: SLOT01
3999 ========================================================================== */
4001 #define Q6_vgather_ARMVh(Rs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermh)(Rs,Rt,Mu,Vv)
4002 #endif /* __HEXAGON_ARCH___ >= 65 */
4004 #if __HVX_ARCH__ >= 65
4005 /* ==========================================================================
4006 Assembly Syntax: if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vv32.h).h
4007 C Intrinsic Prototype: void Q6_vgather_AQRMVh(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4008 Instruction Type: CVI_GATHER
4009 Execution Slots: SLOT01
4010 ========================================================================== */
4012 #define Q6_vgather_AQRMVh(Rs,Qs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhq)(Rs,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vv)
4013 #endif /* __HEXAGON_ARCH___ >= 65 */
4015 #if __HVX_ARCH__ >= 65
4016 /* ==========================================================================
4017 Assembly Syntax: vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h
4018 C Intrinsic Prototype: void Q6_vgather_ARMWw(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv)
4019 Instruction Type: CVI_GATHER_DV
4020 Execution Slots: SLOT01
4021 ========================================================================== */
4023 #define Q6_vgather_ARMWw(Rs,Rt,Mu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhw)(Rs,Rt,Mu,Vvv)
4024 #endif /* __HEXAGON_ARCH___ >= 65 */
4026 #if __HVX_ARCH__ >= 65
4027 /* ==========================================================================
4028 Assembly Syntax: if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h
4029 C Intrinsic Prototype: void Q6_vgather_AQRMWw(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv)
4030 Instruction Type: CVI_GATHER_DV
4031 Execution Slots: SLOT01
4032 ========================================================================== */
4034 #define Q6_vgather_AQRMWw(Rs,Qs,Rt,Mu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhwq)(Rs,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vvv)
4035 #endif /* __HEXAGON_ARCH___ >= 65 */
4037 #if __HVX_ARCH__ >= 65
4038 /* ==========================================================================
4039 Assembly Syntax: vtmp.w=vgather(Rt32,Mu2,Vv32.w).w
4040 C Intrinsic Prototype: void Q6_vgather_ARMVw(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4041 Instruction Type: CVI_GATHER
4042 Execution Slots: SLOT01
4043 ========================================================================== */
4045 #define Q6_vgather_ARMVw(Rs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermw)(Rs,Rt,Mu,Vv)
4046 #endif /* __HEXAGON_ARCH___ >= 65 */
4048 #if __HVX_ARCH__ >= 65
4049 /* ==========================================================================
4050 Assembly Syntax: if (Qs4) vtmp.w=vgather(Rt32,Mu2,Vv32.w).w
4051 C Intrinsic Prototype: void Q6_vgather_AQRMVw(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4052 Instruction Type: CVI_GATHER
4053 Execution Slots: SLOT01
4054 ========================================================================== */
4056 #define Q6_vgather_AQRMVw(Rs,Qs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermwq)(Rs,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vv)
4057 #endif /* __HEXAGON_ARCH___ >= 65 */
4059 #if __HVX_ARCH__ >= 65
4060 /* ==========================================================================
4061 Assembly Syntax: Vd32.h=vlut4(Vu32.uh,Rtt32.h)
4062 C Intrinsic Prototype: HVX_Vector Q6_Vh_vlut4_VuhPh(HVX_Vector Vu, Word64 Rtt)
4063 Instruction Type: CVI_VX_DV
4064 Execution Slots: SLOT2
4065 ========================================================================== */
4067 #define Q6_Vh_vlut4_VuhPh(Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlut4)(Vu,Rtt)
4068 #endif /* __HEXAGON_ARCH___ >= 65 */
4070 #if __HVX_ARCH__ >= 65
4071 /* ==========================================================================
4072 Assembly Syntax: Vdd32.h=vmpa(Vuu32.ub,Rt32.ub)
4073 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubRub(HVX_VectorPair Vuu, Word32 Rt)
4074 Instruction Type: CVI_VX_DV
4075 Execution Slots: SLOT23
4076 ========================================================================== */
4078 #define Q6_Wh_vmpa_WubRub(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuu)(Vuu,Rt)
4079 #endif /* __HEXAGON_ARCH___ >= 65 */
4081 #if __HVX_ARCH__ >= 65
4082 /* ==========================================================================
4083 Assembly Syntax: Vxx32.h+=vmpa(Vuu32.ub,Rt32.ub)
4084 C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpaacc_WhWubRub(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
4085 Instruction Type: CVI_VX_DV
4086 Execution Slots: SLOT23
4087 ========================================================================== */
4089 #define Q6_Wh_vmpaacc_WhWubRub(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuu_acc)(Vxx,Vuu,Rt)
4090 #endif /* __HEXAGON_ARCH___ >= 65 */
4092 #if __HVX_ARCH__ >= 65
4093 /* ==========================================================================
4094 Assembly Syntax: Vx32.h=vmpa(Vx32.h,Vu32.h,Rtt32.h):sat
4095 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpa_VhVhVhPh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4096 Instruction Type: CVI_VX_DV
4097 Execution Slots: SLOT2
4098 ========================================================================== */
4100 #define Q6_Vh_vmpa_VhVhVhPh_sat(Vx,Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahhsat)(Vx,Vu,Rtt)
4101 #endif /* __HEXAGON_ARCH___ >= 65 */
4103 #if __HVX_ARCH__ >= 65
4104 /* ==========================================================================
4105 Assembly Syntax: Vx32.h=vmpa(Vx32.h,Vu32.uh,Rtt32.uh):sat
4106 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpa_VhVhVuhPuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4107 Instruction Type: CVI_VX_DV
4108 Execution Slots: SLOT2
4109 ========================================================================== */
4111 #define Q6_Vh_vmpa_VhVhVuhPuh_sat(Vx,Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhuhsat)(Vx,Vu,Rtt)
4112 #endif /* __HEXAGON_ARCH___ >= 65 */
4114 #if __HVX_ARCH__ >= 65
4115 /* ==========================================================================
4116 Assembly Syntax: Vx32.h=vmps(Vx32.h,Vu32.uh,Rtt32.uh):sat
4117 C Intrinsic Prototype: HVX_Vector Q6_Vh_vmps_VhVhVuhPuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4118 Instruction Type: CVI_VX_DV
4119 Execution Slots: SLOT2
4120 ========================================================================== */
4122 #define Q6_Vh_vmps_VhVhVuhPuh_sat(Vx,Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpsuhuhsat)(Vx,Vu,Rtt)
4123 #endif /* __HEXAGON_ARCH___ >= 65 */
4125 #if __HVX_ARCH__ >= 65
4126 /* ==========================================================================
4127 Assembly Syntax: Vxx32.w+=vmpy(Vu32.h,Rt32.h)
4128 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhRh(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
4129 Instruction Type: CVI_VX_DV
4130 Execution Slots: SLOT23
4131 ========================================================================== */
4133 #define Q6_Ww_vmpyacc_WwVhRh(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyh_acc)(Vxx,Vu,Rt)
4134 #endif /* __HEXAGON_ARCH___ >= 65 */
4136 #if __HVX_ARCH__ >= 65
4137 /* ==========================================================================
4138 Assembly Syntax: Vd32.uw=vmpye(Vu32.uh,Rt32.uh)
4139 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vmpye_VuhRuh(HVX_Vector Vu, Word32 Rt)
4140 Instruction Type: CVI_VX
4141 Execution Slots: SLOT23
4142 ========================================================================== */
4144 #define Q6_Vuw_vmpye_VuhRuh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhe)(Vu,Rt)
4145 #endif /* __HEXAGON_ARCH___ >= 65 */
4147 #if __HVX_ARCH__ >= 65
4148 /* ==========================================================================
4149 Assembly Syntax: Vx32.uw+=vmpye(Vu32.uh,Rt32.uh)
4150 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vmpyeacc_VuwVuhRuh(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
4151 Instruction Type: CVI_VX
4152 Execution Slots: SLOT23
4153 ========================================================================== */
4155 #define Q6_Vuw_vmpyeacc_VuwVuhRuh(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhe_acc)(Vx,Vu,Rt)
4156 #endif /* __HEXAGON_ARCH___ >= 65 */
4158 #if __HVX_ARCH__ >= 65
4159 /* ==========================================================================
4160 Assembly Syntax: Vd32.b=vnavg(Vu32.b,Vv32.b)
4161 C Intrinsic Prototype: HVX_Vector Q6_Vb_vnavg_VbVb(HVX_Vector Vu, HVX_Vector Vv)
4162 Instruction Type: CVI_VA
4163 Execution Slots: SLOT0123
4164 ========================================================================== */
4166 #define Q6_Vb_vnavg_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgb)(Vu,Vv)
4167 #endif /* __HEXAGON_ARCH___ >= 65 */
4169 #if __HVX_ARCH__ >= 65
4170 /* ==========================================================================
4171 Assembly Syntax: Vd32.b=prefixsum(Qv4)
4172 C Intrinsic Prototype: HVX_Vector Q6_Vb_prefixsum_Q(HVX_VectorPred Qv)
4173 Instruction Type: CVI_VS
4174 Execution Slots: SLOT0123
4175 ========================================================================== */
4177 #define Q6_Vb_prefixsum_Q(Qv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqb)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1))
4178 #endif /* __HEXAGON_ARCH___ >= 65 */
4180 #if __HVX_ARCH__ >= 65
4181 /* ==========================================================================
4182 Assembly Syntax: Vd32.h=prefixsum(Qv4)
4183 C Intrinsic Prototype: HVX_Vector Q6_Vh_prefixsum_Q(HVX_VectorPred Qv)
4184 Instruction Type: CVI_VS
4185 Execution Slots: SLOT0123
4186 ========================================================================== */
4188 #define Q6_Vh_prefixsum_Q(Qv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqh)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1))
4189 #endif /* __HEXAGON_ARCH___ >= 65 */
4191 #if __HVX_ARCH__ >= 65
4192 /* ==========================================================================
4193 Assembly Syntax: Vd32.w=prefixsum(Qv4)
4194 C Intrinsic Prototype: HVX_Vector Q6_Vw_prefixsum_Q(HVX_VectorPred Qv)
4195 Instruction Type: CVI_VS
4196 Execution Slots: SLOT0123
4197 ========================================================================== */
4199 #define Q6_Vw_prefixsum_Q(Qv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqw)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1))
4200 #endif /* __HEXAGON_ARCH___ >= 65 */
4202 #if __HVX_ARCH__ >= 65
4203 /* ==========================================================================
4204 Assembly Syntax: vscatter(Rt32,Mu2,Vv32.h).h=Vw32
4205 C Intrinsic Prototype: void Q6_vscatter_RMVhV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4206 Instruction Type: CVI_SCATTER
4207 Execution Slots: SLOT0
4208 ========================================================================== */
4210 #define Q6_vscatter_RMVhV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermh)(Rt,Mu,Vv,Vw)
4211 #endif /* __HEXAGON_ARCH___ >= 65 */
4213 #if __HVX_ARCH__ >= 65
4214 /* ==========================================================================
4215 Assembly Syntax: vscatter(Rt32,Mu2,Vv32.h).h+=Vw32
4216 C Intrinsic Prototype: void Q6_vscatteracc_RMVhV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4217 Instruction Type: CVI_SCATTER
4218 Execution Slots: SLOT0
4219 ========================================================================== */
4221 #define Q6_vscatteracc_RMVhV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermh_add)(Rt,Mu,Vv,Vw)
4222 #endif /* __HEXAGON_ARCH___ >= 65 */
4224 #if __HVX_ARCH__ >= 65
4225 /* ==========================================================================
4226 Assembly Syntax: if (Qs4) vscatter(Rt32,Mu2,Vv32.h).h=Vw32
4227 C Intrinsic Prototype: void Q6_vscatter_QRMVhV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4228 Instruction Type: CVI_SCATTER
4229 Execution Slots: SLOT0
4230 ========================================================================== */
4232 #define Q6_vscatter_QRMVhV(Qs,Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vv,Vw)
4233 #endif /* __HEXAGON_ARCH___ >= 65 */
4235 #if __HVX_ARCH__ >= 65
4236 /* ==========================================================================
4237 Assembly Syntax: vscatter(Rt32,Mu2,Vvv32.w).h=Vw32
4238 C Intrinsic Prototype: void Q6_vscatter_RMWwV(Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4239 Instruction Type: CVI_SCATTER_DV
4240 Execution Slots: SLOT0
4241 ========================================================================== */
4243 #define Q6_vscatter_RMWwV(Rt,Mu,Vvv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhw)(Rt,Mu,Vvv,Vw)
4244 #endif /* __HEXAGON_ARCH___ >= 65 */
4246 #if __HVX_ARCH__ >= 65
4247 /* ==========================================================================
4248 Assembly Syntax: vscatter(Rt32,Mu2,Vvv32.w).h+=Vw32
4249 C Intrinsic Prototype: void Q6_vscatteracc_RMWwV(Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4250 Instruction Type: CVI_SCATTER_DV
4251 Execution Slots: SLOT0
4252 ========================================================================== */
4254 #define Q6_vscatteracc_RMWwV(Rt,Mu,Vvv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhw_add)(Rt,Mu,Vvv,Vw)
4255 #endif /* __HEXAGON_ARCH___ >= 65 */
4257 #if __HVX_ARCH__ >= 65
4258 /* ==========================================================================
4259 Assembly Syntax: if (Qs4) vscatter(Rt32,Mu2,Vvv32.w).h=Vw32
4260 C Intrinsic Prototype: void Q6_vscatter_QRMWwV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4261 Instruction Type: CVI_SCATTER_DV
4262 Execution Slots: SLOT0
4263 ========================================================================== */
4265 #define Q6_vscatter_QRMWwV(Qs,Rt,Mu,Vvv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhwq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vvv,Vw)
4266 #endif /* __HEXAGON_ARCH___ >= 65 */
4268 #if __HVX_ARCH__ >= 65
4269 /* ==========================================================================
4270 Assembly Syntax: vscatter(Rt32,Mu2,Vv32.w).w=Vw32
4271 C Intrinsic Prototype: void Q6_vscatter_RMVwV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4272 Instruction Type: CVI_SCATTER
4273 Execution Slots: SLOT0
4274 ========================================================================== */
4276 #define Q6_vscatter_RMVwV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermw)(Rt,Mu,Vv,Vw)
4277 #endif /* __HEXAGON_ARCH___ >= 65 */
4279 #if __HVX_ARCH__ >= 65
4280 /* ==========================================================================
4281 Assembly Syntax: vscatter(Rt32,Mu2,Vv32.w).w+=Vw32
4282 C Intrinsic Prototype: void Q6_vscatteracc_RMVwV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4283 Instruction Type: CVI_SCATTER
4284 Execution Slots: SLOT0
4285 ========================================================================== */
4287 #define Q6_vscatteracc_RMVwV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermw_add)(Rt,Mu,Vv,Vw)
4288 #endif /* __HEXAGON_ARCH___ >= 65 */
4290 #if __HVX_ARCH__ >= 65
4291 /* ==========================================================================
4292 Assembly Syntax: if (Qs4) vscatter(Rt32,Mu2,Vv32.w).w=Vw32
4293 C Intrinsic Prototype: void Q6_vscatter_QRMVwV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4294 Instruction Type: CVI_SCATTER
4295 Execution Slots: SLOT0
4296 ========================================================================== */
4298 #define Q6_vscatter_QRMVwV(Qs,Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermwq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vv,Vw)
4299 #endif /* __HEXAGON_ARCH___ >= 65 */
4301 #if __HVX_ARCH__ >= 66
4302 /* ==========================================================================
4303 Assembly Syntax: Vd32.w=vadd(Vu32.w,Vv32.w,Qs4):carry:sat
4304 C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVwQ_carry_sat(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred Qs)
4305 Instruction Type: CVI_VA
4306 Execution Slots: SLOT0123
4307 ========================================================================== */
4309 #define Q6_Vw_vadd_VwVwQ_carry_sat(Vu,Vv,Qs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddcarrysat)(Vu,Vv,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1))
4310 #endif /* __HEXAGON_ARCH___ >= 66 */
4312 #if __HVX_ARCH__ >= 66
4313 /* ==========================================================================
4314 Assembly Syntax: Vxx32.w=vasrinto(Vu32.w,Vv32.w)
4315 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vasrinto_WwVwVw(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
4316 Instruction Type: CVI_VP_VS
4317 Execution Slots: SLOT0123
4318 ========================================================================== */
4320 #define Q6_Ww_vasrinto_WwVwVw(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasr_into)(Vxx,Vu,Vv)
4321 #endif /* __HEXAGON_ARCH___ >= 66 */
4323 #if __HVX_ARCH__ >= 66
4324 /* ==========================================================================
4325 Assembly Syntax: Vd32.uw=vrotr(Vu32.uw,Vv32.uw)
4326 C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrotr_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
4327 Instruction Type: CVI_VS
4328 Execution Slots: SLOT0123
4329 ========================================================================== */
4331 #define Q6_Vuw_vrotr_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrotr)(Vu,Vv)
4332 #endif /* __HEXAGON_ARCH___ >= 66 */
4334 #if __HVX_ARCH__ >= 66
4335 /* ==========================================================================
4336 Assembly Syntax: Vd32.w=vsatdw(Vu32.w,Vv32.w)
4337 C Intrinsic Prototype: HVX_Vector Q6_Vw_vsatdw_VwVw(HVX_Vector Vu, HVX_Vector Vv)
4338 Instruction Type: CVI_VA
4339 Execution Slots: SLOT0123
4340 ========================================================================== */
4342 #define Q6_Vw_vsatdw_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatdw)(Vu,Vv)
4343 #endif /* __HEXAGON_ARCH___ >= 66 */
4345 #if __HVX_ARCH__ >= 68
4346 /* ==========================================================================
4347 Assembly Syntax: Vdd32.w=v6mpy(Vuu32.ub,Vvv32.b,#u2):h
4348 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpy_WubWbI_h(HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4349 Instruction Type: CVI_VX_DV
4350 Execution Slots: SLOT23
4351 ========================================================================== */
4353 #define Q6_Ww_v6mpy_WubWbI_h(Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyhubs10)(Vuu,Vvv,Iu2)
4354 #endif /* __HEXAGON_ARCH___ >= 68 */
4356 #if __HVX_ARCH__ >= 68
4357 /* ==========================================================================
4358 Assembly Syntax: Vxx32.w+=v6mpy(Vuu32.ub,Vvv32.b,#u2):h
4359 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpyacc_WwWubWbI_h(HVX_VectorPair Vxx, HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4360 Instruction Type: CVI_VX_DV
4361 Execution Slots: SLOT23
4362 ========================================================================== */
4364 #define Q6_Ww_v6mpyacc_WwWubWbI_h(Vxx,Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyhubs10_vxx)(Vxx,Vuu,Vvv,Iu2)
4365 #endif /* __HEXAGON_ARCH___ >= 68 */
4367 #if __HVX_ARCH__ >= 68
4368 /* ==========================================================================
4369 Assembly Syntax: Vdd32.w=v6mpy(Vuu32.ub,Vvv32.b,#u2):v
4370 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpy_WubWbI_v(HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4371 Instruction Type: CVI_VX_DV
4372 Execution Slots: SLOT23
4373 ========================================================================== */
4375 #define Q6_Ww_v6mpy_WubWbI_v(Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyvubs10)(Vuu,Vvv,Iu2)
4376 #endif /* __HEXAGON_ARCH___ >= 68 */
4378 #if __HVX_ARCH__ >= 68
4379 /* ==========================================================================
4380 Assembly Syntax: Vxx32.w+=v6mpy(Vuu32.ub,Vvv32.b,#u2):v
4381 C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpyacc_WwWubWbI_v(HVX_VectorPair Vxx, HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4382 Instruction Type: CVI_VX_DV
4383 Execution Slots: SLOT23
4384 ========================================================================== */
4386 #define Q6_Ww_v6mpyacc_WwWubWbI_v(Vxx,Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyvubs10_vxx)(Vxx,Vuu,Vvv,Iu2)
4387 #endif /* __HEXAGON_ARCH___ >= 68 */
4389 #if __HVX_ARCH__ >= 68
4390 /* ==========================================================================
4391 Assembly Syntax: Vd32.hf=vabs(Vu32.hf)
4392 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vabs_Vhf(HVX_Vector Vu)
4393 Instruction Type: CVI_VX_LATE
4394 Execution Slots: SLOT23
4395 ========================================================================== */
4397 #define Q6_Vhf_vabs_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabs_hf)(Vu)
4398 #endif /* __HEXAGON_ARCH___ >= 68 */
4400 #if __HVX_ARCH__ >= 68
4401 /* ==========================================================================
4402 Assembly Syntax: Vd32.sf=vabs(Vu32.sf)
4403 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vabs_Vsf(HVX_Vector Vu)
4404 Instruction Type: CVI_VX_LATE
4405 Execution Slots: SLOT23
4406 ========================================================================== */
4408 #define Q6_Vsf_vabs_Vsf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabs_sf)(Vu)
4409 #endif /* __HEXAGON_ARCH___ >= 68 */
4411 #if __HVX_ARCH__ >= 68
4412 /* ==========================================================================
4413 Assembly Syntax: Vd32.qf16=vadd(Vu32.hf,Vv32.hf)
4414 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vadd_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4415 Instruction Type: CVI_VS
4416 Execution Slots: SLOT0123
4417 ========================================================================== */
4419 #define Q6_Vqf16_vadd_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_hf)(Vu,Vv)
4420 #endif /* __HEXAGON_ARCH___ >= 68 */
4422 #if __HVX_ARCH__ >= 68
4423 /* ==========================================================================
4424 Assembly Syntax: Vd32.hf=vadd(Vu32.hf,Vv32.hf)
4425 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vadd_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4426 Instruction Type: CVI_VX
4427 Execution Slots: SLOT23
4428 ========================================================================== */
4430 #define Q6_Vhf_vadd_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_hf_hf)(Vu,Vv)
4431 #endif /* __HEXAGON_ARCH___ >= 68 */
4433 #if __HVX_ARCH__ >= 68
4434 /* ==========================================================================
4435 Assembly Syntax: Vd32.qf16=vadd(Vu32.qf16,Vv32.qf16)
4436 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vadd_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
4437 Instruction Type: CVI_VS
4438 Execution Slots: SLOT0123
4439 ========================================================================== */
4441 #define Q6_Vqf16_vadd_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf16)(Vu,Vv)
4442 #endif /* __HEXAGON_ARCH___ >= 68 */
4444 #if __HVX_ARCH__ >= 68
4445 /* ==========================================================================
4446 Assembly Syntax: Vd32.qf16=vadd(Vu32.qf16,Vv32.hf)
4447 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vadd_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
4448 Instruction Type: CVI_VS
4449 Execution Slots: SLOT0123
4450 ========================================================================== */
4452 #define Q6_Vqf16_vadd_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf16_mix)(Vu,Vv)
4453 #endif /* __HEXAGON_ARCH___ >= 68 */
4455 #if __HVX_ARCH__ >= 68
4456 /* ==========================================================================
4457 Assembly Syntax: Vd32.qf32=vadd(Vu32.qf32,Vv32.qf32)
4458 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vadd_Vqf32Vqf32(HVX_Vector Vu, HVX_Vector Vv)
4459 Instruction Type: CVI_VS
4460 Execution Slots: SLOT0123
4461 ========================================================================== */
4463 #define Q6_Vqf32_vadd_Vqf32Vqf32(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf32)(Vu,Vv)
4464 #endif /* __HEXAGON_ARCH___ >= 68 */
4466 #if __HVX_ARCH__ >= 68
4467 /* ==========================================================================
4468 Assembly Syntax: Vd32.qf32=vadd(Vu32.qf32,Vv32.sf)
4469 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vadd_Vqf32Vsf(HVX_Vector Vu, HVX_Vector Vv)
4470 Instruction Type: CVI_VS
4471 Execution Slots: SLOT0123
4472 ========================================================================== */
4474 #define Q6_Vqf32_vadd_Vqf32Vsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf32_mix)(Vu,Vv)
4475 #endif /* __HEXAGON_ARCH___ >= 68 */
4477 #if __HVX_ARCH__ >= 68
4478 /* ==========================================================================
4479 Assembly Syntax: Vd32.qf32=vadd(Vu32.sf,Vv32.sf)
4480 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vadd_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4481 Instruction Type: CVI_VS
4482 Execution Slots: SLOT0123
4483 ========================================================================== */
4485 #define Q6_Vqf32_vadd_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_sf)(Vu,Vv)
4486 #endif /* __HEXAGON_ARCH___ >= 68 */
4488 #if __HVX_ARCH__ >= 68
4489 /* ==========================================================================
4490 Assembly Syntax: Vdd32.sf=vadd(Vu32.hf,Vv32.hf)
4491 C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vadd_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4492 Instruction Type: CVI_VX_DV
4493 Execution Slots: SLOT23
4494 ========================================================================== */
4496 #define Q6_Wsf_vadd_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_sf_hf)(Vu,Vv)
4497 #endif /* __HEXAGON_ARCH___ >= 68 */
4499 #if __HVX_ARCH__ >= 68
4500 /* ==========================================================================
4501 Assembly Syntax: Vd32.sf=vadd(Vu32.sf,Vv32.sf)
4502 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vadd_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4503 Instruction Type: CVI_VX
4504 Execution Slots: SLOT23
4505 ========================================================================== */
4507 #define Q6_Vsf_vadd_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_sf_sf)(Vu,Vv)
4508 #endif /* __HEXAGON_ARCH___ >= 68 */
4510 #if __HVX_ARCH__ >= 68
4511 /* ==========================================================================
4512 Assembly Syntax: Vd32.w=vfmv(Vu32.w)
4513 C Intrinsic Prototype: HVX_Vector Q6_Vw_vfmv_Vw(HVX_Vector Vu)
4514 Instruction Type: CVI_VX_LATE
4515 Execution Slots: SLOT23
4516 ========================================================================== */
4518 #define Q6_Vw_vfmv_Vw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassign_fp)(Vu)
4519 #endif /* __HEXAGON_ARCH___ >= 68 */
4521 #if __HVX_ARCH__ >= 68
4522 /* ==========================================================================
4523 Assembly Syntax: Vd32.hf=Vu32.qf16
4524 C Intrinsic Prototype: HVX_Vector Q6_Vhf_equals_Vqf16(HVX_Vector Vu)
4525 Instruction Type: CVI_VS
4526 Execution Slots: SLOT0123
4527 ========================================================================== */
4529 #define Q6_Vhf_equals_Vqf16(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vconv_hf_qf16)(Vu)
4530 #endif /* __HEXAGON_ARCH___ >= 68 */
4532 #if __HVX_ARCH__ >= 68
4533 /* ==========================================================================
4534 Assembly Syntax: Vd32.hf=Vuu32.qf32
4535 C Intrinsic Prototype: HVX_Vector Q6_Vhf_equals_Wqf32(HVX_VectorPair Vuu)
4536 Instruction Type: CVI_VS
4537 Execution Slots: SLOT0123
4538 ========================================================================== */
4540 #define Q6_Vhf_equals_Wqf32(Vuu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vconv_hf_qf32)(Vuu)
4541 #endif /* __HEXAGON_ARCH___ >= 68 */
4543 #if __HVX_ARCH__ >= 68
4544 /* ==========================================================================
4545 Assembly Syntax: Vd32.sf=Vu32.qf32
4546 C Intrinsic Prototype: HVX_Vector Q6_Vsf_equals_Vqf32(HVX_Vector Vu)
4547 Instruction Type: CVI_VS
4548 Execution Slots: SLOT0123
4549 ========================================================================== */
4551 #define Q6_Vsf_equals_Vqf32(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vconv_sf_qf32)(Vu)
4552 #endif /* __HEXAGON_ARCH___ >= 68 */
4554 #if __HVX_ARCH__ >= 68
4555 /* ==========================================================================
4556 Assembly Syntax: Vd32.b=vcvt(Vu32.hf,Vv32.hf)
4557 C Intrinsic Prototype: HVX_Vector Q6_Vb_vcvt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4558 Instruction Type: CVI_VX
4559 Execution Slots: SLOT23
4560 ========================================================================== */
4562 #define Q6_Vb_vcvt_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_b_hf)(Vu,Vv)
4563 #endif /* __HEXAGON_ARCH___ >= 68 */
4565 #if __HVX_ARCH__ >= 68
4566 /* ==========================================================================
4567 Assembly Syntax: Vd32.h=vcvt(Vu32.hf)
4568 C Intrinsic Prototype: HVX_Vector Q6_Vh_vcvt_Vhf(HVX_Vector Vu)
4569 Instruction Type: CVI_VX
4570 Execution Slots: SLOT23
4571 ========================================================================== */
4573 #define Q6_Vh_vcvt_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_h_hf)(Vu)
4574 #endif /* __HEXAGON_ARCH___ >= 68 */
4576 #if __HVX_ARCH__ >= 68
4577 /* ==========================================================================
4578 Assembly Syntax: Vdd32.hf=vcvt(Vu32.b)
4579 C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vcvt_Vb(HVX_Vector Vu)
4580 Instruction Type: CVI_VX_DV
4581 Execution Slots: SLOT23
4582 ========================================================================== */
4584 #define Q6_Whf_vcvt_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_b)(Vu)
4585 #endif /* __HEXAGON_ARCH___ >= 68 */
4587 #if __HVX_ARCH__ >= 68
4588 /* ==========================================================================
4589 Assembly Syntax: Vd32.hf=vcvt(Vu32.h)
4590 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vcvt_Vh(HVX_Vector Vu)
4591 Instruction Type: CVI_VX
4592 Execution Slots: SLOT23
4593 ========================================================================== */
4595 #define Q6_Vhf_vcvt_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_h)(Vu)
4596 #endif /* __HEXAGON_ARCH___ >= 68 */
4598 #if __HVX_ARCH__ >= 68
4599 /* ==========================================================================
4600 Assembly Syntax: Vd32.hf=vcvt(Vu32.sf,Vv32.sf)
4601 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vcvt_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4602 Instruction Type: CVI_VX
4603 Execution Slots: SLOT23
4604 ========================================================================== */
4606 #define Q6_Vhf_vcvt_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_sf)(Vu,Vv)
4607 #endif /* __HEXAGON_ARCH___ >= 68 */
4609 #if __HVX_ARCH__ >= 68
4610 /* ==========================================================================
4611 Assembly Syntax: Vdd32.hf=vcvt(Vu32.ub)
4612 C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vcvt_Vub(HVX_Vector Vu)
4613 Instruction Type: CVI_VX_DV
4614 Execution Slots: SLOT23
4615 ========================================================================== */
4617 #define Q6_Whf_vcvt_Vub(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_ub)(Vu)
4618 #endif /* __HEXAGON_ARCH___ >= 68 */
4620 #if __HVX_ARCH__ >= 68
4621 /* ==========================================================================
4622 Assembly Syntax: Vd32.hf=vcvt(Vu32.uh)
4623 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vcvt_Vuh(HVX_Vector Vu)
4624 Instruction Type: CVI_VX
4625 Execution Slots: SLOT23
4626 ========================================================================== */
4628 #define Q6_Vhf_vcvt_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_uh)(Vu)
4629 #endif /* __HEXAGON_ARCH___ >= 68 */
4631 #if __HVX_ARCH__ >= 68
4632 /* ==========================================================================
4633 Assembly Syntax: Vdd32.sf=vcvt(Vu32.hf)
4634 C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vcvt_Vhf(HVX_Vector Vu)
4635 Instruction Type: CVI_VX_DV
4636 Execution Slots: SLOT23
4637 ========================================================================== */
4639 #define Q6_Wsf_vcvt_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_sf_hf)(Vu)
4640 #endif /* __HEXAGON_ARCH___ >= 68 */
4642 #if __HVX_ARCH__ >= 68
4643 /* ==========================================================================
4644 Assembly Syntax: Vd32.ub=vcvt(Vu32.hf,Vv32.hf)
4645 C Intrinsic Prototype: HVX_Vector Q6_Vub_vcvt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4646 Instruction Type: CVI_VX
4647 Execution Slots: SLOT23
4648 ========================================================================== */
4650 #define Q6_Vub_vcvt_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_ub_hf)(Vu,Vv)
4651 #endif /* __HEXAGON_ARCH___ >= 68 */
4653 #if __HVX_ARCH__ >= 68
4654 /* ==========================================================================
4655 Assembly Syntax: Vd32.uh=vcvt(Vu32.hf)
4656 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vcvt_Vhf(HVX_Vector Vu)
4657 Instruction Type: CVI_VX
4658 Execution Slots: SLOT23
4659 ========================================================================== */
4661 #define Q6_Vuh_vcvt_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_uh_hf)(Vu)
4662 #endif /* __HEXAGON_ARCH___ >= 68 */
4664 #if __HVX_ARCH__ >= 68
4665 /* ==========================================================================
4666 Assembly Syntax: Vd32.sf=vdmpy(Vu32.hf,Vv32.hf)
4667 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vdmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4668 Instruction Type: CVI_VX
4669 Execution Slots: SLOT23
4670 ========================================================================== */
4672 #define Q6_Vsf_vdmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpy_sf_hf)(Vu,Vv)
4673 #endif /* __HEXAGON_ARCH___ >= 68 */
4675 #if __HVX_ARCH__ >= 68
4676 /* ==========================================================================
4677 Assembly Syntax: Vx32.sf+=vdmpy(Vu32.hf,Vv32.hf)
4678 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vdmpyacc_VsfVhfVhf(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
4679 Instruction Type: CVI_VX
4680 Execution Slots: SLOT23
4681 ========================================================================== */
4683 #define Q6_Vsf_vdmpyacc_VsfVhfVhf(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpy_sf_hf_acc)(Vx,Vu,Vv)
4684 #endif /* __HEXAGON_ARCH___ >= 68 */
4686 #if __HVX_ARCH__ >= 68
4687 /* ==========================================================================
4688 Assembly Syntax: Vd32.hf=vfmax(Vu32.hf,Vv32.hf)
4689 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vfmax_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4690 Instruction Type: CVI_VX_LATE
4691 Execution Slots: SLOT23
4692 ========================================================================== */
4694 #define Q6_Vhf_vfmax_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmax_hf)(Vu,Vv)
4695 #endif /* __HEXAGON_ARCH___ >= 68 */
4697 #if __HVX_ARCH__ >= 68
4698 /* ==========================================================================
4699 Assembly Syntax: Vd32.sf=vfmax(Vu32.sf,Vv32.sf)
4700 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vfmax_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4701 Instruction Type: CVI_VX_LATE
4702 Execution Slots: SLOT23
4703 ========================================================================== */
4705 #define Q6_Vsf_vfmax_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmax_sf)(Vu,Vv)
4706 #endif /* __HEXAGON_ARCH___ >= 68 */
4708 #if __HVX_ARCH__ >= 68
4709 /* ==========================================================================
4710 Assembly Syntax: Vd32.hf=vfmin(Vu32.hf,Vv32.hf)
4711 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vfmin_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4712 Instruction Type: CVI_VX_LATE
4713 Execution Slots: SLOT23
4714 ========================================================================== */
4716 #define Q6_Vhf_vfmin_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmin_hf)(Vu,Vv)
4717 #endif /* __HEXAGON_ARCH___ >= 68 */
4719 #if __HVX_ARCH__ >= 68
4720 /* ==========================================================================
4721 Assembly Syntax: Vd32.sf=vfmin(Vu32.sf,Vv32.sf)
4722 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vfmin_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4723 Instruction Type: CVI_VX_LATE
4724 Execution Slots: SLOT23
4725 ========================================================================== */
4727 #define Q6_Vsf_vfmin_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmin_sf)(Vu,Vv)
4728 #endif /* __HEXAGON_ARCH___ >= 68 */
4730 #if __HVX_ARCH__ >= 68
4731 /* ==========================================================================
4732 Assembly Syntax: Vd32.hf=vfneg(Vu32.hf)
4733 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vfneg_Vhf(HVX_Vector Vu)
4734 Instruction Type: CVI_VX_LATE
4735 Execution Slots: SLOT23
4736 ========================================================================== */
4738 #define Q6_Vhf_vfneg_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfneg_hf)(Vu)
4739 #endif /* __HEXAGON_ARCH___ >= 68 */
4741 #if __HVX_ARCH__ >= 68
4742 /* ==========================================================================
4743 Assembly Syntax: Vd32.sf=vfneg(Vu32.sf)
4744 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vfneg_Vsf(HVX_Vector Vu)
4745 Instruction Type: CVI_VX_LATE
4746 Execution Slots: SLOT23
4747 ========================================================================== */
4749 #define Q6_Vsf_vfneg_Vsf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfneg_sf)(Vu)
4750 #endif /* __HEXAGON_ARCH___ >= 68 */
4752 #if __HVX_ARCH__ >= 68
4753 /* ==========================================================================
4754 Assembly Syntax: Qd4=vcmp.gt(Vu32.hf,Vv32.hf)
4755 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4756 Instruction Type: CVI_VA
4757 Execution Slots: SLOT0123
4758 ========================================================================== */
4760 #define Q6_Q_vcmp_gt_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgthf)(Vu,Vv)),-1)
4761 #endif /* __HEXAGON_ARCH___ >= 68 */
4763 #if __HVX_ARCH__ >= 68
4764 /* ==========================================================================
4765 Assembly Syntax: Qx4&=vcmp.gt(Vu32.hf,Vv32.hf)
4766 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4767 Instruction Type: CVI_VA
4768 Execution Slots: SLOT0123
4769 ========================================================================== */
4771 #define Q6_Q_vcmp_gtand_QVhfVhf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgthf_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4772 #endif /* __HEXAGON_ARCH___ >= 68 */
4774 #if __HVX_ARCH__ >= 68
4775 /* ==========================================================================
4776 Assembly Syntax: Qx4|=vcmp.gt(Vu32.hf,Vv32.hf)
4777 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4778 Instruction Type: CVI_VA
4779 Execution Slots: SLOT0123
4780 ========================================================================== */
4782 #define Q6_Q_vcmp_gtor_QVhfVhf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgthf_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4783 #endif /* __HEXAGON_ARCH___ >= 68 */
4785 #if __HVX_ARCH__ >= 68
4786 /* ==========================================================================
4787 Assembly Syntax: Qx4^=vcmp.gt(Vu32.hf,Vv32.hf)
4788 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4789 Instruction Type: CVI_VA
4790 Execution Slots: SLOT0123
4791 ========================================================================== */
4793 #define Q6_Q_vcmp_gtxacc_QVhfVhf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgthf_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4794 #endif /* __HEXAGON_ARCH___ >= 68 */
4796 #if __HVX_ARCH__ >= 68
4797 /* ==========================================================================
4798 Assembly Syntax: Qd4=vcmp.gt(Vu32.sf,Vv32.sf)
4799 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4800 Instruction Type: CVI_VA
4801 Execution Slots: SLOT0123
4802 ========================================================================== */
4804 #define Q6_Q_vcmp_gt_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtsf)(Vu,Vv)),-1)
4805 #endif /* __HEXAGON_ARCH___ >= 68 */
4807 #if __HVX_ARCH__ >= 68
4808 /* ==========================================================================
4809 Assembly Syntax: Qx4&=vcmp.gt(Vu32.sf,Vv32.sf)
4810 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4811 Instruction Type: CVI_VA
4812 Execution Slots: SLOT0123
4813 ========================================================================== */
4815 #define Q6_Q_vcmp_gtand_QVsfVsf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtsf_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4816 #endif /* __HEXAGON_ARCH___ >= 68 */
4818 #if __HVX_ARCH__ >= 68
4819 /* ==========================================================================
4820 Assembly Syntax: Qx4|=vcmp.gt(Vu32.sf,Vv32.sf)
4821 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4822 Instruction Type: CVI_VA
4823 Execution Slots: SLOT0123
4824 ========================================================================== */
4826 #define Q6_Q_vcmp_gtor_QVsfVsf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtsf_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4827 #endif /* __HEXAGON_ARCH___ >= 68 */
4829 #if __HVX_ARCH__ >= 68
4830 /* ==========================================================================
4831 Assembly Syntax: Qx4^=vcmp.gt(Vu32.sf,Vv32.sf)
4832 C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4833 Instruction Type: CVI_VA
4834 Execution Slots: SLOT0123
4835 ========================================================================== */
4837 #define Q6_Q_vcmp_gtxacc_QVsfVsf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtsf_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4838 #endif /* __HEXAGON_ARCH___ >= 68 */
4840 #if __HVX_ARCH__ >= 68
4841 /* ==========================================================================
4842 Assembly Syntax: Vd32.hf=vmax(Vu32.hf,Vv32.hf)
4843 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmax_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4844 Instruction Type: CVI_VA
4845 Execution Slots: SLOT0123
4846 ========================================================================== */
4848 #define Q6_Vhf_vmax_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmax_hf)(Vu,Vv)
4849 #endif /* __HEXAGON_ARCH___ >= 68 */
4851 #if __HVX_ARCH__ >= 68
4852 /* ==========================================================================
4853 Assembly Syntax: Vd32.sf=vmax(Vu32.sf,Vv32.sf)
4854 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vmax_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4855 Instruction Type: CVI_VA
4856 Execution Slots: SLOT0123
4857 ========================================================================== */
4859 #define Q6_Vsf_vmax_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmax_sf)(Vu,Vv)
4860 #endif /* __HEXAGON_ARCH___ >= 68 */
4862 #if __HVX_ARCH__ >= 68
4863 /* ==========================================================================
4864 Assembly Syntax: Vd32.hf=vmin(Vu32.hf,Vv32.hf)
4865 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmin_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4866 Instruction Type: CVI_VA
4867 Execution Slots: SLOT0123
4868 ========================================================================== */
4870 #define Q6_Vhf_vmin_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmin_hf)(Vu,Vv)
4871 #endif /* __HEXAGON_ARCH___ >= 68 */
4873 #if __HVX_ARCH__ >= 68
4874 /* ==========================================================================
4875 Assembly Syntax: Vd32.sf=vmin(Vu32.sf,Vv32.sf)
4876 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vmin_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4877 Instruction Type: CVI_VA
4878 Execution Slots: SLOT0123
4879 ========================================================================== */
4881 #define Q6_Vsf_vmin_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmin_sf)(Vu,Vv)
4882 #endif /* __HEXAGON_ARCH___ >= 68 */
4884 #if __HVX_ARCH__ >= 68
4885 /* ==========================================================================
4886 Assembly Syntax: Vd32.hf=vmpy(Vu32.hf,Vv32.hf)
4887 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4888 Instruction Type: CVI_VX
4889 Execution Slots: SLOT23
4890 ========================================================================== */
4892 #define Q6_Vhf_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_hf_hf)(Vu,Vv)
4893 #endif /* __HEXAGON_ARCH___ >= 68 */
4895 #if __HVX_ARCH__ >= 68
4896 /* ==========================================================================
4897 Assembly Syntax: Vx32.hf+=vmpy(Vu32.hf,Vv32.hf)
4898 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmpyacc_VhfVhfVhf(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
4899 Instruction Type: CVI_VX
4900 Execution Slots: SLOT23
4901 ========================================================================== */
4903 #define Q6_Vhf_vmpyacc_VhfVhfVhf(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_hf_hf_acc)(Vx,Vu,Vv)
4904 #endif /* __HEXAGON_ARCH___ >= 68 */
4906 #if __HVX_ARCH__ >= 68
4907 /* ==========================================================================
4908 Assembly Syntax: Vd32.qf16=vmpy(Vu32.qf16,Vv32.qf16)
4909 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
4910 Instruction Type: CVI_VX_DV
4911 Execution Slots: SLOT23
4912 ========================================================================== */
4914 #define Q6_Vqf16_vmpy_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf16)(Vu,Vv)
4915 #endif /* __HEXAGON_ARCH___ >= 68 */
4917 #if __HVX_ARCH__ >= 68
4918 /* ==========================================================================
4919 Assembly Syntax: Vd32.qf16=vmpy(Vu32.hf,Vv32.hf)
4920 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4921 Instruction Type: CVI_VX_DV
4922 Execution Slots: SLOT23
4923 ========================================================================== */
4925 #define Q6_Vqf16_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf16_hf)(Vu,Vv)
4926 #endif /* __HEXAGON_ARCH___ >= 68 */
4928 #if __HVX_ARCH__ >= 68
4929 /* ==========================================================================
4930 Assembly Syntax: Vd32.qf16=vmpy(Vu32.qf16,Vv32.hf)
4931 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
4932 Instruction Type: CVI_VX_DV
4933 Execution Slots: SLOT23
4934 ========================================================================== */
4936 #define Q6_Vqf16_vmpy_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf16_mix_hf)(Vu,Vv)
4937 #endif /* __HEXAGON_ARCH___ >= 68 */
4939 #if __HVX_ARCH__ >= 68
4940 /* ==========================================================================
4941 Assembly Syntax: Vd32.qf32=vmpy(Vu32.qf32,Vv32.qf32)
4942 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vmpy_Vqf32Vqf32(HVX_Vector Vu, HVX_Vector Vv)
4943 Instruction Type: CVI_VX_DV
4944 Execution Slots: SLOT23
4945 ========================================================================== */
4947 #define Q6_Vqf32_vmpy_Vqf32Vqf32(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32)(Vu,Vv)
4948 #endif /* __HEXAGON_ARCH___ >= 68 */
4950 #if __HVX_ARCH__ >= 68
4951 /* ==========================================================================
4952 Assembly Syntax: Vdd32.qf32=vmpy(Vu32.hf,Vv32.hf)
4953 C Intrinsic Prototype: HVX_VectorPair Q6_Wqf32_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4954 Instruction Type: CVI_VX_DV
4955 Execution Slots: SLOT23
4956 ========================================================================== */
4958 #define Q6_Wqf32_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_hf)(Vu,Vv)
4959 #endif /* __HEXAGON_ARCH___ >= 68 */
4961 #if __HVX_ARCH__ >= 68
4962 /* ==========================================================================
4963 Assembly Syntax: Vdd32.qf32=vmpy(Vu32.qf16,Vv32.hf)
4964 C Intrinsic Prototype: HVX_VectorPair Q6_Wqf32_vmpy_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
4965 Instruction Type: CVI_VX_DV
4966 Execution Slots: SLOT23
4967 ========================================================================== */
4969 #define Q6_Wqf32_vmpy_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_mix_hf)(Vu,Vv)
4970 #endif /* __HEXAGON_ARCH___ >= 68 */
4972 #if __HVX_ARCH__ >= 68
4973 /* ==========================================================================
4974 Assembly Syntax: Vdd32.qf32=vmpy(Vu32.qf16,Vv32.qf16)
4975 C Intrinsic Prototype: HVX_VectorPair Q6_Wqf32_vmpy_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
4976 Instruction Type: CVI_VX_DV
4977 Execution Slots: SLOT23
4978 ========================================================================== */
4980 #define Q6_Wqf32_vmpy_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_qf16)(Vu,Vv)
4981 #endif /* __HEXAGON_ARCH___ >= 68 */
4983 #if __HVX_ARCH__ >= 68
4984 /* ==========================================================================
4985 Assembly Syntax: Vd32.qf32=vmpy(Vu32.sf,Vv32.sf)
4986 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vmpy_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4987 Instruction Type: CVI_VX_DV
4988 Execution Slots: SLOT23
4989 ========================================================================== */
4991 #define Q6_Vqf32_vmpy_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_sf)(Vu,Vv)
4992 #endif /* __HEXAGON_ARCH___ >= 68 */
4994 #if __HVX_ARCH__ >= 68
4995 /* ==========================================================================
4996 Assembly Syntax: Vdd32.sf=vmpy(Vu32.hf,Vv32.hf)
4997 C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4998 Instruction Type: CVI_VX_DV
4999 Execution Slots: SLOT23
5000 ========================================================================== */
5002 #define Q6_Wsf_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_sf_hf)(Vu,Vv)
5003 #endif /* __HEXAGON_ARCH___ >= 68 */
5005 #if __HVX_ARCH__ >= 68
5006 /* ==========================================================================
5007 Assembly Syntax: Vxx32.sf+=vmpy(Vu32.hf,Vv32.hf)
5008 C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vmpyacc_WsfVhfVhf(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
5009 Instruction Type: CVI_VX_DV
5010 Execution Slots: SLOT23
5011 ========================================================================== */
5013 #define Q6_Wsf_vmpyacc_WsfVhfVhf(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_sf_hf_acc)(Vxx,Vu,Vv)
5014 #endif /* __HEXAGON_ARCH___ >= 68 */
5016 #if __HVX_ARCH__ >= 68
5017 /* ==========================================================================
5018 Assembly Syntax: Vd32.sf=vmpy(Vu32.sf,Vv32.sf)
5019 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vmpy_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5020 Instruction Type: CVI_VX_DV
5021 Execution Slots: SLOT23
5022 ========================================================================== */
5024 #define Q6_Vsf_vmpy_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_sf_sf)(Vu,Vv)
5025 #endif /* __HEXAGON_ARCH___ >= 68 */
5027 #if __HVX_ARCH__ >= 68
5028 /* ==========================================================================
5029 Assembly Syntax: Vd32.qf16=vsub(Vu32.hf,Vv32.hf)
5030 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5031 Instruction Type: CVI_VS
5032 Execution Slots: SLOT0123
5033 ========================================================================== */
5035 #define Q6_Vqf16_vsub_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_hf)(Vu,Vv)
5036 #endif /* __HEXAGON_ARCH___ >= 68 */
5038 #if __HVX_ARCH__ >= 68
5039 /* ==========================================================================
5040 Assembly Syntax: Vd32.hf=vsub(Vu32.hf,Vv32.hf)
5041 C Intrinsic Prototype: HVX_Vector Q6_Vhf_vsub_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5042 Instruction Type: CVI_VX
5043 Execution Slots: SLOT23
5044 ========================================================================== */
5046 #define Q6_Vhf_vsub_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_hf_hf)(Vu,Vv)
5047 #endif /* __HEXAGON_ARCH___ >= 68 */
5049 #if __HVX_ARCH__ >= 68
5050 /* ==========================================================================
5051 Assembly Syntax: Vd32.qf16=vsub(Vu32.qf16,Vv32.qf16)
5052 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
5053 Instruction Type: CVI_VS
5054 Execution Slots: SLOT0123
5055 ========================================================================== */
5057 #define Q6_Vqf16_vsub_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf16)(Vu,Vv)
5058 #endif /* __HEXAGON_ARCH___ >= 68 */
5060 #if __HVX_ARCH__ >= 68
5061 /* ==========================================================================
5062 Assembly Syntax: Vd32.qf16=vsub(Vu32.qf16,Vv32.hf)
5063 C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
5064 Instruction Type: CVI_VS
5065 Execution Slots: SLOT0123
5066 ========================================================================== */
5068 #define Q6_Vqf16_vsub_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf16_mix)(Vu,Vv)
5069 #endif /* __HEXAGON_ARCH___ >= 68 */
5071 #if __HVX_ARCH__ >= 68
5072 /* ==========================================================================
5073 Assembly Syntax: Vd32.qf32=vsub(Vu32.qf32,Vv32.qf32)
5074 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_Vqf32Vqf32(HVX_Vector Vu, HVX_Vector Vv)
5075 Instruction Type: CVI_VS
5076 Execution Slots: SLOT0123
5077 ========================================================================== */
5079 #define Q6_Vqf32_vsub_Vqf32Vqf32(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf32)(Vu,Vv)
5080 #endif /* __HEXAGON_ARCH___ >= 68 */
5082 #if __HVX_ARCH__ >= 68
5083 /* ==========================================================================
5084 Assembly Syntax: Vd32.qf32=vsub(Vu32.qf32,Vv32.sf)
5085 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_Vqf32Vsf(HVX_Vector Vu, HVX_Vector Vv)
5086 Instruction Type: CVI_VS
5087 Execution Slots: SLOT0123
5088 ========================================================================== */
5090 #define Q6_Vqf32_vsub_Vqf32Vsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf32_mix)(Vu,Vv)
5091 #endif /* __HEXAGON_ARCH___ >= 68 */
5093 #if __HVX_ARCH__ >= 68
5094 /* ==========================================================================
5095 Assembly Syntax: Vd32.qf32=vsub(Vu32.sf,Vv32.sf)
5096 C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5097 Instruction Type: CVI_VS
5098 Execution Slots: SLOT0123
5099 ========================================================================== */
5101 #define Q6_Vqf32_vsub_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_sf)(Vu,Vv)
5102 #endif /* __HEXAGON_ARCH___ >= 68 */
5104 #if __HVX_ARCH__ >= 68
5105 /* ==========================================================================
5106 Assembly Syntax: Vdd32.sf=vsub(Vu32.hf,Vv32.hf)
5107 C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vsub_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5108 Instruction Type: CVI_VX_DV
5109 Execution Slots: SLOT23
5110 ========================================================================== */
5112 #define Q6_Wsf_vsub_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_sf_hf)(Vu,Vv)
5113 #endif /* __HEXAGON_ARCH___ >= 68 */
5115 #if __HVX_ARCH__ >= 68
5116 /* ==========================================================================
5117 Assembly Syntax: Vd32.sf=vsub(Vu32.sf,Vv32.sf)
5118 C Intrinsic Prototype: HVX_Vector Q6_Vsf_vsub_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5119 Instruction Type: CVI_VX
5120 Execution Slots: SLOT23
5121 ========================================================================== */
5123 #define Q6_Vsf_vsub_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_sf_sf)(Vu,Vv)
5124 #endif /* __HEXAGON_ARCH___ >= 68 */
5126 #if __HVX_ARCH__ >= 69
5127 /* ==========================================================================
5128 Assembly Syntax: Vd32.ub=vasr(Vuu32.uh,Vv32.ub):rnd:sat
5129 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_WuhVub_rnd_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5130 Instruction Type: CVI_VS
5131 Execution Slots: SLOT0123
5132 ========================================================================== */
5134 #define Q6_Vub_vasr_WuhVub_rnd_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvuhubrndsat)(Vuu,Vv)
5135 #endif /* __HEXAGON_ARCH___ >= 69 */
5137 #if __HVX_ARCH__ >= 69
5138 /* ==========================================================================
5139 Assembly Syntax: Vd32.ub=vasr(Vuu32.uh,Vv32.ub):sat
5140 C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_WuhVub_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5141 Instruction Type: CVI_VS
5142 Execution Slots: SLOT0123
5143 ========================================================================== */
5145 #define Q6_Vub_vasr_WuhVub_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvuhubsat)(Vuu,Vv)
5146 #endif /* __HEXAGON_ARCH___ >= 69 */
5148 #if __HVX_ARCH__ >= 69
5149 /* ==========================================================================
5150 Assembly Syntax: Vd32.uh=vasr(Vuu32.w,Vv32.uh):rnd:sat
5151 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_WwVuh_rnd_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5152 Instruction Type: CVI_VS
5153 Execution Slots: SLOT0123
5154 ========================================================================== */
5156 #define Q6_Vuh_vasr_WwVuh_rnd_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvwuhrndsat)(Vuu,Vv)
5157 #endif /* __HEXAGON_ARCH___ >= 69 */
5159 #if __HVX_ARCH__ >= 69
5160 /* ==========================================================================
5161 Assembly Syntax: Vd32.uh=vasr(Vuu32.w,Vv32.uh):sat
5162 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_WwVuh_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5163 Instruction Type: CVI_VS
5164 Execution Slots: SLOT0123
5165 ========================================================================== */
5167 #define Q6_Vuh_vasr_WwVuh_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvwuhsat)(Vuu,Vv)
5168 #endif /* __HEXAGON_ARCH___ >= 69 */
5170 #if __HVX_ARCH__ >= 69
5171 /* ==========================================================================
5172 Assembly Syntax: Vd32.uh=vmpy(Vu32.uh,Vv32.uh):>>16
5173 C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmpy_VuhVuh_rs16(HVX_Vector Vu, HVX_Vector Vv)
5174 Instruction Type: CVI_VX
5175 Execution Slots: SLOT23
5176 ========================================================================== */
5178 #define Q6_Vuh_vmpy_VuhVuh_rs16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhvs)(Vu,Vv)
5179 #endif /* __HEXAGON_ARCH___ >= 69 */
5181 #endif /* __HVX__ */