Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===----------------------------------------------------------------------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
// Automatically generated file, do not edit!
9
//===----------------------------------------------------------------------===//
10
 
11
 
12
#ifndef _HVX_HEXAGON_PROTOS_H_
13
#define _HVX_HEXAGON_PROTOS_H_ 1
14
 
15
#ifdef __HVX__
16
#if __HVX_LENGTH__ == 128
17
#define __BUILTIN_VECTOR_WRAP(a) a ## _128B
18
#else
19
#define __BUILTIN_VECTOR_WRAP(a) a
20
#endif
21
 
22
#if __HVX_ARCH__ >= 60
23
/* ==========================================================================
24
   Assembly Syntax:       Rd32=vextract(Vu32,Rs32)
25
   C Intrinsic Prototype: Word32 Q6_R_vextract_VR(HVX_Vector Vu, Word32 Rs)
26
   Instruction Type:      LD
27
   Execution Slots:       SLOT0
28
   ========================================================================== */
29
 
30
#define Q6_R_vextract_VR(Vu,Rs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_extractw)(Vu,Rs)
31
#endif /* __HEXAGON_ARCH___ >= 60 */
32
 
33
#if __HVX_ARCH__ >= 60
34
/* ==========================================================================
35
   Assembly Syntax:       Vd32=hi(Vss32)
36
   C Intrinsic Prototype: HVX_Vector Q6_V_hi_W(HVX_VectorPair Vss)
37
   Instruction Type:      CVI_VA
38
   Execution Slots:       SLOT0123
39
   ========================================================================== */
40
 
41
#define Q6_V_hi_W(Vss) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_hi)(Vss)
42
#endif /* __HEXAGON_ARCH___ >= 60 */
43
 
44
#if __HVX_ARCH__ >= 60
45
/* ==========================================================================
46
   Assembly Syntax:       Vd32=lo(Vss32)
47
   C Intrinsic Prototype: HVX_Vector Q6_V_lo_W(HVX_VectorPair Vss)
48
   Instruction Type:      CVI_VA
49
   Execution Slots:       SLOT0123
50
   ========================================================================== */
51
 
52
#define Q6_V_lo_W(Vss) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lo)(Vss)
53
#endif /* __HEXAGON_ARCH___ >= 60 */
54
 
55
#if __HVX_ARCH__ >= 60
56
/* ==========================================================================
57
   Assembly Syntax:       Vd32=vsplat(Rt32)
58
   C Intrinsic Prototype: HVX_Vector Q6_V_vsplat_R(Word32 Rt)
59
   Instruction Type:      CVI_VX_LATE
60
   Execution Slots:       SLOT23
61
   ========================================================================== */
62
 
63
#define Q6_V_vsplat_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplatw)(Rt)
64
#endif /* __HEXAGON_ARCH___ >= 60 */
65
 
66
#if __HVX_ARCH__ >= 60
67
/* ==========================================================================
68
   Assembly Syntax:       Qd4=and(Qs4,Qt4)
69
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_and_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
70
   Instruction Type:      CVI_VA_DV
71
   Execution Slots:       SLOT0123
72
   ========================================================================== */
73
 
74
#define Q6_Q_and_QQ(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
75
#endif /* __HEXAGON_ARCH___ >= 60 */
76
 
77
#if __HVX_ARCH__ >= 60
78
/* ==========================================================================
79
   Assembly Syntax:       Qd4=and(Qs4,!Qt4)
80
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_and_QQn(HVX_VectorPred Qs, HVX_VectorPred Qt)
81
   Instruction Type:      CVI_VA_DV
82
   Execution Slots:       SLOT0123
83
   ========================================================================== */
84
 
85
#define Q6_Q_and_QQn(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_and_n)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
86
#endif /* __HEXAGON_ARCH___ >= 60 */
87
 
88
#if __HVX_ARCH__ >= 60
89
/* ==========================================================================
90
   Assembly Syntax:       Qd4=not(Qs4)
91
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_not_Q(HVX_VectorPred Qs)
92
   Instruction Type:      CVI_VA
93
   Execution Slots:       SLOT0123
94
   ========================================================================== */
95
 
96
#define Q6_Q_not_Q(Qs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_not)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1))),-1)
97
#endif /* __HEXAGON_ARCH___ >= 60 */
98
 
99
#if __HVX_ARCH__ >= 60
100
/* ==========================================================================
101
   Assembly Syntax:       Qd4=or(Qs4,Qt4)
102
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_or_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
103
   Instruction Type:      CVI_VA_DV
104
   Execution Slots:       SLOT0123
105
   ========================================================================== */
106
 
107
#define Q6_Q_or_QQ(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
108
#endif /* __HEXAGON_ARCH___ >= 60 */
109
 
110
#if __HVX_ARCH__ >= 60
111
/* ==========================================================================
112
   Assembly Syntax:       Qd4=or(Qs4,!Qt4)
113
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_or_QQn(HVX_VectorPred Qs, HVX_VectorPred Qt)
114
   Instruction Type:      CVI_VA_DV
115
   Execution Slots:       SLOT0123
116
   ========================================================================== */
117
 
118
#define Q6_Q_or_QQn(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_or_n)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
119
#endif /* __HEXAGON_ARCH___ >= 60 */
120
 
121
#if __HVX_ARCH__ >= 60
122
/* ==========================================================================
123
   Assembly Syntax:       Qd4=vsetq(Rt32)
124
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vsetq_R(Word32 Rt)
125
   Instruction Type:      CVI_VP
126
   Execution Slots:       SLOT0123
127
   ========================================================================== */
128
 
129
#define Q6_Q_vsetq_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_scalar2)(Rt)),-1)
130
#endif /* __HEXAGON_ARCH___ >= 60 */
131
 
132
#if __HVX_ARCH__ >= 60
133
/* ==========================================================================
134
   Assembly Syntax:       Qd4=xor(Qs4,Qt4)
135
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_xor_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
136
   Instruction Type:      CVI_VA_DV
137
   Execution Slots:       SLOT0123
138
   ========================================================================== */
139
 
140
#define Q6_Q_xor_QQ(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
141
#endif /* __HEXAGON_ARCH___ >= 60 */
142
 
143
#if __HVX_ARCH__ >= 60
144
/* ==========================================================================
145
   Assembly Syntax:       if (!Qv4) vmem(Rt32+#s4)=Vs32
146
   C Intrinsic Prototype: void Q6_vmem_QnRIV(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
147
   Instruction Type:      CVI_VM_ST
148
   Execution Slots:       SLOT0
149
   ========================================================================== */
150
 
151
#define Q6_vmem_QnRIV(Qv,Rt,Vs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_nqpred_ai)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Rt,Vs)
152
#endif /* __HEXAGON_ARCH___ >= 60 */
153
 
154
#if __HVX_ARCH__ >= 60
155
/* ==========================================================================
156
   Assembly Syntax:       if (!Qv4) vmem(Rt32+#s4):nt=Vs32
157
   C Intrinsic Prototype: void Q6_vmem_QnRIV_nt(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
158
   Instruction Type:      CVI_VM_ST
159
   Execution Slots:       SLOT0
160
   ========================================================================== */
161
 
162
#define Q6_vmem_QnRIV_nt(Qv,Rt,Vs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_nt_nqpred_ai)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Rt,Vs)
163
#endif /* __HEXAGON_ARCH___ >= 60 */
164
 
165
#if __HVX_ARCH__ >= 60
166
/* ==========================================================================
167
   Assembly Syntax:       if (Qv4) vmem(Rt32+#s4):nt=Vs32
168
   C Intrinsic Prototype: void Q6_vmem_QRIV_nt(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
169
   Instruction Type:      CVI_VM_ST
170
   Execution Slots:       SLOT0
171
   ========================================================================== */
172
 
173
#define Q6_vmem_QRIV_nt(Qv,Rt,Vs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_nt_qpred_ai)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Rt,Vs)
174
#endif /* __HEXAGON_ARCH___ >= 60 */
175
 
176
#if __HVX_ARCH__ >= 60
177
/* ==========================================================================
178
   Assembly Syntax:       if (Qv4) vmem(Rt32+#s4)=Vs32
179
   C Intrinsic Prototype: void Q6_vmem_QRIV(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
180
   Instruction Type:      CVI_VM_ST
181
   Execution Slots:       SLOT0
182
   ========================================================================== */
183
 
184
#define Q6_vmem_QRIV(Qv,Rt,Vs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vS32b_qpred_ai)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Rt,Vs)
185
#endif /* __HEXAGON_ARCH___ >= 60 */
186
 
187
#if __HVX_ARCH__ >= 60
188
/* ==========================================================================
189
   Assembly Syntax:       Vd32.uh=vabsdiff(Vu32.h,Vv32.h)
190
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vabsdiff_VhVh(HVX_Vector Vu, HVX_Vector Vv)
191
   Instruction Type:      CVI_VX
192
   Execution Slots:       SLOT23
193
   ========================================================================== */
194
 
195
#define Q6_Vuh_vabsdiff_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffh)(Vu,Vv)
196
#endif /* __HEXAGON_ARCH___ >= 60 */
197
 
198
#if __HVX_ARCH__ >= 60
199
/* ==========================================================================
200
   Assembly Syntax:       Vd32.ub=vabsdiff(Vu32.ub,Vv32.ub)
201
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vabsdiff_VubVub(HVX_Vector Vu, HVX_Vector Vv)
202
   Instruction Type:      CVI_VX
203
   Execution Slots:       SLOT23
204
   ========================================================================== */
205
 
206
#define Q6_Vub_vabsdiff_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffub)(Vu,Vv)
207
#endif /* __HEXAGON_ARCH___ >= 60 */
208
 
209
#if __HVX_ARCH__ >= 60
210
/* ==========================================================================
211
   Assembly Syntax:       Vd32.uh=vabsdiff(Vu32.uh,Vv32.uh)
212
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vabsdiff_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
213
   Instruction Type:      CVI_VX
214
   Execution Slots:       SLOT23
215
   ========================================================================== */
216
 
217
#define Q6_Vuh_vabsdiff_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffuh)(Vu,Vv)
218
#endif /* __HEXAGON_ARCH___ >= 60 */
219
 
220
#if __HVX_ARCH__ >= 60
221
/* ==========================================================================
222
   Assembly Syntax:       Vd32.uw=vabsdiff(Vu32.w,Vv32.w)
223
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vabsdiff_VwVw(HVX_Vector Vu, HVX_Vector Vv)
224
   Instruction Type:      CVI_VX
225
   Execution Slots:       SLOT23
226
   ========================================================================== */
227
 
228
#define Q6_Vuw_vabsdiff_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffw)(Vu,Vv)
229
#endif /* __HEXAGON_ARCH___ >= 60 */
230
 
231
#if __HVX_ARCH__ >= 60
232
/* ==========================================================================
233
   Assembly Syntax:       Vd32.h=vabs(Vu32.h)
234
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vabs_Vh(HVX_Vector Vu)
235
   Instruction Type:      CVI_VA
236
   Execution Slots:       SLOT0123
237
   ========================================================================== */
238
 
239
#define Q6_Vh_vabs_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsh)(Vu)
240
#endif /* __HEXAGON_ARCH___ >= 60 */
241
 
242
#if __HVX_ARCH__ >= 60
243
/* ==========================================================================
244
   Assembly Syntax:       Vd32.h=vabs(Vu32.h):sat
245
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vabs_Vh_sat(HVX_Vector Vu)
246
   Instruction Type:      CVI_VA
247
   Execution Slots:       SLOT0123
248
   ========================================================================== */
249
 
250
#define Q6_Vh_vabs_Vh_sat(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsh_sat)(Vu)
251
#endif /* __HEXAGON_ARCH___ >= 60 */
252
 
253
#if __HVX_ARCH__ >= 60
254
/* ==========================================================================
255
   Assembly Syntax:       Vd32.w=vabs(Vu32.w)
256
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vabs_Vw(HVX_Vector Vu)
257
   Instruction Type:      CVI_VA
258
   Execution Slots:       SLOT0123
259
   ========================================================================== */
260
 
261
#define Q6_Vw_vabs_Vw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsw)(Vu)
262
#endif /* __HEXAGON_ARCH___ >= 60 */
263
 
264
#if __HVX_ARCH__ >= 60
265
/* ==========================================================================
266
   Assembly Syntax:       Vd32.w=vabs(Vu32.w):sat
267
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vabs_Vw_sat(HVX_Vector Vu)
268
   Instruction Type:      CVI_VA
269
   Execution Slots:       SLOT0123
270
   ========================================================================== */
271
 
272
#define Q6_Vw_vabs_Vw_sat(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsw_sat)(Vu)
273
#endif /* __HEXAGON_ARCH___ >= 60 */
274
 
275
#if __HVX_ARCH__ >= 60
276
/* ==========================================================================
277
   Assembly Syntax:       Vd32.b=vadd(Vu32.b,Vv32.b)
278
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vadd_VbVb(HVX_Vector Vu, HVX_Vector Vv)
279
   Instruction Type:      CVI_VA
280
   Execution Slots:       SLOT0123
281
   ========================================================================== */
282
 
283
#define Q6_Vb_vadd_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddb)(Vu,Vv)
284
#endif /* __HEXAGON_ARCH___ >= 60 */
285
 
286
#if __HVX_ARCH__ >= 60
287
/* ==========================================================================
288
   Assembly Syntax:       Vdd32.b=vadd(Vuu32.b,Vvv32.b)
289
   C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vadd_WbWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
290
   Instruction Type:      CVI_VA_DV
291
   Execution Slots:       SLOT0123
292
   ========================================================================== */
293
 
294
#define Q6_Wb_vadd_WbWb(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddb_dv)(Vuu,Vvv)
295
#endif /* __HEXAGON_ARCH___ >= 60 */
296
 
297
#if __HVX_ARCH__ >= 60
298
/* ==========================================================================
299
   Assembly Syntax:       if (!Qv4) Vx32.b+=Vu32.b
300
   C Intrinsic Prototype: HVX_Vector Q6_Vb_condacc_QnVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
301
   Instruction Type:      CVI_VA
302
   Execution Slots:       SLOT0123
303
   ========================================================================== */
304
 
305
#define Q6_Vb_condacc_QnVbVb(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
306
#endif /* __HEXAGON_ARCH___ >= 60 */
307
 
308
#if __HVX_ARCH__ >= 60
309
/* ==========================================================================
310
   Assembly Syntax:       if (Qv4) Vx32.b+=Vu32.b
311
   C Intrinsic Prototype: HVX_Vector Q6_Vb_condacc_QVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
312
   Instruction Type:      CVI_VA
313
   Execution Slots:       SLOT0123
314
   ========================================================================== */
315
 
316
#define Q6_Vb_condacc_QVbVb(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
317
#endif /* __HEXAGON_ARCH___ >= 60 */
318
 
319
#if __HVX_ARCH__ >= 60
320
/* ==========================================================================
321
   Assembly Syntax:       Vd32.h=vadd(Vu32.h,Vv32.h)
322
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_VhVh(HVX_Vector Vu, HVX_Vector Vv)
323
   Instruction Type:      CVI_VA
324
   Execution Slots:       SLOT0123
325
   ========================================================================== */
326
 
327
#define Q6_Vh_vadd_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddh)(Vu,Vv)
328
#endif /* __HEXAGON_ARCH___ >= 60 */
329
 
330
#if __HVX_ARCH__ >= 60
331
/* ==========================================================================
332
   Assembly Syntax:       Vdd32.h=vadd(Vuu32.h,Vvv32.h)
333
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_WhWh(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
334
   Instruction Type:      CVI_VA_DV
335
   Execution Slots:       SLOT0123
336
   ========================================================================== */
337
 
338
#define Q6_Wh_vadd_WhWh(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddh_dv)(Vuu,Vvv)
339
#endif /* __HEXAGON_ARCH___ >= 60 */
340
 
341
#if __HVX_ARCH__ >= 60
342
/* ==========================================================================
343
   Assembly Syntax:       if (!Qv4) Vx32.h+=Vu32.h
344
   C Intrinsic Prototype: HVX_Vector Q6_Vh_condacc_QnVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
345
   Instruction Type:      CVI_VA
346
   Execution Slots:       SLOT0123
347
   ========================================================================== */
348
 
349
#define Q6_Vh_condacc_QnVhVh(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
350
#endif /* __HEXAGON_ARCH___ >= 60 */
351
 
352
#if __HVX_ARCH__ >= 60
353
/* ==========================================================================
354
   Assembly Syntax:       if (Qv4) Vx32.h+=Vu32.h
355
   C Intrinsic Prototype: HVX_Vector Q6_Vh_condacc_QVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
356
   Instruction Type:      CVI_VA
357
   Execution Slots:       SLOT0123
358
   ========================================================================== */
359
 
360
#define Q6_Vh_condacc_QVhVh(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
361
#endif /* __HEXAGON_ARCH___ >= 60 */
362
 
363
#if __HVX_ARCH__ >= 60
364
/* ==========================================================================
365
   Assembly Syntax:       Vd32.h=vadd(Vu32.h,Vv32.h):sat
366
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
367
   Instruction Type:      CVI_VA
368
   Execution Slots:       SLOT0123
369
   ========================================================================== */
370
 
371
#define Q6_Vh_vadd_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhsat)(Vu,Vv)
372
#endif /* __HEXAGON_ARCH___ >= 60 */
373
 
374
#if __HVX_ARCH__ >= 60
375
/* ==========================================================================
376
   Assembly Syntax:       Vdd32.h=vadd(Vuu32.h,Vvv32.h):sat
377
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_WhWh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
378
   Instruction Type:      CVI_VA_DV
379
   Execution Slots:       SLOT0123
380
   ========================================================================== */
381
 
382
#define Q6_Wh_vadd_WhWh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhsat_dv)(Vuu,Vvv)
383
#endif /* __HEXAGON_ARCH___ >= 60 */
384
 
385
#if __HVX_ARCH__ >= 60
386
/* ==========================================================================
387
   Assembly Syntax:       Vdd32.w=vadd(Vu32.h,Vv32.h)
388
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_VhVh(HVX_Vector Vu, HVX_Vector Vv)
389
   Instruction Type:      CVI_VX_DV
390
   Execution Slots:       SLOT23
391
   ========================================================================== */
392
 
393
#define Q6_Ww_vadd_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhw)(Vu,Vv)
394
#endif /* __HEXAGON_ARCH___ >= 60 */
395
 
396
#if __HVX_ARCH__ >= 60
397
/* ==========================================================================
398
   Assembly Syntax:       Vdd32.h=vadd(Vu32.ub,Vv32.ub)
399
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_VubVub(HVX_Vector Vu, HVX_Vector Vv)
400
   Instruction Type:      CVI_VX_DV
401
   Execution Slots:       SLOT23
402
   ========================================================================== */
403
 
404
#define Q6_Wh_vadd_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubh)(Vu,Vv)
405
#endif /* __HEXAGON_ARCH___ >= 60 */
406
 
407
#if __HVX_ARCH__ >= 60
408
/* ==========================================================================
409
   Assembly Syntax:       Vd32.ub=vadd(Vu32.ub,Vv32.ub):sat
410
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vadd_VubVub_sat(HVX_Vector Vu, HVX_Vector Vv)
411
   Instruction Type:      CVI_VA
412
   Execution Slots:       SLOT0123
413
   ========================================================================== */
414
 
415
#define Q6_Vub_vadd_VubVub_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubsat)(Vu,Vv)
416
#endif /* __HEXAGON_ARCH___ >= 60 */
417
 
418
#if __HVX_ARCH__ >= 60
419
/* ==========================================================================
420
   Assembly Syntax:       Vdd32.ub=vadd(Vuu32.ub,Vvv32.ub):sat
421
   C Intrinsic Prototype: HVX_VectorPair Q6_Wub_vadd_WubWub_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
422
   Instruction Type:      CVI_VA_DV
423
   Execution Slots:       SLOT0123
424
   ========================================================================== */
425
 
426
#define Q6_Wub_vadd_WubWub_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubsat_dv)(Vuu,Vvv)
427
#endif /* __HEXAGON_ARCH___ >= 60 */
428
 
429
#if __HVX_ARCH__ >= 60
430
/* ==========================================================================
431
   Assembly Syntax:       Vd32.uh=vadd(Vu32.uh,Vv32.uh):sat
432
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vadd_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
433
   Instruction Type:      CVI_VA
434
   Execution Slots:       SLOT0123
435
   ========================================================================== */
436
 
437
#define Q6_Vuh_vadd_VuhVuh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhsat)(Vu,Vv)
438
#endif /* __HEXAGON_ARCH___ >= 60 */
439
 
440
#if __HVX_ARCH__ >= 60
441
/* ==========================================================================
442
   Assembly Syntax:       Vdd32.uh=vadd(Vuu32.uh,Vvv32.uh):sat
443
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vadd_WuhWuh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
444
   Instruction Type:      CVI_VA_DV
445
   Execution Slots:       SLOT0123
446
   ========================================================================== */
447
 
448
#define Q6_Wuh_vadd_WuhWuh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhsat_dv)(Vuu,Vvv)
449
#endif /* __HEXAGON_ARCH___ >= 60 */
450
 
451
#if __HVX_ARCH__ >= 60
452
/* ==========================================================================
453
   Assembly Syntax:       Vdd32.w=vadd(Vu32.uh,Vv32.uh)
454
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
455
   Instruction Type:      CVI_VX_DV
456
   Execution Slots:       SLOT23
457
   ========================================================================== */
458
 
459
#define Q6_Ww_vadd_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhw)(Vu,Vv)
460
#endif /* __HEXAGON_ARCH___ >= 60 */
461
 
462
#if __HVX_ARCH__ >= 60
463
/* ==========================================================================
464
   Assembly Syntax:       Vd32.w=vadd(Vu32.w,Vv32.w)
465
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVw(HVX_Vector Vu, HVX_Vector Vv)
466
   Instruction Type:      CVI_VA
467
   Execution Slots:       SLOT0123
468
   ========================================================================== */
469
 
470
#define Q6_Vw_vadd_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddw)(Vu,Vv)
471
#endif /* __HEXAGON_ARCH___ >= 60 */
472
 
473
#if __HVX_ARCH__ >= 60
474
/* ==========================================================================
475
   Assembly Syntax:       Vdd32.w=vadd(Vuu32.w,Vvv32.w)
476
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_WwWw(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
477
   Instruction Type:      CVI_VA_DV
478
   Execution Slots:       SLOT0123
479
   ========================================================================== */
480
 
481
#define Q6_Ww_vadd_WwWw(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddw_dv)(Vuu,Vvv)
482
#endif /* __HEXAGON_ARCH___ >= 60 */
483
 
484
#if __HVX_ARCH__ >= 60
485
/* ==========================================================================
486
   Assembly Syntax:       if (!Qv4) Vx32.w+=Vu32.w
487
   C Intrinsic Prototype: HVX_Vector Q6_Vw_condacc_QnVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
488
   Instruction Type:      CVI_VA
489
   Execution Slots:       SLOT0123
490
   ========================================================================== */
491
 
492
#define Q6_Vw_condacc_QnVwVw(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
493
#endif /* __HEXAGON_ARCH___ >= 60 */
494
 
495
#if __HVX_ARCH__ >= 60
496
/* ==========================================================================
497
   Assembly Syntax:       if (Qv4) Vx32.w+=Vu32.w
498
   C Intrinsic Prototype: HVX_Vector Q6_Vw_condacc_QVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
499
   Instruction Type:      CVI_VA
500
   Execution Slots:       SLOT0123
501
   ========================================================================== */
502
 
503
#define Q6_Vw_condacc_QVwVw(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
504
#endif /* __HEXAGON_ARCH___ >= 60 */
505
 
506
#if __HVX_ARCH__ >= 60
507
/* ==========================================================================
508
   Assembly Syntax:       Vd32.w=vadd(Vu32.w,Vv32.w):sat
509
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
510
   Instruction Type:      CVI_VA
511
   Execution Slots:       SLOT0123
512
   ========================================================================== */
513
 
514
#define Q6_Vw_vadd_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwsat)(Vu,Vv)
515
#endif /* __HEXAGON_ARCH___ >= 60 */
516
 
517
#if __HVX_ARCH__ >= 60
518
/* ==========================================================================
519
   Assembly Syntax:       Vdd32.w=vadd(Vuu32.w,Vvv32.w):sat
520
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_WwWw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
521
   Instruction Type:      CVI_VA_DV
522
   Execution Slots:       SLOT0123
523
   ========================================================================== */
524
 
525
#define Q6_Ww_vadd_WwWw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwsat_dv)(Vuu,Vvv)
526
#endif /* __HEXAGON_ARCH___ >= 60 */
527
 
528
#if __HVX_ARCH__ >= 60
529
/* ==========================================================================
530
   Assembly Syntax:       Vd32=valign(Vu32,Vv32,Rt8)
531
   C Intrinsic Prototype: HVX_Vector Q6_V_valign_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
532
   Instruction Type:      CVI_VP
533
   Execution Slots:       SLOT0123
534
   ========================================================================== */
535
 
536
#define Q6_V_valign_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_valignb)(Vu,Vv,Rt)
537
#endif /* __HEXAGON_ARCH___ >= 60 */
538
 
539
#if __HVX_ARCH__ >= 60
540
/* ==========================================================================
541
   Assembly Syntax:       Vd32=valign(Vu32,Vv32,#u3)
542
   C Intrinsic Prototype: HVX_Vector Q6_V_valign_VVI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
543
   Instruction Type:      CVI_VP
544
   Execution Slots:       SLOT0123
545
   ========================================================================== */
546
 
547
#define Q6_V_valign_VVI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_valignbi)(Vu,Vv,Iu3)
548
#endif /* __HEXAGON_ARCH___ >= 60 */
549
 
550
#if __HVX_ARCH__ >= 60
551
/* ==========================================================================
552
   Assembly Syntax:       Vd32=vand(Vu32,Vv32)
553
   C Intrinsic Prototype: HVX_Vector Q6_V_vand_VV(HVX_Vector Vu, HVX_Vector Vv)
554
   Instruction Type:      CVI_VA
555
   Execution Slots:       SLOT0123
556
   ========================================================================== */
557
 
558
#define Q6_V_vand_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vand)(Vu,Vv)
559
#endif /* __HEXAGON_ARCH___ >= 60 */
560
 
561
#if __HVX_ARCH__ >= 60
562
/* ==========================================================================
563
   Assembly Syntax:       Vd32=vand(Qu4,Rt32)
564
   C Intrinsic Prototype: HVX_Vector Q6_V_vand_QR(HVX_VectorPred Qu, Word32 Rt)
565
   Instruction Type:      CVI_VX_LATE
566
   Execution Slots:       SLOT23
567
   ========================================================================== */
568
 
569
#define Q6_V_vand_QR(Qu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qu),-1),Rt)
570
#endif /* __HEXAGON_ARCH___ >= 60 */
571
 
572
#if __HVX_ARCH__ >= 60
573
/* ==========================================================================
574
   Assembly Syntax:       Vx32|=vand(Qu4,Rt32)
575
   C Intrinsic Prototype: HVX_Vector Q6_V_vandor_VQR(HVX_Vector Vx, HVX_VectorPred Qu, Word32 Rt)
576
   Instruction Type:      CVI_VX_LATE
577
   Execution Slots:       SLOT23
578
   ========================================================================== */
579
 
580
#define Q6_V_vandor_VQR(Vx,Qu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt_acc)(Vx,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qu),-1),Rt)
581
#endif /* __HEXAGON_ARCH___ >= 60 */
582
 
583
#if __HVX_ARCH__ >= 60
584
/* ==========================================================================
585
   Assembly Syntax:       Qd4=vand(Vu32,Rt32)
586
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vand_VR(HVX_Vector Vu, Word32 Rt)
587
   Instruction Type:      CVI_VX_LATE
588
   Execution Slots:       SLOT23
589
   ========================================================================== */
590
 
591
#define Q6_Q_vand_VR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)(Vu,Rt)),-1)
592
#endif /* __HEXAGON_ARCH___ >= 60 */
593
 
594
#if __HVX_ARCH__ >= 60
595
/* ==========================================================================
596
   Assembly Syntax:       Qx4|=vand(Vu32,Rt32)
597
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vandor_QVR(HVX_VectorPred Qx, HVX_Vector Vu, Word32 Rt)
598
   Instruction Type:      CVI_VX_LATE
599
   Execution Slots:       SLOT23
600
   ========================================================================== */
601
 
602
#define Q6_Q_vandor_QVR(Qx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt_acc)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Rt)),-1)
603
#endif /* __HEXAGON_ARCH___ >= 60 */
604
 
605
#if __HVX_ARCH__ >= 60
606
/* ==========================================================================
607
   Assembly Syntax:       Vd32.h=vasl(Vu32.h,Rt32)
608
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vasl_VhR(HVX_Vector Vu, Word32 Rt)
609
   Instruction Type:      CVI_VS
610
   Execution Slots:       SLOT0123
611
   ========================================================================== */
612
 
613
#define Q6_Vh_vasl_VhR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslh)(Vu,Rt)
614
#endif /* __HEXAGON_ARCH___ >= 60 */
615
 
616
#if __HVX_ARCH__ >= 60
617
/* ==========================================================================
618
   Assembly Syntax:       Vd32.h=vasl(Vu32.h,Vv32.h)
619
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vasl_VhVh(HVX_Vector Vu, HVX_Vector Vv)
620
   Instruction Type:      CVI_VS
621
   Execution Slots:       SLOT0123
622
   ========================================================================== */
623
 
624
#define Q6_Vh_vasl_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslhv)(Vu,Vv)
625
#endif /* __HEXAGON_ARCH___ >= 60 */
626
 
627
#if __HVX_ARCH__ >= 60
628
/* ==========================================================================
629
   Assembly Syntax:       Vd32.w=vasl(Vu32.w,Rt32)
630
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vasl_VwR(HVX_Vector Vu, Word32 Rt)
631
   Instruction Type:      CVI_VS
632
   Execution Slots:       SLOT0123
633
   ========================================================================== */
634
 
635
#define Q6_Vw_vasl_VwR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslw)(Vu,Rt)
636
#endif /* __HEXAGON_ARCH___ >= 60 */
637
 
638
#if __HVX_ARCH__ >= 60
639
/* ==========================================================================
640
   Assembly Syntax:       Vx32.w+=vasl(Vu32.w,Rt32)
641
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vaslacc_VwVwR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
642
   Instruction Type:      CVI_VS
643
   Execution Slots:       SLOT0123
644
   ========================================================================== */
645
 
646
#define Q6_Vw_vaslacc_VwVwR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslw_acc)(Vx,Vu,Rt)
647
#endif /* __HEXAGON_ARCH___ >= 60 */
648
 
649
#if __HVX_ARCH__ >= 60
650
/* ==========================================================================
651
   Assembly Syntax:       Vd32.w=vasl(Vu32.w,Vv32.w)
652
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vasl_VwVw(HVX_Vector Vu, HVX_Vector Vv)
653
   Instruction Type:      CVI_VS
654
   Execution Slots:       SLOT0123
655
   ========================================================================== */
656
 
657
#define Q6_Vw_vasl_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslwv)(Vu,Vv)
658
#endif /* __HEXAGON_ARCH___ >= 60 */
659
 
660
#if __HVX_ARCH__ >= 60
661
/* ==========================================================================
662
   Assembly Syntax:       Vd32.h=vasr(Vu32.h,Rt32)
663
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VhR(HVX_Vector Vu, Word32 Rt)
664
   Instruction Type:      CVI_VS
665
   Execution Slots:       SLOT0123
666
   ========================================================================== */
667
 
668
#define Q6_Vh_vasr_VhR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrh)(Vu,Rt)
669
#endif /* __HEXAGON_ARCH___ >= 60 */
670
 
671
#if __HVX_ARCH__ >= 60
672
/* ==========================================================================
673
   Assembly Syntax:       Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat
674
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vasr_VhVhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
675
   Instruction Type:      CVI_VS
676
   Execution Slots:       SLOT0123
677
   ========================================================================== */
678
 
679
#define Q6_Vb_vasr_VhVhR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhbrndsat)(Vu,Vv,Rt)
680
#endif /* __HEXAGON_ARCH___ >= 60 */
681
 
682
#if __HVX_ARCH__ >= 60
683
/* ==========================================================================
684
   Assembly Syntax:       Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat
685
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VhVhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
686
   Instruction Type:      CVI_VS
687
   Execution Slots:       SLOT0123
688
   ========================================================================== */
689
 
690
#define Q6_Vub_vasr_VhVhR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhubrndsat)(Vu,Vv,Rt)
691
#endif /* __HEXAGON_ARCH___ >= 60 */
692
 
693
#if __HVX_ARCH__ >= 60
694
/* ==========================================================================
695
   Assembly Syntax:       Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):sat
696
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VhVhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
697
   Instruction Type:      CVI_VS
698
   Execution Slots:       SLOT0123
699
   ========================================================================== */
700
 
701
#define Q6_Vub_vasr_VhVhR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhubsat)(Vu,Vv,Rt)
702
#endif /* __HEXAGON_ARCH___ >= 60 */
703
 
704
#if __HVX_ARCH__ >= 60
705
/* ==========================================================================
706
   Assembly Syntax:       Vd32.h=vasr(Vu32.h,Vv32.h)
707
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VhVh(HVX_Vector Vu, HVX_Vector Vv)
708
   Instruction Type:      CVI_VS
709
   Execution Slots:       SLOT0123
710
   ========================================================================== */
711
 
712
#define Q6_Vh_vasr_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhv)(Vu,Vv)
713
#endif /* __HEXAGON_ARCH___ >= 60 */
714
 
715
#if __HVX_ARCH__ >= 60
716
/* ==========================================================================
717
   Assembly Syntax:       Vd32.w=vasr(Vu32.w,Rt32)
718
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vasr_VwR(HVX_Vector Vu, Word32 Rt)
719
   Instruction Type:      CVI_VS
720
   Execution Slots:       SLOT0123
721
   ========================================================================== */
722
 
723
#define Q6_Vw_vasr_VwR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrw)(Vu,Rt)
724
#endif /* __HEXAGON_ARCH___ >= 60 */
725
 
726
#if __HVX_ARCH__ >= 60
727
/* ==========================================================================
728
   Assembly Syntax:       Vx32.w+=vasr(Vu32.w,Rt32)
729
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vasracc_VwVwR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
730
   Instruction Type:      CVI_VS
731
   Execution Slots:       SLOT0123
732
   ========================================================================== */
733
 
734
#define Q6_Vw_vasracc_VwVwR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrw_acc)(Vx,Vu,Rt)
735
#endif /* __HEXAGON_ARCH___ >= 60 */
736
 
737
#if __HVX_ARCH__ >= 60
738
/* ==========================================================================
739
   Assembly Syntax:       Vd32.h=vasr(Vu32.w,Vv32.w,Rt8)
740
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
741
   Instruction Type:      CVI_VS
742
   Execution Slots:       SLOT0123
743
   ========================================================================== */
744
 
745
#define Q6_Vh_vasr_VwVwR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwh)(Vu,Vv,Rt)
746
#endif /* __HEXAGON_ARCH___ >= 60 */
747
 
748
#if __HVX_ARCH__ >= 60
749
/* ==========================================================================
750
   Assembly Syntax:       Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
751
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
752
   Instruction Type:      CVI_VS
753
   Execution Slots:       SLOT0123
754
   ========================================================================== */
755
 
756
#define Q6_Vh_vasr_VwVwR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwhrndsat)(Vu,Vv,Rt)
757
#endif /* __HEXAGON_ARCH___ >= 60 */
758
 
759
#if __HVX_ARCH__ >= 60
760
/* ==========================================================================
761
   Assembly Syntax:       Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):sat
762
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
763
   Instruction Type:      CVI_VS
764
   Execution Slots:       SLOT0123
765
   ========================================================================== */
766
 
767
#define Q6_Vh_vasr_VwVwR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwhsat)(Vu,Vv,Rt)
768
#endif /* __HEXAGON_ARCH___ >= 60 */
769
 
770
#if __HVX_ARCH__ >= 60
771
/* ==========================================================================
772
   Assembly Syntax:       Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):sat
773
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VwVwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
774
   Instruction Type:      CVI_VS
775
   Execution Slots:       SLOT0123
776
   ========================================================================== */
777
 
778
#define Q6_Vuh_vasr_VwVwR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwuhsat)(Vu,Vv,Rt)
779
#endif /* __HEXAGON_ARCH___ >= 60 */
780
 
781
#if __HVX_ARCH__ >= 60
782
/* ==========================================================================
783
   Assembly Syntax:       Vd32.w=vasr(Vu32.w,Vv32.w)
784
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vasr_VwVw(HVX_Vector Vu, HVX_Vector Vv)
785
   Instruction Type:      CVI_VS
786
   Execution Slots:       SLOT0123
787
   ========================================================================== */
788
 
789
#define Q6_Vw_vasr_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwv)(Vu,Vv)
790
#endif /* __HEXAGON_ARCH___ >= 60 */
791
 
792
#if __HVX_ARCH__ >= 60
793
/* ==========================================================================
794
   Assembly Syntax:       Vd32=Vu32
795
   C Intrinsic Prototype: HVX_Vector Q6_V_equals_V(HVX_Vector Vu)
796
   Instruction Type:      CVI_VA
797
   Execution Slots:       SLOT0123
798
   ========================================================================== */
799
 
800
#define Q6_V_equals_V(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassign)(Vu)
801
#endif /* __HEXAGON_ARCH___ >= 60 */
802
 
803
#if __HVX_ARCH__ >= 60
804
/* ==========================================================================
805
   Assembly Syntax:       Vdd32=Vuu32
806
   C Intrinsic Prototype: HVX_VectorPair Q6_W_equals_W(HVX_VectorPair Vuu)
807
   Instruction Type:      CVI_VA_DV
808
   Execution Slots:       SLOT0123
809
   ========================================================================== */
810
 
811
#define Q6_W_equals_W(Vuu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassignp)(Vuu)
812
#endif /* __HEXAGON_ARCH___ >= 60 */
813
 
814
#if __HVX_ARCH__ >= 60
815
/* ==========================================================================
816
   Assembly Syntax:       Vd32.h=vavg(Vu32.h,Vv32.h)
817
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vavg_VhVh(HVX_Vector Vu, HVX_Vector Vv)
818
   Instruction Type:      CVI_VA
819
   Execution Slots:       SLOT0123
820
   ========================================================================== */
821
 
822
#define Q6_Vh_vavg_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgh)(Vu,Vv)
823
#endif /* __HEXAGON_ARCH___ >= 60 */
824
 
825
#if __HVX_ARCH__ >= 60
826
/* ==========================================================================
827
   Assembly Syntax:       Vd32.h=vavg(Vu32.h,Vv32.h):rnd
828
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vavg_VhVh_rnd(HVX_Vector Vu, HVX_Vector Vv)
829
   Instruction Type:      CVI_VA
830
   Execution Slots:       SLOT0123
831
   ========================================================================== */
832
 
833
#define Q6_Vh_vavg_VhVh_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavghrnd)(Vu,Vv)
834
#endif /* __HEXAGON_ARCH___ >= 60 */
835
 
836
#if __HVX_ARCH__ >= 60
837
/* ==========================================================================
838
   Assembly Syntax:       Vd32.ub=vavg(Vu32.ub,Vv32.ub)
839
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vavg_VubVub(HVX_Vector Vu, HVX_Vector Vv)
840
   Instruction Type:      CVI_VA
841
   Execution Slots:       SLOT0123
842
   ========================================================================== */
843
 
844
#define Q6_Vub_vavg_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgub)(Vu,Vv)
845
#endif /* __HEXAGON_ARCH___ >= 60 */
846
 
847
#if __HVX_ARCH__ >= 60
848
/* ==========================================================================
849
   Assembly Syntax:       Vd32.ub=vavg(Vu32.ub,Vv32.ub):rnd
850
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vavg_VubVub_rnd(HVX_Vector Vu, HVX_Vector Vv)
851
   Instruction Type:      CVI_VA
852
   Execution Slots:       SLOT0123
853
   ========================================================================== */
854
 
855
#define Q6_Vub_vavg_VubVub_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgubrnd)(Vu,Vv)
856
#endif /* __HEXAGON_ARCH___ >= 60 */
857
 
858
#if __HVX_ARCH__ >= 60
859
/* ==========================================================================
860
   Assembly Syntax:       Vd32.uh=vavg(Vu32.uh,Vv32.uh)
861
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vavg_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
862
   Instruction Type:      CVI_VA
863
   Execution Slots:       SLOT0123
864
   ========================================================================== */
865
 
866
#define Q6_Vuh_vavg_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguh)(Vu,Vv)
867
#endif /* __HEXAGON_ARCH___ >= 60 */
868
 
869
#if __HVX_ARCH__ >= 60
870
/* ==========================================================================
871
   Assembly Syntax:       Vd32.uh=vavg(Vu32.uh,Vv32.uh):rnd
872
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vavg_VuhVuh_rnd(HVX_Vector Vu, HVX_Vector Vv)
873
   Instruction Type:      CVI_VA
874
   Execution Slots:       SLOT0123
875
   ========================================================================== */
876
 
877
#define Q6_Vuh_vavg_VuhVuh_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguhrnd)(Vu,Vv)
878
#endif /* __HEXAGON_ARCH___ >= 60 */
879
 
880
#if __HVX_ARCH__ >= 60
881
/* ==========================================================================
882
   Assembly Syntax:       Vd32.w=vavg(Vu32.w,Vv32.w)
883
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vavg_VwVw(HVX_Vector Vu, HVX_Vector Vv)
884
   Instruction Type:      CVI_VA
885
   Execution Slots:       SLOT0123
886
   ========================================================================== */
887
 
888
#define Q6_Vw_vavg_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgw)(Vu,Vv)
889
#endif /* __HEXAGON_ARCH___ >= 60 */
890
 
891
#if __HVX_ARCH__ >= 60
892
/* ==========================================================================
893
   Assembly Syntax:       Vd32.w=vavg(Vu32.w,Vv32.w):rnd
894
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vavg_VwVw_rnd(HVX_Vector Vu, HVX_Vector Vv)
895
   Instruction Type:      CVI_VA
896
   Execution Slots:       SLOT0123
897
   ========================================================================== */
898
 
899
#define Q6_Vw_vavg_VwVw_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgwrnd)(Vu,Vv)
900
#endif /* __HEXAGON_ARCH___ >= 60 */
901
 
902
#if __HVX_ARCH__ >= 60
903
/* ==========================================================================
904
   Assembly Syntax:       Vd32.uh=vcl0(Vu32.uh)
905
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vcl0_Vuh(HVX_Vector Vu)
906
   Instruction Type:      CVI_VS
907
   Execution Slots:       SLOT0123
908
   ========================================================================== */
909
 
910
#define Q6_Vuh_vcl0_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcl0h)(Vu)
911
#endif /* __HEXAGON_ARCH___ >= 60 */
912
 
913
#if __HVX_ARCH__ >= 60
914
/* ==========================================================================
915
   Assembly Syntax:       Vd32.uw=vcl0(Vu32.uw)
916
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vcl0_Vuw(HVX_Vector Vu)
917
   Instruction Type:      CVI_VS
918
   Execution Slots:       SLOT0123
919
   ========================================================================== */
920
 
921
#define Q6_Vuw_vcl0_Vuw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcl0w)(Vu)
922
#endif /* __HEXAGON_ARCH___ >= 60 */
923
 
924
#if __HVX_ARCH__ >= 60
925
/* ==========================================================================
926
   Assembly Syntax:       Vdd32=vcombine(Vu32,Vv32)
927
   C Intrinsic Prototype: HVX_VectorPair Q6_W_vcombine_VV(HVX_Vector Vu, HVX_Vector Vv)
928
   Instruction Type:      CVI_VA_DV
929
   Execution Slots:       SLOT0123
930
   ========================================================================== */
931
 
932
#define Q6_W_vcombine_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcombine)(Vu,Vv)
933
#endif /* __HEXAGON_ARCH___ >= 60 */
934
 
935
#if __HVX_ARCH__ >= 60
936
/* ==========================================================================
937
   Assembly Syntax:       Vd32=#0
938
   C Intrinsic Prototype: HVX_Vector Q6_V_vzero()
939
   Instruction Type:      CVI_VA
940
   Execution Slots:       SLOT0123
941
   ========================================================================== */
942
 
943
#define Q6_V_vzero() __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vd0)()
944
#endif /* __HEXAGON_ARCH___ >= 60 */
945
 
946
#if __HVX_ARCH__ >= 60
947
/* ==========================================================================
948
   Assembly Syntax:       Vd32.b=vdeal(Vu32.b)
949
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vdeal_Vb(HVX_Vector Vu)
950
   Instruction Type:      CVI_VP
951
   Execution Slots:       SLOT0123
952
   ========================================================================== */
953
 
954
#define Q6_Vb_vdeal_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealb)(Vu)
955
#endif /* __HEXAGON_ARCH___ >= 60 */
956
 
957
#if __HVX_ARCH__ >= 60
958
/* ==========================================================================
959
   Assembly Syntax:       Vd32.b=vdeale(Vu32.b,Vv32.b)
960
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vdeale_VbVb(HVX_Vector Vu, HVX_Vector Vv)
961
   Instruction Type:      CVI_VP
962
   Execution Slots:       SLOT0123
963
   ========================================================================== */
964
 
965
#define Q6_Vb_vdeale_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealb4w)(Vu,Vv)
966
#endif /* __HEXAGON_ARCH___ >= 60 */
967
 
968
#if __HVX_ARCH__ >= 60
969
/* ==========================================================================
970
   Assembly Syntax:       Vd32.h=vdeal(Vu32.h)
971
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vdeal_Vh(HVX_Vector Vu)
972
   Instruction Type:      CVI_VP
973
   Execution Slots:       SLOT0123
974
   ========================================================================== */
975
 
976
#define Q6_Vh_vdeal_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealh)(Vu)
977
#endif /* __HEXAGON_ARCH___ >= 60 */
978
 
979
#if __HVX_ARCH__ >= 60
980
/* ==========================================================================
981
   Assembly Syntax:       Vdd32=vdeal(Vu32,Vv32,Rt8)
982
   C Intrinsic Prototype: HVX_VectorPair Q6_W_vdeal_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
983
   Instruction Type:      CVI_VP_VS
984
   Execution Slots:       SLOT0123
985
   ========================================================================== */
986
 
987
#define Q6_W_vdeal_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealvdd)(Vu,Vv,Rt)
988
#endif /* __HEXAGON_ARCH___ >= 60 */
989
 
990
#if __HVX_ARCH__ >= 60
991
/* ==========================================================================
992
   Assembly Syntax:       Vd32=vdelta(Vu32,Vv32)
993
   C Intrinsic Prototype: HVX_Vector Q6_V_vdelta_VV(HVX_Vector Vu, HVX_Vector Vv)
994
   Instruction Type:      CVI_VP
995
   Execution Slots:       SLOT0123
996
   ========================================================================== */
997
 
998
#define Q6_V_vdelta_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdelta)(Vu,Vv)
999
#endif /* __HEXAGON_ARCH___ >= 60 */
1000
 
1001
#if __HVX_ARCH__ >= 60
1002
/* ==========================================================================
1003
   Assembly Syntax:       Vd32.h=vdmpy(Vu32.ub,Rt32.b)
1004
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vdmpy_VubRb(HVX_Vector Vu, Word32 Rt)
1005
   Instruction Type:      CVI_VX
1006
   Execution Slots:       SLOT23
1007
   ========================================================================== */
1008
 
1009
#define Q6_Vh_vdmpy_VubRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus)(Vu,Rt)
1010
#endif /* __HEXAGON_ARCH___ >= 60 */
1011
 
1012
#if __HVX_ARCH__ >= 60
1013
/* ==========================================================================
1014
   Assembly Syntax:       Vx32.h+=vdmpy(Vu32.ub,Rt32.b)
1015
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vdmpyacc_VhVubRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1016
   Instruction Type:      CVI_VX
1017
   Execution Slots:       SLOT23
1018
   ========================================================================== */
1019
 
1020
#define Q6_Vh_vdmpyacc_VhVubRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_acc)(Vx,Vu,Rt)
1021
#endif /* __HEXAGON_ARCH___ >= 60 */
1022
 
1023
#if __HVX_ARCH__ >= 60
1024
/* ==========================================================================
1025
   Assembly Syntax:       Vdd32.h=vdmpy(Vuu32.ub,Rt32.b)
1026
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vdmpy_WubRb(HVX_VectorPair Vuu, Word32 Rt)
1027
   Instruction Type:      CVI_VX_DV
1028
   Execution Slots:       SLOT23
1029
   ========================================================================== */
1030
 
1031
#define Q6_Wh_vdmpy_WubRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_dv)(Vuu,Rt)
1032
#endif /* __HEXAGON_ARCH___ >= 60 */
1033
 
1034
#if __HVX_ARCH__ >= 60
1035
/* ==========================================================================
1036
   Assembly Syntax:       Vxx32.h+=vdmpy(Vuu32.ub,Rt32.b)
1037
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vdmpyacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1038
   Instruction Type:      CVI_VX_DV
1039
   Execution Slots:       SLOT23
1040
   ========================================================================== */
1041
 
1042
#define Q6_Wh_vdmpyacc_WhWubRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_dv_acc)(Vxx,Vuu,Rt)
1043
#endif /* __HEXAGON_ARCH___ >= 60 */
1044
 
1045
#if __HVX_ARCH__ >= 60
1046
/* ==========================================================================
1047
   Assembly Syntax:       Vd32.w=vdmpy(Vu32.h,Rt32.b)
1048
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRb(HVX_Vector Vu, Word32 Rt)
1049
   Instruction Type:      CVI_VX
1050
   Execution Slots:       SLOT23
1051
   ========================================================================== */
1052
 
1053
#define Q6_Vw_vdmpy_VhRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb)(Vu,Rt)
1054
#endif /* __HEXAGON_ARCH___ >= 60 */
1055
 
1056
#if __HVX_ARCH__ >= 60
1057
/* ==========================================================================
1058
   Assembly Syntax:       Vx32.w+=vdmpy(Vu32.h,Rt32.b)
1059
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1060
   Instruction Type:      CVI_VX
1061
   Execution Slots:       SLOT23
1062
   ========================================================================== */
1063
 
1064
#define Q6_Vw_vdmpyacc_VwVhRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_acc)(Vx,Vu,Rt)
1065
#endif /* __HEXAGON_ARCH___ >= 60 */
1066
 
1067
#if __HVX_ARCH__ >= 60
1068
/* ==========================================================================
1069
   Assembly Syntax:       Vdd32.w=vdmpy(Vuu32.h,Rt32.b)
1070
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vdmpy_WhRb(HVX_VectorPair Vuu, Word32 Rt)
1071
   Instruction Type:      CVI_VX_DV
1072
   Execution Slots:       SLOT23
1073
   ========================================================================== */
1074
 
1075
#define Q6_Ww_vdmpy_WhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_dv)(Vuu,Rt)
1076
#endif /* __HEXAGON_ARCH___ >= 60 */
1077
 
1078
#if __HVX_ARCH__ >= 60
1079
/* ==========================================================================
1080
   Assembly Syntax:       Vxx32.w+=vdmpy(Vuu32.h,Rt32.b)
1081
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vdmpyacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1082
   Instruction Type:      CVI_VX_DV
1083
   Execution Slots:       SLOT23
1084
   ========================================================================== */
1085
 
1086
#define Q6_Ww_vdmpyacc_WwWhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_dv_acc)(Vxx,Vuu,Rt)
1087
#endif /* __HEXAGON_ARCH___ >= 60 */
1088
 
1089
#if __HVX_ARCH__ >= 60
1090
/* ==========================================================================
1091
   Assembly Syntax:       Vd32.w=vdmpy(Vuu32.h,Rt32.h):sat
1092
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_WhRh_sat(HVX_VectorPair Vuu, Word32 Rt)
1093
   Instruction Type:      CVI_VX_DV
1094
   Execution Slots:       SLOT23
1095
   ========================================================================== */
1096
 
1097
#define Q6_Vw_vdmpy_WhRh_sat(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhisat)(Vuu,Rt)
1098
#endif /* __HEXAGON_ARCH___ >= 60 */
1099
 
1100
#if __HVX_ARCH__ >= 60
1101
/* ==========================================================================
1102
   Assembly Syntax:       Vx32.w+=vdmpy(Vuu32.h,Rt32.h):sat
1103
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwWhRh_sat(HVX_Vector Vx, HVX_VectorPair Vuu, Word32 Rt)
1104
   Instruction Type:      CVI_VX_DV
1105
   Execution Slots:       SLOT23
1106
   ========================================================================== */
1107
 
1108
#define Q6_Vw_vdmpyacc_VwWhRh_sat(Vx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhisat_acc)(Vx,Vuu,Rt)
1109
#endif /* __HEXAGON_ARCH___ >= 60 */
1110
 
1111
#if __HVX_ARCH__ >= 60
1112
/* ==========================================================================
1113
   Assembly Syntax:       Vd32.w=vdmpy(Vu32.h,Rt32.h):sat
1114
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRh_sat(HVX_Vector Vu, Word32 Rt)
1115
   Instruction Type:      CVI_VX
1116
   Execution Slots:       SLOT23
1117
   ========================================================================== */
1118
 
1119
#define Q6_Vw_vdmpy_VhRh_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsat)(Vu,Rt)
1120
#endif /* __HEXAGON_ARCH___ >= 60 */
1121
 
1122
#if __HVX_ARCH__ >= 60
1123
/* ==========================================================================
1124
   Assembly Syntax:       Vx32.w+=vdmpy(Vu32.h,Rt32.h):sat
1125
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRh_sat(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1126
   Instruction Type:      CVI_VX
1127
   Execution Slots:       SLOT23
1128
   ========================================================================== */
1129
 
1130
#define Q6_Vw_vdmpyacc_VwVhRh_sat(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsat_acc)(Vx,Vu,Rt)
1131
#endif /* __HEXAGON_ARCH___ >= 60 */
1132
 
1133
#if __HVX_ARCH__ >= 60
1134
/* ==========================================================================
1135
   Assembly Syntax:       Vd32.w=vdmpy(Vuu32.h,Rt32.uh,#1):sat
1136
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_WhRuh_sat(HVX_VectorPair Vuu, Word32 Rt)
1137
   Instruction Type:      CVI_VX_DV
1138
   Execution Slots:       SLOT23
1139
   ========================================================================== */
1140
 
1141
#define Q6_Vw_vdmpy_WhRuh_sat(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsuisat)(Vuu,Rt)
1142
#endif /* __HEXAGON_ARCH___ >= 60 */
1143
 
1144
#if __HVX_ARCH__ >= 60
1145
/* ==========================================================================
1146
   Assembly Syntax:       Vx32.w+=vdmpy(Vuu32.h,Rt32.uh,#1):sat
1147
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwWhRuh_sat(HVX_Vector Vx, HVX_VectorPair Vuu, Word32 Rt)
1148
   Instruction Type:      CVI_VX_DV
1149
   Execution Slots:       SLOT23
1150
   ========================================================================== */
1151
 
1152
#define Q6_Vw_vdmpyacc_VwWhRuh_sat(Vx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsuisat_acc)(Vx,Vuu,Rt)
1153
#endif /* __HEXAGON_ARCH___ >= 60 */
1154
 
1155
#if __HVX_ARCH__ >= 60
1156
/* ==========================================================================
1157
   Assembly Syntax:       Vd32.w=vdmpy(Vu32.h,Rt32.uh):sat
1158
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRuh_sat(HVX_Vector Vu, Word32 Rt)
1159
   Instruction Type:      CVI_VX
1160
   Execution Slots:       SLOT23
1161
   ========================================================================== */
1162
 
1163
#define Q6_Vw_vdmpy_VhRuh_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsusat)(Vu,Rt)
1164
#endif /* __HEXAGON_ARCH___ >= 60 */
1165
 
1166
#if __HVX_ARCH__ >= 60
1167
/* ==========================================================================
1168
   Assembly Syntax:       Vx32.w+=vdmpy(Vu32.h,Rt32.uh):sat
1169
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1170
   Instruction Type:      CVI_VX
1171
   Execution Slots:       SLOT23
1172
   ========================================================================== */
1173
 
1174
#define Q6_Vw_vdmpyacc_VwVhRuh_sat(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsusat_acc)(Vx,Vu,Rt)
1175
#endif /* __HEXAGON_ARCH___ >= 60 */
1176
 
1177
#if __HVX_ARCH__ >= 60
1178
/* ==========================================================================
1179
   Assembly Syntax:       Vd32.w=vdmpy(Vu32.h,Vv32.h):sat
1180
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
1181
   Instruction Type:      CVI_VX
1182
   Execution Slots:       SLOT23
1183
   ========================================================================== */
1184
 
1185
#define Q6_Vw_vdmpy_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhvsat)(Vu,Vv)
1186
#endif /* __HEXAGON_ARCH___ >= 60 */
1187
 
1188
#if __HVX_ARCH__ >= 60
1189
/* ==========================================================================
1190
   Assembly Syntax:       Vx32.w+=vdmpy(Vu32.h,Vv32.h):sat
1191
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhVh_sat(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
1192
   Instruction Type:      CVI_VX_DV
1193
   Execution Slots:       SLOT23
1194
   ========================================================================== */
1195
 
1196
#define Q6_Vw_vdmpyacc_VwVhVh_sat(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhvsat_acc)(Vx,Vu,Vv)
1197
#endif /* __HEXAGON_ARCH___ >= 60 */
1198
 
1199
#if __HVX_ARCH__ >= 60
1200
/* ==========================================================================
1201
   Assembly Syntax:       Vdd32.uw=vdsad(Vuu32.uh,Rt32.uh)
1202
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vdsad_WuhRuh(HVX_VectorPair Vuu, Word32 Rt)
1203
   Instruction Type:      CVI_VX_DV
1204
   Execution Slots:       SLOT23
1205
   ========================================================================== */
1206
 
1207
#define Q6_Wuw_vdsad_WuhRuh(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdsaduh)(Vuu,Rt)
1208
#endif /* __HEXAGON_ARCH___ >= 60 */
1209
 
1210
#if __HVX_ARCH__ >= 60
1211
/* ==========================================================================
1212
   Assembly Syntax:       Vxx32.uw+=vdsad(Vuu32.uh,Rt32.uh)
1213
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vdsadacc_WuwWuhRuh(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1214
   Instruction Type:      CVI_VX_DV
1215
   Execution Slots:       SLOT23
1216
   ========================================================================== */
1217
 
1218
#define Q6_Wuw_vdsadacc_WuwWuhRuh(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdsaduh_acc)(Vxx,Vuu,Rt)
1219
#endif /* __HEXAGON_ARCH___ >= 60 */
1220
 
1221
#if __HVX_ARCH__ >= 60
1222
/* ==========================================================================
1223
   Assembly Syntax:       Qd4=vcmp.eq(Vu32.b,Vv32.b)
1224
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1225
   Instruction Type:      CVI_VA
1226
   Execution Slots:       SLOT0123
1227
   ========================================================================== */
1228
 
1229
#define Q6_Q_vcmp_eq_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb)(Vu,Vv)),-1)
1230
#endif /* __HEXAGON_ARCH___ >= 60 */
1231
 
1232
#if __HVX_ARCH__ >= 60
1233
/* ==========================================================================
1234
   Assembly Syntax:       Qx4&=vcmp.eq(Vu32.b,Vv32.b)
1235
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1236
   Instruction Type:      CVI_VA
1237
   Execution Slots:       SLOT0123
1238
   ========================================================================== */
1239
 
1240
#define Q6_Q_vcmp_eqand_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1241
#endif /* __HEXAGON_ARCH___ >= 60 */
1242
 
1243
#if __HVX_ARCH__ >= 60
1244
/* ==========================================================================
1245
   Assembly Syntax:       Qx4|=vcmp.eq(Vu32.b,Vv32.b)
1246
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1247
   Instruction Type:      CVI_VA
1248
   Execution Slots:       SLOT0123
1249
   ========================================================================== */
1250
 
1251
#define Q6_Q_vcmp_eqor_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1252
#endif /* __HEXAGON_ARCH___ >= 60 */
1253
 
1254
#if __HVX_ARCH__ >= 60
1255
/* ==========================================================================
1256
   Assembly Syntax:       Qx4^=vcmp.eq(Vu32.b,Vv32.b)
1257
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1258
   Instruction Type:      CVI_VA
1259
   Execution Slots:       SLOT0123
1260
   ========================================================================== */
1261
 
1262
#define Q6_Q_vcmp_eqxacc_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqb_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1263
#endif /* __HEXAGON_ARCH___ >= 60 */
1264
 
1265
#if __HVX_ARCH__ >= 60
1266
/* ==========================================================================
1267
   Assembly Syntax:       Qd4=vcmp.eq(Vu32.h,Vv32.h)
1268
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1269
   Instruction Type:      CVI_VA
1270
   Execution Slots:       SLOT0123
1271
   ========================================================================== */
1272
 
1273
#define Q6_Q_vcmp_eq_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh)(Vu,Vv)),-1)
1274
#endif /* __HEXAGON_ARCH___ >= 60 */
1275
 
1276
#if __HVX_ARCH__ >= 60
1277
/* ==========================================================================
1278
   Assembly Syntax:       Qx4&=vcmp.eq(Vu32.h,Vv32.h)
1279
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1280
   Instruction Type:      CVI_VA
1281
   Execution Slots:       SLOT0123
1282
   ========================================================================== */
1283
 
1284
#define Q6_Q_vcmp_eqand_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1285
#endif /* __HEXAGON_ARCH___ >= 60 */
1286
 
1287
#if __HVX_ARCH__ >= 60
1288
/* ==========================================================================
1289
   Assembly Syntax:       Qx4|=vcmp.eq(Vu32.h,Vv32.h)
1290
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1291
   Instruction Type:      CVI_VA
1292
   Execution Slots:       SLOT0123
1293
   ========================================================================== */
1294
 
1295
#define Q6_Q_vcmp_eqor_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1296
#endif /* __HEXAGON_ARCH___ >= 60 */
1297
 
1298
#if __HVX_ARCH__ >= 60
1299
/* ==========================================================================
1300
   Assembly Syntax:       Qx4^=vcmp.eq(Vu32.h,Vv32.h)
1301
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1302
   Instruction Type:      CVI_VA
1303
   Execution Slots:       SLOT0123
1304
   ========================================================================== */
1305
 
1306
#define Q6_Q_vcmp_eqxacc_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqh_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1307
#endif /* __HEXAGON_ARCH___ >= 60 */
1308
 
1309
#if __HVX_ARCH__ >= 60
1310
/* ==========================================================================
1311
   Assembly Syntax:       Qd4=vcmp.eq(Vu32.w,Vv32.w)
1312
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1313
   Instruction Type:      CVI_VA
1314
   Execution Slots:       SLOT0123
1315
   ========================================================================== */
1316
 
1317
#define Q6_Q_vcmp_eq_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw)(Vu,Vv)),-1)
1318
#endif /* __HEXAGON_ARCH___ >= 60 */
1319
 
1320
#if __HVX_ARCH__ >= 60
1321
/* ==========================================================================
1322
   Assembly Syntax:       Qx4&=vcmp.eq(Vu32.w,Vv32.w)
1323
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1324
   Instruction Type:      CVI_VA
1325
   Execution Slots:       SLOT0123
1326
   ========================================================================== */
1327
 
1328
#define Q6_Q_vcmp_eqand_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1329
#endif /* __HEXAGON_ARCH___ >= 60 */
1330
 
1331
#if __HVX_ARCH__ >= 60
1332
/* ==========================================================================
1333
   Assembly Syntax:       Qx4|=vcmp.eq(Vu32.w,Vv32.w)
1334
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1335
   Instruction Type:      CVI_VA
1336
   Execution Slots:       SLOT0123
1337
   ========================================================================== */
1338
 
1339
#define Q6_Q_vcmp_eqor_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1340
#endif /* __HEXAGON_ARCH___ >= 60 */
1341
 
1342
#if __HVX_ARCH__ >= 60
1343
/* ==========================================================================
1344
   Assembly Syntax:       Qx4^=vcmp.eq(Vu32.w,Vv32.w)
1345
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1346
   Instruction Type:      CVI_VA
1347
   Execution Slots:       SLOT0123
1348
   ========================================================================== */
1349
 
1350
#define Q6_Q_vcmp_eqxacc_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_veqw_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1351
#endif /* __HEXAGON_ARCH___ >= 60 */
1352
 
1353
#if __HVX_ARCH__ >= 60
1354
/* ==========================================================================
1355
   Assembly Syntax:       Qd4=vcmp.gt(Vu32.b,Vv32.b)
1356
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1357
   Instruction Type:      CVI_VA
1358
   Execution Slots:       SLOT0123
1359
   ========================================================================== */
1360
 
1361
#define Q6_Q_vcmp_gt_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb)(Vu,Vv)),-1)
1362
#endif /* __HEXAGON_ARCH___ >= 60 */
1363
 
1364
#if __HVX_ARCH__ >= 60
1365
/* ==========================================================================
1366
   Assembly Syntax:       Qx4&=vcmp.gt(Vu32.b,Vv32.b)
1367
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1368
   Instruction Type:      CVI_VA
1369
   Execution Slots:       SLOT0123
1370
   ========================================================================== */
1371
 
1372
#define Q6_Q_vcmp_gtand_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1373
#endif /* __HEXAGON_ARCH___ >= 60 */
1374
 
1375
#if __HVX_ARCH__ >= 60
1376
/* ==========================================================================
1377
   Assembly Syntax:       Qx4|=vcmp.gt(Vu32.b,Vv32.b)
1378
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1379
   Instruction Type:      CVI_VA
1380
   Execution Slots:       SLOT0123
1381
   ========================================================================== */
1382
 
1383
#define Q6_Q_vcmp_gtor_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1384
#endif /* __HEXAGON_ARCH___ >= 60 */
1385
 
1386
#if __HVX_ARCH__ >= 60
1387
/* ==========================================================================
1388
   Assembly Syntax:       Qx4^=vcmp.gt(Vu32.b,Vv32.b)
1389
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1390
   Instruction Type:      CVI_VA
1391
   Execution Slots:       SLOT0123
1392
   ========================================================================== */
1393
 
1394
#define Q6_Q_vcmp_gtxacc_QVbVb(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtb_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1395
#endif /* __HEXAGON_ARCH___ >= 60 */
1396
 
1397
#if __HVX_ARCH__ >= 60
1398
/* ==========================================================================
1399
   Assembly Syntax:       Qd4=vcmp.gt(Vu32.h,Vv32.h)
1400
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1401
   Instruction Type:      CVI_VA
1402
   Execution Slots:       SLOT0123
1403
   ========================================================================== */
1404
 
1405
#define Q6_Q_vcmp_gt_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth)(Vu,Vv)),-1)
1406
#endif /* __HEXAGON_ARCH___ >= 60 */
1407
 
1408
#if __HVX_ARCH__ >= 60
1409
/* ==========================================================================
1410
   Assembly Syntax:       Qx4&=vcmp.gt(Vu32.h,Vv32.h)
1411
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1412
   Instruction Type:      CVI_VA
1413
   Execution Slots:       SLOT0123
1414
   ========================================================================== */
1415
 
1416
#define Q6_Q_vcmp_gtand_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1417
#endif /* __HEXAGON_ARCH___ >= 60 */
1418
 
1419
#if __HVX_ARCH__ >= 60
1420
/* ==========================================================================
1421
   Assembly Syntax:       Qx4|=vcmp.gt(Vu32.h,Vv32.h)
1422
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1423
   Instruction Type:      CVI_VA
1424
   Execution Slots:       SLOT0123
1425
   ========================================================================== */
1426
 
1427
#define Q6_Q_vcmp_gtor_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1428
#endif /* __HEXAGON_ARCH___ >= 60 */
1429
 
1430
#if __HVX_ARCH__ >= 60
1431
/* ==========================================================================
1432
   Assembly Syntax:       Qx4^=vcmp.gt(Vu32.h,Vv32.h)
1433
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1434
   Instruction Type:      CVI_VA
1435
   Execution Slots:       SLOT0123
1436
   ========================================================================== */
1437
 
1438
#define Q6_Q_vcmp_gtxacc_QVhVh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgth_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1439
#endif /* __HEXAGON_ARCH___ >= 60 */
1440
 
1441
#if __HVX_ARCH__ >= 60
1442
/* ==========================================================================
1443
   Assembly Syntax:       Qd4=vcmp.gt(Vu32.ub,Vv32.ub)
1444
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1445
   Instruction Type:      CVI_VA
1446
   Execution Slots:       SLOT0123
1447
   ========================================================================== */
1448
 
1449
#define Q6_Q_vcmp_gt_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub)(Vu,Vv)),-1)
1450
#endif /* __HEXAGON_ARCH___ >= 60 */
1451
 
1452
#if __HVX_ARCH__ >= 60
1453
/* ==========================================================================
1454
   Assembly Syntax:       Qx4&=vcmp.gt(Vu32.ub,Vv32.ub)
1455
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1456
   Instruction Type:      CVI_VA
1457
   Execution Slots:       SLOT0123
1458
   ========================================================================== */
1459
 
1460
#define Q6_Q_vcmp_gtand_QVubVub(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1461
#endif /* __HEXAGON_ARCH___ >= 60 */
1462
 
1463
#if __HVX_ARCH__ >= 60
1464
/* ==========================================================================
1465
   Assembly Syntax:       Qx4|=vcmp.gt(Vu32.ub,Vv32.ub)
1466
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1467
   Instruction Type:      CVI_VA
1468
   Execution Slots:       SLOT0123
1469
   ========================================================================== */
1470
 
1471
#define Q6_Q_vcmp_gtor_QVubVub(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1472
#endif /* __HEXAGON_ARCH___ >= 60 */
1473
 
1474
#if __HVX_ARCH__ >= 60
1475
/* ==========================================================================
1476
   Assembly Syntax:       Qx4^=vcmp.gt(Vu32.ub,Vv32.ub)
1477
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1478
   Instruction Type:      CVI_VA
1479
   Execution Slots:       SLOT0123
1480
   ========================================================================== */
1481
 
1482
#define Q6_Q_vcmp_gtxacc_QVubVub(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtub_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1483
#endif /* __HEXAGON_ARCH___ >= 60 */
1484
 
1485
#if __HVX_ARCH__ >= 60
1486
/* ==========================================================================
1487
   Assembly Syntax:       Qd4=vcmp.gt(Vu32.uh,Vv32.uh)
1488
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1489
   Instruction Type:      CVI_VA
1490
   Execution Slots:       SLOT0123
1491
   ========================================================================== */
1492
 
1493
#define Q6_Q_vcmp_gt_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh)(Vu,Vv)),-1)
1494
#endif /* __HEXAGON_ARCH___ >= 60 */
1495
 
1496
#if __HVX_ARCH__ >= 60
1497
/* ==========================================================================
1498
   Assembly Syntax:       Qx4&=vcmp.gt(Vu32.uh,Vv32.uh)
1499
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1500
   Instruction Type:      CVI_VA
1501
   Execution Slots:       SLOT0123
1502
   ========================================================================== */
1503
 
1504
#define Q6_Q_vcmp_gtand_QVuhVuh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1505
#endif /* __HEXAGON_ARCH___ >= 60 */
1506
 
1507
#if __HVX_ARCH__ >= 60
1508
/* ==========================================================================
1509
   Assembly Syntax:       Qx4|=vcmp.gt(Vu32.uh,Vv32.uh)
1510
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1511
   Instruction Type:      CVI_VA
1512
   Execution Slots:       SLOT0123
1513
   ========================================================================== */
1514
 
1515
#define Q6_Q_vcmp_gtor_QVuhVuh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1516
#endif /* __HEXAGON_ARCH___ >= 60 */
1517
 
1518
#if __HVX_ARCH__ >= 60
1519
/* ==========================================================================
1520
   Assembly Syntax:       Qx4^=vcmp.gt(Vu32.uh,Vv32.uh)
1521
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1522
   Instruction Type:      CVI_VA
1523
   Execution Slots:       SLOT0123
1524
   ========================================================================== */
1525
 
1526
#define Q6_Q_vcmp_gtxacc_QVuhVuh(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuh_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1527
#endif /* __HEXAGON_ARCH___ >= 60 */
1528
 
1529
#if __HVX_ARCH__ >= 60
1530
/* ==========================================================================
1531
   Assembly Syntax:       Qd4=vcmp.gt(Vu32.uw,Vv32.uw)
1532
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
1533
   Instruction Type:      CVI_VA
1534
   Execution Slots:       SLOT0123
1535
   ========================================================================== */
1536
 
1537
#define Q6_Q_vcmp_gt_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw)(Vu,Vv)),-1)
1538
#endif /* __HEXAGON_ARCH___ >= 60 */
1539
 
1540
#if __HVX_ARCH__ >= 60
1541
/* ==========================================================================
1542
   Assembly Syntax:       Qx4&=vcmp.gt(Vu32.uw,Vv32.uw)
1543
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1544
   Instruction Type:      CVI_VA
1545
   Execution Slots:       SLOT0123
1546
   ========================================================================== */
1547
 
1548
#define Q6_Q_vcmp_gtand_QVuwVuw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1549
#endif /* __HEXAGON_ARCH___ >= 60 */
1550
 
1551
#if __HVX_ARCH__ >= 60
1552
/* ==========================================================================
1553
   Assembly Syntax:       Qx4|=vcmp.gt(Vu32.uw,Vv32.uw)
1554
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1555
   Instruction Type:      CVI_VA
1556
   Execution Slots:       SLOT0123
1557
   ========================================================================== */
1558
 
1559
#define Q6_Q_vcmp_gtor_QVuwVuw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1560
#endif /* __HEXAGON_ARCH___ >= 60 */
1561
 
1562
#if __HVX_ARCH__ >= 60
1563
/* ==========================================================================
1564
   Assembly Syntax:       Qx4^=vcmp.gt(Vu32.uw,Vv32.uw)
1565
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1566
   Instruction Type:      CVI_VA
1567
   Execution Slots:       SLOT0123
1568
   ========================================================================== */
1569
 
1570
#define Q6_Q_vcmp_gtxacc_QVuwVuw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtuw_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1571
#endif /* __HEXAGON_ARCH___ >= 60 */
1572
 
1573
#if __HVX_ARCH__ >= 60
1574
/* ==========================================================================
1575
   Assembly Syntax:       Qd4=vcmp.gt(Vu32.w,Vv32.w)
1576
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1577
   Instruction Type:      CVI_VA
1578
   Execution Slots:       SLOT0123
1579
   ========================================================================== */
1580
 
1581
#define Q6_Q_vcmp_gt_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw)(Vu,Vv)),-1)
1582
#endif /* __HEXAGON_ARCH___ >= 60 */
1583
 
1584
#if __HVX_ARCH__ >= 60
1585
/* ==========================================================================
1586
   Assembly Syntax:       Qx4&=vcmp.gt(Vu32.w,Vv32.w)
1587
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1588
   Instruction Type:      CVI_VA
1589
   Execution Slots:       SLOT0123
1590
   ========================================================================== */
1591
 
1592
#define Q6_Q_vcmp_gtand_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1593
#endif /* __HEXAGON_ARCH___ >= 60 */
1594
 
1595
#if __HVX_ARCH__ >= 60
1596
/* ==========================================================================
1597
   Assembly Syntax:       Qx4|=vcmp.gt(Vu32.w,Vv32.w)
1598
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1599
   Instruction Type:      CVI_VA
1600
   Execution Slots:       SLOT0123
1601
   ========================================================================== */
1602
 
1603
#define Q6_Q_vcmp_gtor_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1604
#endif /* __HEXAGON_ARCH___ >= 60 */
1605
 
1606
#if __HVX_ARCH__ >= 60
1607
/* ==========================================================================
1608
   Assembly Syntax:       Qx4^=vcmp.gt(Vu32.w,Vv32.w)
1609
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1610
   Instruction Type:      CVI_VA
1611
   Execution Slots:       SLOT0123
1612
   ========================================================================== */
1613
 
1614
#define Q6_Q_vcmp_gtxacc_QVwVw(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtw_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
1615
#endif /* __HEXAGON_ARCH___ >= 60 */
1616
 
1617
#if __HVX_ARCH__ >= 60
1618
/* ==========================================================================
1619
   Assembly Syntax:       Vx32.w=vinsert(Rt32)
1620
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vinsert_VwR(HVX_Vector Vx, Word32 Rt)
1621
   Instruction Type:      CVI_VX_LATE
1622
   Execution Slots:       SLOT23
1623
   ========================================================================== */
1624
 
1625
#define Q6_Vw_vinsert_VwR(Vx,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vinsertwr)(Vx,Rt)
1626
#endif /* __HEXAGON_ARCH___ >= 60 */
1627
 
1628
#if __HVX_ARCH__ >= 60
1629
/* ==========================================================================
1630
   Assembly Syntax:       Vd32=vlalign(Vu32,Vv32,Rt8)
1631
   C Intrinsic Prototype: HVX_Vector Q6_V_vlalign_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1632
   Instruction Type:      CVI_VP
1633
   Execution Slots:       SLOT0123
1634
   ========================================================================== */
1635
 
1636
#define Q6_V_vlalign_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlalignb)(Vu,Vv,Rt)
1637
#endif /* __HEXAGON_ARCH___ >= 60 */
1638
 
1639
#if __HVX_ARCH__ >= 60
1640
/* ==========================================================================
1641
   Assembly Syntax:       Vd32=vlalign(Vu32,Vv32,#u3)
1642
   C Intrinsic Prototype: HVX_Vector Q6_V_vlalign_VVI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
1643
   Instruction Type:      CVI_VP
1644
   Execution Slots:       SLOT0123
1645
   ========================================================================== */
1646
 
1647
#define Q6_V_vlalign_VVI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlalignbi)(Vu,Vv,Iu3)
1648
#endif /* __HEXAGON_ARCH___ >= 60 */
1649
 
1650
#if __HVX_ARCH__ >= 60
1651
/* ==========================================================================
1652
   Assembly Syntax:       Vd32.uh=vlsr(Vu32.uh,Rt32)
1653
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vlsr_VuhR(HVX_Vector Vu, Word32 Rt)
1654
   Instruction Type:      CVI_VS
1655
   Execution Slots:       SLOT0123
1656
   ========================================================================== */
1657
 
1658
#define Q6_Vuh_vlsr_VuhR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrh)(Vu,Rt)
1659
#endif /* __HEXAGON_ARCH___ >= 60 */
1660
 
1661
#if __HVX_ARCH__ >= 60
1662
/* ==========================================================================
1663
   Assembly Syntax:       Vd32.h=vlsr(Vu32.h,Vv32.h)
1664
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vlsr_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1665
   Instruction Type:      CVI_VS
1666
   Execution Slots:       SLOT0123
1667
   ========================================================================== */
1668
 
1669
#define Q6_Vh_vlsr_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrhv)(Vu,Vv)
1670
#endif /* __HEXAGON_ARCH___ >= 60 */
1671
 
1672
#if __HVX_ARCH__ >= 60
1673
/* ==========================================================================
1674
   Assembly Syntax:       Vd32.uw=vlsr(Vu32.uw,Rt32)
1675
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vlsr_VuwR(HVX_Vector Vu, Word32 Rt)
1676
   Instruction Type:      CVI_VS
1677
   Execution Slots:       SLOT0123
1678
   ========================================================================== */
1679
 
1680
#define Q6_Vuw_vlsr_VuwR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrw)(Vu,Rt)
1681
#endif /* __HEXAGON_ARCH___ >= 60 */
1682
 
1683
#if __HVX_ARCH__ >= 60
1684
/* ==========================================================================
1685
   Assembly Syntax:       Vd32.w=vlsr(Vu32.w,Vv32.w)
1686
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vlsr_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1687
   Instruction Type:      CVI_VS
1688
   Execution Slots:       SLOT0123
1689
   ========================================================================== */
1690
 
1691
#define Q6_Vw_vlsr_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrwv)(Vu,Vv)
1692
#endif /* __HEXAGON_ARCH___ >= 60 */
1693
 
1694
#if __HVX_ARCH__ >= 60
1695
/* ==========================================================================
1696
   Assembly Syntax:       Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8)
1697
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1698
   Instruction Type:      CVI_VP
1699
   Execution Slots:       SLOT0123
1700
   ========================================================================== */
1701
 
1702
#define Q6_Vb_vlut32_VbVbR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb)(Vu,Vv,Rt)
1703
#endif /* __HEXAGON_ARCH___ >= 60 */
1704
 
1705
#if __HVX_ARCH__ >= 60
1706
/* ==========================================================================
1707
   Assembly Syntax:       Vx32.b|=vlut32(Vu32.b,Vv32.b,Rt8)
1708
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32or_VbVbVbR(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1709
   Instruction Type:      CVI_VP_VS
1710
   Execution Slots:       SLOT0123
1711
   ========================================================================== */
1712
 
1713
#define Q6_Vb_vlut32or_VbVbVbR(Vx,Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_oracc)(Vx,Vu,Vv,Rt)
1714
#endif /* __HEXAGON_ARCH___ >= 60 */
1715
 
1716
#if __HVX_ARCH__ >= 60
1717
/* ==========================================================================
1718
   Assembly Syntax:       Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8)
1719
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1720
   Instruction Type:      CVI_VP_VS
1721
   Execution Slots:       SLOT0123
1722
   ========================================================================== */
1723
 
1724
#define Q6_Wh_vlut16_VbVhR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh)(Vu,Vv,Rt)
1725
#endif /* __HEXAGON_ARCH___ >= 60 */
1726
 
1727
#if __HVX_ARCH__ >= 60
1728
/* ==========================================================================
1729
   Assembly Syntax:       Vxx32.h|=vlut16(Vu32.b,Vv32.h,Rt8)
1730
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16or_WhVbVhR(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1731
   Instruction Type:      CVI_VP_VS
1732
   Execution Slots:       SLOT0123
1733
   ========================================================================== */
1734
 
1735
#define Q6_Wh_vlut16or_WhVbVhR(Vxx,Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_oracc)(Vxx,Vu,Vv,Rt)
1736
#endif /* __HEXAGON_ARCH___ >= 60 */
1737
 
1738
#if __HVX_ARCH__ >= 60
1739
/* ==========================================================================
1740
   Assembly Syntax:       Vd32.h=vmax(Vu32.h,Vv32.h)
1741
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vmax_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1742
   Instruction Type:      CVI_VA
1743
   Execution Slots:       SLOT0123
1744
   ========================================================================== */
1745
 
1746
#define Q6_Vh_vmax_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxh)(Vu,Vv)
1747
#endif /* __HEXAGON_ARCH___ >= 60 */
1748
 
1749
#if __HVX_ARCH__ >= 60
1750
/* ==========================================================================
1751
   Assembly Syntax:       Vd32.ub=vmax(Vu32.ub,Vv32.ub)
1752
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vmax_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1753
   Instruction Type:      CVI_VA
1754
   Execution Slots:       SLOT0123
1755
   ========================================================================== */
1756
 
1757
#define Q6_Vub_vmax_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxub)(Vu,Vv)
1758
#endif /* __HEXAGON_ARCH___ >= 60 */
1759
 
1760
#if __HVX_ARCH__ >= 60
1761
/* ==========================================================================
1762
   Assembly Syntax:       Vd32.uh=vmax(Vu32.uh,Vv32.uh)
1763
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmax_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1764
   Instruction Type:      CVI_VA
1765
   Execution Slots:       SLOT0123
1766
   ========================================================================== */
1767
 
1768
#define Q6_Vuh_vmax_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxuh)(Vu,Vv)
1769
#endif /* __HEXAGON_ARCH___ >= 60 */
1770
 
1771
#if __HVX_ARCH__ >= 60
1772
/* ==========================================================================
1773
   Assembly Syntax:       Vd32.w=vmax(Vu32.w,Vv32.w)
1774
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmax_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1775
   Instruction Type:      CVI_VA
1776
   Execution Slots:       SLOT0123
1777
   ========================================================================== */
1778
 
1779
#define Q6_Vw_vmax_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxw)(Vu,Vv)
1780
#endif /* __HEXAGON_ARCH___ >= 60 */
1781
 
1782
#if __HVX_ARCH__ >= 60
1783
/* ==========================================================================
1784
   Assembly Syntax:       Vd32.h=vmin(Vu32.h,Vv32.h)
1785
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vmin_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1786
   Instruction Type:      CVI_VA
1787
   Execution Slots:       SLOT0123
1788
   ========================================================================== */
1789
 
1790
#define Q6_Vh_vmin_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminh)(Vu,Vv)
1791
#endif /* __HEXAGON_ARCH___ >= 60 */
1792
 
1793
#if __HVX_ARCH__ >= 60
1794
/* ==========================================================================
1795
   Assembly Syntax:       Vd32.ub=vmin(Vu32.ub,Vv32.ub)
1796
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vmin_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1797
   Instruction Type:      CVI_VA
1798
   Execution Slots:       SLOT0123
1799
   ========================================================================== */
1800
 
1801
#define Q6_Vub_vmin_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminub)(Vu,Vv)
1802
#endif /* __HEXAGON_ARCH___ >= 60 */
1803
 
1804
#if __HVX_ARCH__ >= 60
1805
/* ==========================================================================
1806
   Assembly Syntax:       Vd32.uh=vmin(Vu32.uh,Vv32.uh)
1807
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmin_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1808
   Instruction Type:      CVI_VA
1809
   Execution Slots:       SLOT0123
1810
   ========================================================================== */
1811
 
1812
#define Q6_Vuh_vmin_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminuh)(Vu,Vv)
1813
#endif /* __HEXAGON_ARCH___ >= 60 */
1814
 
1815
#if __HVX_ARCH__ >= 60
1816
/* ==========================================================================
1817
   Assembly Syntax:       Vd32.w=vmin(Vu32.w,Vv32.w)
1818
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmin_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1819
   Instruction Type:      CVI_VA
1820
   Execution Slots:       SLOT0123
1821
   ========================================================================== */
1822
 
1823
#define Q6_Vw_vmin_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminw)(Vu,Vv)
1824
#endif /* __HEXAGON_ARCH___ >= 60 */
1825
 
1826
#if __HVX_ARCH__ >= 60
1827
/* ==========================================================================
1828
   Assembly Syntax:       Vdd32.h=vmpa(Vuu32.ub,Rt32.b)
1829
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubRb(HVX_VectorPair Vuu, Word32 Rt)
1830
   Instruction Type:      CVI_VX_DV
1831
   Execution Slots:       SLOT23
1832
   ========================================================================== */
1833
 
1834
#define Q6_Wh_vmpa_WubRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabus)(Vuu,Rt)
1835
#endif /* __HEXAGON_ARCH___ >= 60 */
1836
 
1837
#if __HVX_ARCH__ >= 60
1838
/* ==========================================================================
1839
   Assembly Syntax:       Vxx32.h+=vmpa(Vuu32.ub,Rt32.b)
1840
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpaacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1841
   Instruction Type:      CVI_VX_DV
1842
   Execution Slots:       SLOT23
1843
   ========================================================================== */
1844
 
1845
#define Q6_Wh_vmpaacc_WhWubRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabus_acc)(Vxx,Vuu,Rt)
1846
#endif /* __HEXAGON_ARCH___ >= 60 */
1847
 
1848
#if __HVX_ARCH__ >= 60
1849
/* ==========================================================================
1850
   Assembly Syntax:       Vdd32.h=vmpa(Vuu32.ub,Vvv32.b)
1851
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
1852
   Instruction Type:      CVI_VX_DV
1853
   Execution Slots:       SLOT23
1854
   ========================================================================== */
1855
 
1856
#define Q6_Wh_vmpa_WubWb(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabusv)(Vuu,Vvv)
1857
#endif /* __HEXAGON_ARCH___ >= 60 */
1858
 
1859
#if __HVX_ARCH__ >= 60
1860
/* ==========================================================================
1861
   Assembly Syntax:       Vdd32.h=vmpa(Vuu32.ub,Vvv32.ub)
1862
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubWub(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
1863
   Instruction Type:      CVI_VX_DV
1864
   Execution Slots:       SLOT23
1865
   ========================================================================== */
1866
 
1867
#define Q6_Wh_vmpa_WubWub(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuuv)(Vuu,Vvv)
1868
#endif /* __HEXAGON_ARCH___ >= 60 */
1869
 
1870
#if __HVX_ARCH__ >= 60
1871
/* ==========================================================================
1872
   Assembly Syntax:       Vdd32.w=vmpa(Vuu32.h,Rt32.b)
1873
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpa_WhRb(HVX_VectorPair Vuu, Word32 Rt)
1874
   Instruction Type:      CVI_VX_DV
1875
   Execution Slots:       SLOT23
1876
   ========================================================================== */
1877
 
1878
#define Q6_Ww_vmpa_WhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahb)(Vuu,Rt)
1879
#endif /* __HEXAGON_ARCH___ >= 60 */
1880
 
1881
#if __HVX_ARCH__ >= 60
1882
/* ==========================================================================
1883
   Assembly Syntax:       Vxx32.w+=vmpa(Vuu32.h,Rt32.b)
1884
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpaacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1885
   Instruction Type:      CVI_VX_DV
1886
   Execution Slots:       SLOT23
1887
   ========================================================================== */
1888
 
1889
#define Q6_Ww_vmpaacc_WwWhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahb_acc)(Vxx,Vuu,Rt)
1890
#endif /* __HEXAGON_ARCH___ >= 60 */
1891
 
1892
#if __HVX_ARCH__ >= 60
1893
/* ==========================================================================
1894
   Assembly Syntax:       Vdd32.h=vmpy(Vu32.ub,Rt32.b)
1895
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VubRb(HVX_Vector Vu, Word32 Rt)
1896
   Instruction Type:      CVI_VX_DV
1897
   Execution Slots:       SLOT23
1898
   ========================================================================== */
1899
 
1900
#define Q6_Wh_vmpy_VubRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybus)(Vu,Rt)
1901
#endif /* __HEXAGON_ARCH___ >= 60 */
1902
 
1903
#if __HVX_ARCH__ >= 60
1904
/* ==========================================================================
1905
   Assembly Syntax:       Vxx32.h+=vmpy(Vu32.ub,Rt32.b)
1906
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVubRb(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
1907
   Instruction Type:      CVI_VX_DV
1908
   Execution Slots:       SLOT23
1909
   ========================================================================== */
1910
 
1911
#define Q6_Wh_vmpyacc_WhVubRb(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybus_acc)(Vxx,Vu,Rt)
1912
#endif /* __HEXAGON_ARCH___ >= 60 */
1913
 
1914
#if __HVX_ARCH__ >= 60
1915
/* ==========================================================================
1916
   Assembly Syntax:       Vdd32.h=vmpy(Vu32.ub,Vv32.b)
1917
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VubVb(HVX_Vector Vu, HVX_Vector Vv)
1918
   Instruction Type:      CVI_VX_DV
1919
   Execution Slots:       SLOT23
1920
   ========================================================================== */
1921
 
1922
#define Q6_Wh_vmpy_VubVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybusv)(Vu,Vv)
1923
#endif /* __HEXAGON_ARCH___ >= 60 */
1924
 
1925
#if __HVX_ARCH__ >= 60
1926
/* ==========================================================================
1927
   Assembly Syntax:       Vxx32.h+=vmpy(Vu32.ub,Vv32.b)
1928
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVubVb(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
1929
   Instruction Type:      CVI_VX_DV
1930
   Execution Slots:       SLOT23
1931
   ========================================================================== */
1932
 
1933
#define Q6_Wh_vmpyacc_WhVubVb(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybusv_acc)(Vxx,Vu,Vv)
1934
#endif /* __HEXAGON_ARCH___ >= 60 */
1935
 
1936
#if __HVX_ARCH__ >= 60
1937
/* ==========================================================================
1938
   Assembly Syntax:       Vdd32.h=vmpy(Vu32.b,Vv32.b)
1939
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1940
   Instruction Type:      CVI_VX_DV
1941
   Execution Slots:       SLOT23
1942
   ========================================================================== */
1943
 
1944
#define Q6_Wh_vmpy_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybv)(Vu,Vv)
1945
#endif /* __HEXAGON_ARCH___ >= 60 */
1946
 
1947
#if __HVX_ARCH__ >= 60
1948
/* ==========================================================================
1949
   Assembly Syntax:       Vxx32.h+=vmpy(Vu32.b,Vv32.b)
1950
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVbVb(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
1951
   Instruction Type:      CVI_VX_DV
1952
   Execution Slots:       SLOT23
1953
   ========================================================================== */
1954
 
1955
#define Q6_Wh_vmpyacc_WhVbVb(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybv_acc)(Vxx,Vu,Vv)
1956
#endif /* __HEXAGON_ARCH___ >= 60 */
1957
 
1958
#if __HVX_ARCH__ >= 60
1959
/* ==========================================================================
1960
   Assembly Syntax:       Vd32.w=vmpye(Vu32.w,Vv32.uh)
1961
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpye_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
1962
   Instruction Type:      CVI_VX_DV
1963
   Execution Slots:       SLOT23
1964
   ========================================================================== */
1965
 
1966
#define Q6_Vw_vmpye_VwVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyewuh)(Vu,Vv)
1967
#endif /* __HEXAGON_ARCH___ >= 60 */
1968
 
1969
#if __HVX_ARCH__ >= 60
1970
/* ==========================================================================
1971
   Assembly Syntax:       Vdd32.w=vmpy(Vu32.h,Rt32.h)
1972
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhRh(HVX_Vector Vu, Word32 Rt)
1973
   Instruction Type:      CVI_VX_DV
1974
   Execution Slots:       SLOT23
1975
   ========================================================================== */
1976
 
1977
#define Q6_Ww_vmpy_VhRh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyh)(Vu,Rt)
1978
#endif /* __HEXAGON_ARCH___ >= 60 */
1979
 
1980
#if __HVX_ARCH__ >= 60
1981
/* ==========================================================================
1982
   Assembly Syntax:       Vxx32.w+=vmpy(Vu32.h,Rt32.h):sat
1983
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhRh_sat(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
1984
   Instruction Type:      CVI_VX_DV
1985
   Execution Slots:       SLOT23
1986
   ========================================================================== */
1987
 
1988
#define Q6_Ww_vmpyacc_WwVhRh_sat(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhsat_acc)(Vxx,Vu,Rt)
1989
#endif /* __HEXAGON_ARCH___ >= 60 */
1990
 
1991
#if __HVX_ARCH__ >= 60
1992
/* ==========================================================================
1993
   Assembly Syntax:       Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:rnd:sat
1994
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhRh_s1_rnd_sat(HVX_Vector Vu, Word32 Rt)
1995
   Instruction Type:      CVI_VX
1996
   Execution Slots:       SLOT23
1997
   ========================================================================== */
1998
 
1999
#define Q6_Vh_vmpy_VhRh_s1_rnd_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhsrs)(Vu,Rt)
2000
#endif /* __HEXAGON_ARCH___ >= 60 */
2001
 
2002
#if __HVX_ARCH__ >= 60
2003
/* ==========================================================================
2004
   Assembly Syntax:       Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:sat
2005
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhRh_s1_sat(HVX_Vector Vu, Word32 Rt)
2006
   Instruction Type:      CVI_VX
2007
   Execution Slots:       SLOT23
2008
   ========================================================================== */
2009
 
2010
#define Q6_Vh_vmpy_VhRh_s1_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhss)(Vu,Rt)
2011
#endif /* __HEXAGON_ARCH___ >= 60 */
2012
 
2013
#if __HVX_ARCH__ >= 60
2014
/* ==========================================================================
2015
   Assembly Syntax:       Vdd32.w=vmpy(Vu32.h,Vv32.uh)
2016
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhVuh(HVX_Vector Vu, HVX_Vector Vv)
2017
   Instruction Type:      CVI_VX_DV
2018
   Execution Slots:       SLOT23
2019
   ========================================================================== */
2020
 
2021
#define Q6_Ww_vmpy_VhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhus)(Vu,Vv)
2022
#endif /* __HEXAGON_ARCH___ >= 60 */
2023
 
2024
#if __HVX_ARCH__ >= 60
2025
/* ==========================================================================
2026
   Assembly Syntax:       Vxx32.w+=vmpy(Vu32.h,Vv32.uh)
2027
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2028
   Instruction Type:      CVI_VX_DV
2029
   Execution Slots:       SLOT23
2030
   ========================================================================== */
2031
 
2032
#define Q6_Ww_vmpyacc_WwVhVuh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhus_acc)(Vxx,Vu,Vv)
2033
#endif /* __HEXAGON_ARCH___ >= 60 */
2034
 
2035
#if __HVX_ARCH__ >= 60
2036
/* ==========================================================================
2037
   Assembly Syntax:       Vdd32.w=vmpy(Vu32.h,Vv32.h)
2038
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2039
   Instruction Type:      CVI_VX_DV
2040
   Execution Slots:       SLOT23
2041
   ========================================================================== */
2042
 
2043
#define Q6_Ww_vmpy_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhv)(Vu,Vv)
2044
#endif /* __HEXAGON_ARCH___ >= 60 */
2045
 
2046
#if __HVX_ARCH__ >= 60
2047
/* ==========================================================================
2048
   Assembly Syntax:       Vxx32.w+=vmpy(Vu32.h,Vv32.h)
2049
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2050
   Instruction Type:      CVI_VX_DV
2051
   Execution Slots:       SLOT23
2052
   ========================================================================== */
2053
 
2054
#define Q6_Ww_vmpyacc_WwVhVh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhv_acc)(Vxx,Vu,Vv)
2055
#endif /* __HEXAGON_ARCH___ >= 60 */
2056
 
2057
#if __HVX_ARCH__ >= 60
2058
/* ==========================================================================
2059
   Assembly Syntax:       Vd32.h=vmpy(Vu32.h,Vv32.h):<<1:rnd:sat
2060
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhVh_s1_rnd_sat(HVX_Vector Vu, HVX_Vector Vv)
2061
   Instruction Type:      CVI_VX
2062
   Execution Slots:       SLOT23
2063
   ========================================================================== */
2064
 
2065
#define Q6_Vh_vmpy_VhVh_s1_rnd_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhvsrs)(Vu,Vv)
2066
#endif /* __HEXAGON_ARCH___ >= 60 */
2067
 
2068
#if __HVX_ARCH__ >= 60
2069
/* ==========================================================================
2070
   Assembly Syntax:       Vd32.w=vmpyieo(Vu32.h,Vv32.h)
2071
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieo_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2072
   Instruction Type:      CVI_VX
2073
   Execution Slots:       SLOT23
2074
   ========================================================================== */
2075
 
2076
#define Q6_Vw_vmpyieo_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyieoh)(Vu,Vv)
2077
#endif /* __HEXAGON_ARCH___ >= 60 */
2078
 
2079
#if __HVX_ARCH__ >= 60
2080
/* ==========================================================================
2081
   Assembly Syntax:       Vx32.w+=vmpyie(Vu32.w,Vv32.h)
2082
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieacc_VwVwVh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2083
   Instruction Type:      CVI_VX_DV
2084
   Execution Slots:       SLOT23
2085
   ========================================================================== */
2086
 
2087
#define Q6_Vw_vmpyieacc_VwVwVh(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewh_acc)(Vx,Vu,Vv)
2088
#endif /* __HEXAGON_ARCH___ >= 60 */
2089
 
2090
#if __HVX_ARCH__ >= 60
2091
/* ==========================================================================
2092
   Assembly Syntax:       Vd32.w=vmpyie(Vu32.w,Vv32.uh)
2093
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyie_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
2094
   Instruction Type:      CVI_VX_DV
2095
   Execution Slots:       SLOT23
2096
   ========================================================================== */
2097
 
2098
#define Q6_Vw_vmpyie_VwVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewuh)(Vu,Vv)
2099
#endif /* __HEXAGON_ARCH___ >= 60 */
2100
 
2101
#if __HVX_ARCH__ >= 60
2102
/* ==========================================================================
2103
   Assembly Syntax:       Vx32.w+=vmpyie(Vu32.w,Vv32.uh)
2104
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieacc_VwVwVuh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2105
   Instruction Type:      CVI_VX_DV
2106
   Execution Slots:       SLOT23
2107
   ========================================================================== */
2108
 
2109
#define Q6_Vw_vmpyieacc_VwVwVuh(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewuh_acc)(Vx,Vu,Vv)
2110
#endif /* __HEXAGON_ARCH___ >= 60 */
2111
 
2112
#if __HVX_ARCH__ >= 60
2113
/* ==========================================================================
2114
   Assembly Syntax:       Vd32.h=vmpyi(Vu32.h,Vv32.h)
2115
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyi_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2116
   Instruction Type:      CVI_VX_DV
2117
   Execution Slots:       SLOT23
2118
   ========================================================================== */
2119
 
2120
#define Q6_Vh_vmpyi_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyih)(Vu,Vv)
2121
#endif /* __HEXAGON_ARCH___ >= 60 */
2122
 
2123
#if __HVX_ARCH__ >= 60
2124
/* ==========================================================================
2125
   Assembly Syntax:       Vx32.h+=vmpyi(Vu32.h,Vv32.h)
2126
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyiacc_VhVhVh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2127
   Instruction Type:      CVI_VX_DV
2128
   Execution Slots:       SLOT23
2129
   ========================================================================== */
2130
 
2131
#define Q6_Vh_vmpyiacc_VhVhVh(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyih_acc)(Vx,Vu,Vv)
2132
#endif /* __HEXAGON_ARCH___ >= 60 */
2133
 
2134
#if __HVX_ARCH__ >= 60
2135
/* ==========================================================================
2136
   Assembly Syntax:       Vd32.h=vmpyi(Vu32.h,Rt32.b)
2137
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyi_VhRb(HVX_Vector Vu, Word32 Rt)
2138
   Instruction Type:      CVI_VX
2139
   Execution Slots:       SLOT23
2140
   ========================================================================== */
2141
 
2142
#define Q6_Vh_vmpyi_VhRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyihb)(Vu,Rt)
2143
#endif /* __HEXAGON_ARCH___ >= 60 */
2144
 
2145
#if __HVX_ARCH__ >= 60
2146
/* ==========================================================================
2147
   Assembly Syntax:       Vx32.h+=vmpyi(Vu32.h,Rt32.b)
2148
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyiacc_VhVhRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2149
   Instruction Type:      CVI_VX
2150
   Execution Slots:       SLOT23
2151
   ========================================================================== */
2152
 
2153
#define Q6_Vh_vmpyiacc_VhVhRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyihb_acc)(Vx,Vu,Rt)
2154
#endif /* __HEXAGON_ARCH___ >= 60 */
2155
 
2156
#if __HVX_ARCH__ >= 60
2157
/* ==========================================================================
2158
   Assembly Syntax:       Vd32.w=vmpyio(Vu32.w,Vv32.h)
2159
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyio_VwVh(HVX_Vector Vu, HVX_Vector Vv)
2160
   Instruction Type:      CVI_VX_DV
2161
   Execution Slots:       SLOT23
2162
   ========================================================================== */
2163
 
2164
#define Q6_Vw_vmpyio_VwVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiowh)(Vu,Vv)
2165
#endif /* __HEXAGON_ARCH___ >= 60 */
2166
 
2167
#if __HVX_ARCH__ >= 60
2168
/* ==========================================================================
2169
   Assembly Syntax:       Vd32.w=vmpyi(Vu32.w,Rt32.b)
2170
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRb(HVX_Vector Vu, Word32 Rt)
2171
   Instruction Type:      CVI_VX
2172
   Execution Slots:       SLOT23
2173
   ========================================================================== */
2174
 
2175
#define Q6_Vw_vmpyi_VwRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwb)(Vu,Rt)
2176
#endif /* __HEXAGON_ARCH___ >= 60 */
2177
 
2178
#if __HVX_ARCH__ >= 60
2179
/* ==========================================================================
2180
   Assembly Syntax:       Vx32.w+=vmpyi(Vu32.w,Rt32.b)
2181
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2182
   Instruction Type:      CVI_VX
2183
   Execution Slots:       SLOT23
2184
   ========================================================================== */
2185
 
2186
#define Q6_Vw_vmpyiacc_VwVwRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwb_acc)(Vx,Vu,Rt)
2187
#endif /* __HEXAGON_ARCH___ >= 60 */
2188
 
2189
#if __HVX_ARCH__ >= 60
2190
/* ==========================================================================
2191
   Assembly Syntax:       Vd32.w=vmpyi(Vu32.w,Rt32.h)
2192
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRh(HVX_Vector Vu, Word32 Rt)
2193
   Instruction Type:      CVI_VX_DV
2194
   Execution Slots:       SLOT23
2195
   ========================================================================== */
2196
 
2197
#define Q6_Vw_vmpyi_VwRh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwh)(Vu,Rt)
2198
#endif /* __HEXAGON_ARCH___ >= 60 */
2199
 
2200
#if __HVX_ARCH__ >= 60
2201
/* ==========================================================================
2202
   Assembly Syntax:       Vx32.w+=vmpyi(Vu32.w,Rt32.h)
2203
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRh(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2204
   Instruction Type:      CVI_VX_DV
2205
   Execution Slots:       SLOT23
2206
   ========================================================================== */
2207
 
2208
#define Q6_Vw_vmpyiacc_VwVwRh(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwh_acc)(Vx,Vu,Rt)
2209
#endif /* __HEXAGON_ARCH___ >= 60 */
2210
 
2211
#if __HVX_ARCH__ >= 60
2212
/* ==========================================================================
2213
   Assembly Syntax:       Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:sat
2214
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyo_VwVh_s1_sat(HVX_Vector Vu, HVX_Vector Vv)
2215
   Instruction Type:      CVI_VX_DV
2216
   Execution Slots:       SLOT23
2217
   ========================================================================== */
2218
 
2219
#define Q6_Vw_vmpyo_VwVh_s1_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh)(Vu,Vv)
2220
#endif /* __HEXAGON_ARCH___ >= 60 */
2221
 
2222
#if __HVX_ARCH__ >= 60
2223
/* ==========================================================================
2224
   Assembly Syntax:       Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat
2225
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyo_VwVh_s1_rnd_sat(HVX_Vector Vu, HVX_Vector Vv)
2226
   Instruction Type:      CVI_VX_DV
2227
   Execution Slots:       SLOT23
2228
   ========================================================================== */
2229
 
2230
#define Q6_Vw_vmpyo_VwVh_s1_rnd_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_rnd)(Vu,Vv)
2231
#endif /* __HEXAGON_ARCH___ >= 60 */
2232
 
2233
#if __HVX_ARCH__ >= 60
2234
/* ==========================================================================
2235
   Assembly Syntax:       Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat:shift
2236
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyoacc_VwVwVh_s1_rnd_sat_shift(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2237
   Instruction Type:      CVI_VX_DV
2238
   Execution Slots:       SLOT23
2239
   ========================================================================== */
2240
 
2241
#define Q6_Vw_vmpyoacc_VwVwVh_s1_rnd_sat_shift(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_rnd_sacc)(Vx,Vu,Vv)
2242
#endif /* __HEXAGON_ARCH___ >= 60 */
2243
 
2244
#if __HVX_ARCH__ >= 60
2245
/* ==========================================================================
2246
   Assembly Syntax:       Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:sat:shift
2247
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyoacc_VwVwVh_s1_sat_shift(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2248
   Instruction Type:      CVI_VX_DV
2249
   Execution Slots:       SLOT23
2250
   ========================================================================== */
2251
 
2252
#define Q6_Vw_vmpyoacc_VwVwVh_s1_sat_shift(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_sacc)(Vx,Vu,Vv)
2253
#endif /* __HEXAGON_ARCH___ >= 60 */
2254
 
2255
#if __HVX_ARCH__ >= 60
2256
/* ==========================================================================
2257
   Assembly Syntax:       Vdd32.uh=vmpy(Vu32.ub,Rt32.ub)
2258
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpy_VubRub(HVX_Vector Vu, Word32 Rt)
2259
   Instruction Type:      CVI_VX_DV
2260
   Execution Slots:       SLOT23
2261
   ========================================================================== */
2262
 
2263
#define Q6_Wuh_vmpy_VubRub(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyub)(Vu,Rt)
2264
#endif /* __HEXAGON_ARCH___ >= 60 */
2265
 
2266
#if __HVX_ARCH__ >= 60
2267
/* ==========================================================================
2268
   Assembly Syntax:       Vxx32.uh+=vmpy(Vu32.ub,Rt32.ub)
2269
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpyacc_WuhVubRub(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
2270
   Instruction Type:      CVI_VX_DV
2271
   Execution Slots:       SLOT23
2272
   ========================================================================== */
2273
 
2274
#define Q6_Wuh_vmpyacc_WuhVubRub(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyub_acc)(Vxx,Vu,Rt)
2275
#endif /* __HEXAGON_ARCH___ >= 60 */
2276
 
2277
#if __HVX_ARCH__ >= 60
2278
/* ==========================================================================
2279
   Assembly Syntax:       Vdd32.uh=vmpy(Vu32.ub,Vv32.ub)
2280
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpy_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2281
   Instruction Type:      CVI_VX_DV
2282
   Execution Slots:       SLOT23
2283
   ========================================================================== */
2284
 
2285
#define Q6_Wuh_vmpy_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyubv)(Vu,Vv)
2286
#endif /* __HEXAGON_ARCH___ >= 60 */
2287
 
2288
#if __HVX_ARCH__ >= 60
2289
/* ==========================================================================
2290
   Assembly Syntax:       Vxx32.uh+=vmpy(Vu32.ub,Vv32.ub)
2291
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpyacc_WuhVubVub(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2292
   Instruction Type:      CVI_VX_DV
2293
   Execution Slots:       SLOT23
2294
   ========================================================================== */
2295
 
2296
#define Q6_Wuh_vmpyacc_WuhVubVub(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyubv_acc)(Vxx,Vu,Vv)
2297
#endif /* __HEXAGON_ARCH___ >= 60 */
2298
 
2299
#if __HVX_ARCH__ >= 60
2300
/* ==========================================================================
2301
   Assembly Syntax:       Vdd32.uw=vmpy(Vu32.uh,Rt32.uh)
2302
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpy_VuhRuh(HVX_Vector Vu, Word32 Rt)
2303
   Instruction Type:      CVI_VX_DV
2304
   Execution Slots:       SLOT23
2305
   ========================================================================== */
2306
 
2307
#define Q6_Wuw_vmpy_VuhRuh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuh)(Vu,Rt)
2308
#endif /* __HEXAGON_ARCH___ >= 60 */
2309
 
2310
#if __HVX_ARCH__ >= 60
2311
/* ==========================================================================
2312
   Assembly Syntax:       Vxx32.uw+=vmpy(Vu32.uh,Rt32.uh)
2313
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpyacc_WuwVuhRuh(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
2314
   Instruction Type:      CVI_VX_DV
2315
   Execution Slots:       SLOT23
2316
   ========================================================================== */
2317
 
2318
#define Q6_Wuw_vmpyacc_WuwVuhRuh(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuh_acc)(Vxx,Vu,Rt)
2319
#endif /* __HEXAGON_ARCH___ >= 60 */
2320
 
2321
#if __HVX_ARCH__ >= 60
2322
/* ==========================================================================
2323
   Assembly Syntax:       Vdd32.uw=vmpy(Vu32.uh,Vv32.uh)
2324
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpy_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
2325
   Instruction Type:      CVI_VX_DV
2326
   Execution Slots:       SLOT23
2327
   ========================================================================== */
2328
 
2329
#define Q6_Wuw_vmpy_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhv)(Vu,Vv)
2330
#endif /* __HEXAGON_ARCH___ >= 60 */
2331
 
2332
#if __HVX_ARCH__ >= 60
2333
/* ==========================================================================
2334
   Assembly Syntax:       Vxx32.uw+=vmpy(Vu32.uh,Vv32.uh)
2335
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpyacc_WuwVuhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2336
   Instruction Type:      CVI_VX_DV
2337
   Execution Slots:       SLOT23
2338
   ========================================================================== */
2339
 
2340
#define Q6_Wuw_vmpyacc_WuwVuhVuh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhv_acc)(Vxx,Vu,Vv)
2341
#endif /* __HEXAGON_ARCH___ >= 60 */
2342
 
2343
#if __HVX_ARCH__ >= 60
2344
/* ==========================================================================
2345
   Assembly Syntax:       Vd32=vmux(Qt4,Vu32,Vv32)
2346
   C Intrinsic Prototype: HVX_Vector Q6_V_vmux_QVV(HVX_VectorPred Qt, HVX_Vector Vu, HVX_Vector Vv)
2347
   Instruction Type:      CVI_VA
2348
   Execution Slots:       SLOT0123
2349
   ========================================================================== */
2350
 
2351
#define Q6_V_vmux_QVV(Qt,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmux)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1),Vu,Vv)
2352
#endif /* __HEXAGON_ARCH___ >= 60 */
2353
 
2354
#if __HVX_ARCH__ >= 60
2355
/* ==========================================================================
2356
   Assembly Syntax:       Vd32.h=vnavg(Vu32.h,Vv32.h)
2357
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vnavg_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2358
   Instruction Type:      CVI_VA
2359
   Execution Slots:       SLOT0123
2360
   ========================================================================== */
2361
 
2362
#define Q6_Vh_vnavg_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgh)(Vu,Vv)
2363
#endif /* __HEXAGON_ARCH___ >= 60 */
2364
 
2365
#if __HVX_ARCH__ >= 60
2366
/* ==========================================================================
2367
   Assembly Syntax:       Vd32.b=vnavg(Vu32.ub,Vv32.ub)
2368
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vnavg_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2369
   Instruction Type:      CVI_VA
2370
   Execution Slots:       SLOT0123
2371
   ========================================================================== */
2372
 
2373
#define Q6_Vb_vnavg_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgub)(Vu,Vv)
2374
#endif /* __HEXAGON_ARCH___ >= 60 */
2375
 
2376
#if __HVX_ARCH__ >= 60
2377
/* ==========================================================================
2378
   Assembly Syntax:       Vd32.w=vnavg(Vu32.w,Vv32.w)
2379
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vnavg_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2380
   Instruction Type:      CVI_VA
2381
   Execution Slots:       SLOT0123
2382
   ========================================================================== */
2383
 
2384
#define Q6_Vw_vnavg_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgw)(Vu,Vv)
2385
#endif /* __HEXAGON_ARCH___ >= 60 */
2386
 
2387
#if __HVX_ARCH__ >= 60
2388
/* ==========================================================================
2389
   Assembly Syntax:       Vd32.h=vnormamt(Vu32.h)
2390
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vnormamt_Vh(HVX_Vector Vu)
2391
   Instruction Type:      CVI_VS
2392
   Execution Slots:       SLOT0123
2393
   ========================================================================== */
2394
 
2395
#define Q6_Vh_vnormamt_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnormamth)(Vu)
2396
#endif /* __HEXAGON_ARCH___ >= 60 */
2397
 
2398
#if __HVX_ARCH__ >= 60
2399
/* ==========================================================================
2400
   Assembly Syntax:       Vd32.w=vnormamt(Vu32.w)
2401
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vnormamt_Vw(HVX_Vector Vu)
2402
   Instruction Type:      CVI_VS
2403
   Execution Slots:       SLOT0123
2404
   ========================================================================== */
2405
 
2406
#define Q6_Vw_vnormamt_Vw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnormamtw)(Vu)
2407
#endif /* __HEXAGON_ARCH___ >= 60 */
2408
 
2409
#if __HVX_ARCH__ >= 60
2410
/* ==========================================================================
2411
   Assembly Syntax:       Vd32=vnot(Vu32)
2412
   C Intrinsic Prototype: HVX_Vector Q6_V_vnot_V(HVX_Vector Vu)
2413
   Instruction Type:      CVI_VA
2414
   Execution Slots:       SLOT0123
2415
   ========================================================================== */
2416
 
2417
#define Q6_V_vnot_V(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnot)(Vu)
2418
#endif /* __HEXAGON_ARCH___ >= 60 */
2419
 
2420
#if __HVX_ARCH__ >= 60
2421
/* ==========================================================================
2422
   Assembly Syntax:       Vd32=vor(Vu32,Vv32)
2423
   C Intrinsic Prototype: HVX_Vector Q6_V_vor_VV(HVX_Vector Vu, HVX_Vector Vv)
2424
   Instruction Type:      CVI_VA
2425
   Execution Slots:       SLOT0123
2426
   ========================================================================== */
2427
 
2428
#define Q6_V_vor_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vor)(Vu,Vv)
2429
#endif /* __HEXAGON_ARCH___ >= 60 */
2430
 
2431
#if __HVX_ARCH__ >= 60
2432
/* ==========================================================================
2433
   Assembly Syntax:       Vd32.b=vpacke(Vu32.h,Vv32.h)
2434
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vpacke_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2435
   Instruction Type:      CVI_VP
2436
   Execution Slots:       SLOT0123
2437
   ========================================================================== */
2438
 
2439
#define Q6_Vb_vpacke_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackeb)(Vu,Vv)
2440
#endif /* __HEXAGON_ARCH___ >= 60 */
2441
 
2442
#if __HVX_ARCH__ >= 60
2443
/* ==========================================================================
2444
   Assembly Syntax:       Vd32.h=vpacke(Vu32.w,Vv32.w)
2445
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vpacke_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2446
   Instruction Type:      CVI_VP
2447
   Execution Slots:       SLOT0123
2448
   ========================================================================== */
2449
 
2450
#define Q6_Vh_vpacke_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackeh)(Vu,Vv)
2451
#endif /* __HEXAGON_ARCH___ >= 60 */
2452
 
2453
#if __HVX_ARCH__ >= 60
2454
/* ==========================================================================
2455
   Assembly Syntax:       Vd32.b=vpack(Vu32.h,Vv32.h):sat
2456
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vpack_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2457
   Instruction Type:      CVI_VP
2458
   Execution Slots:       SLOT0123
2459
   ========================================================================== */
2460
 
2461
#define Q6_Vb_vpack_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackhb_sat)(Vu,Vv)
2462
#endif /* __HEXAGON_ARCH___ >= 60 */
2463
 
2464
#if __HVX_ARCH__ >= 60
2465
/* ==========================================================================
2466
   Assembly Syntax:       Vd32.ub=vpack(Vu32.h,Vv32.h):sat
2467
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vpack_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2468
   Instruction Type:      CVI_VP
2469
   Execution Slots:       SLOT0123
2470
   ========================================================================== */
2471
 
2472
#define Q6_Vub_vpack_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackhub_sat)(Vu,Vv)
2473
#endif /* __HEXAGON_ARCH___ >= 60 */
2474
 
2475
#if __HVX_ARCH__ >= 60
2476
/* ==========================================================================
2477
   Assembly Syntax:       Vd32.b=vpacko(Vu32.h,Vv32.h)
2478
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vpacko_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2479
   Instruction Type:      CVI_VP
2480
   Execution Slots:       SLOT0123
2481
   ========================================================================== */
2482
 
2483
#define Q6_Vb_vpacko_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackob)(Vu,Vv)
2484
#endif /* __HEXAGON_ARCH___ >= 60 */
2485
 
2486
#if __HVX_ARCH__ >= 60
2487
/* ==========================================================================
2488
   Assembly Syntax:       Vd32.h=vpacko(Vu32.w,Vv32.w)
2489
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vpacko_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2490
   Instruction Type:      CVI_VP
2491
   Execution Slots:       SLOT0123
2492
   ========================================================================== */
2493
 
2494
#define Q6_Vh_vpacko_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackoh)(Vu,Vv)
2495
#endif /* __HEXAGON_ARCH___ >= 60 */
2496
 
2497
#if __HVX_ARCH__ >= 60
2498
/* ==========================================================================
2499
   Assembly Syntax:       Vd32.h=vpack(Vu32.w,Vv32.w):sat
2500
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vpack_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2501
   Instruction Type:      CVI_VP
2502
   Execution Slots:       SLOT0123
2503
   ========================================================================== */
2504
 
2505
#define Q6_Vh_vpack_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackwh_sat)(Vu,Vv)
2506
#endif /* __HEXAGON_ARCH___ >= 60 */
2507
 
2508
#if __HVX_ARCH__ >= 60
2509
/* ==========================================================================
2510
   Assembly Syntax:       Vd32.uh=vpack(Vu32.w,Vv32.w):sat
2511
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vpack_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2512
   Instruction Type:      CVI_VP
2513
   Execution Slots:       SLOT0123
2514
   ========================================================================== */
2515
 
2516
#define Q6_Vuh_vpack_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackwuh_sat)(Vu,Vv)
2517
#endif /* __HEXAGON_ARCH___ >= 60 */
2518
 
2519
#if __HVX_ARCH__ >= 60
2520
/* ==========================================================================
2521
   Assembly Syntax:       Vd32.h=vpopcount(Vu32.h)
2522
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vpopcount_Vh(HVX_Vector Vu)
2523
   Instruction Type:      CVI_VS
2524
   Execution Slots:       SLOT0123
2525
   ========================================================================== */
2526
 
2527
#define Q6_Vh_vpopcount_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpopcounth)(Vu)
2528
#endif /* __HEXAGON_ARCH___ >= 60 */
2529
 
2530
#if __HVX_ARCH__ >= 60
2531
/* ==========================================================================
2532
   Assembly Syntax:       Vd32=vrdelta(Vu32,Vv32)
2533
   C Intrinsic Prototype: HVX_Vector Q6_V_vrdelta_VV(HVX_Vector Vu, HVX_Vector Vv)
2534
   Instruction Type:      CVI_VP
2535
   Execution Slots:       SLOT0123
2536
   ========================================================================== */
2537
 
2538
#define Q6_V_vrdelta_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrdelta)(Vu,Vv)
2539
#endif /* __HEXAGON_ARCH___ >= 60 */
2540
 
2541
#if __HVX_ARCH__ >= 60
2542
/* ==========================================================================
2543
   Assembly Syntax:       Vd32.w=vrmpy(Vu32.ub,Rt32.b)
2544
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VubRb(HVX_Vector Vu, Word32 Rt)
2545
   Instruction Type:      CVI_VX
2546
   Execution Slots:       SLOT23
2547
   ========================================================================== */
2548
 
2549
#define Q6_Vw_vrmpy_VubRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybus)(Vu,Rt)
2550
#endif /* __HEXAGON_ARCH___ >= 60 */
2551
 
2552
#if __HVX_ARCH__ >= 60
2553
/* ==========================================================================
2554
   Assembly Syntax:       Vx32.w+=vrmpy(Vu32.ub,Rt32.b)
2555
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVubRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2556
   Instruction Type:      CVI_VX
2557
   Execution Slots:       SLOT23
2558
   ========================================================================== */
2559
 
2560
#define Q6_Vw_vrmpyacc_VwVubRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybus_acc)(Vx,Vu,Rt)
2561
#endif /* __HEXAGON_ARCH___ >= 60 */
2562
 
2563
#if __HVX_ARCH__ >= 60
2564
/* ==========================================================================
2565
   Assembly Syntax:       Vdd32.w=vrmpy(Vuu32.ub,Rt32.b,#u1)
2566
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vrmpy_WubRbI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2567
   Instruction Type:      CVI_VX_DV
2568
   Execution Slots:       SLOT23
2569
   ========================================================================== */
2570
 
2571
#define Q6_Ww_vrmpy_WubRbI(Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusi)(Vuu,Rt,Iu1)
2572
#endif /* __HEXAGON_ARCH___ >= 60 */
2573
 
2574
#if __HVX_ARCH__ >= 60
2575
/* ==========================================================================
2576
   Assembly Syntax:       Vxx32.w+=vrmpy(Vuu32.ub,Rt32.b,#u1)
2577
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vrmpyacc_WwWubRbI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2578
   Instruction Type:      CVI_VX_DV
2579
   Execution Slots:       SLOT23
2580
   ========================================================================== */
2581
 
2582
#define Q6_Ww_vrmpyacc_WwWubRbI(Vxx,Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusi_acc)(Vxx,Vuu,Rt,Iu1)
2583
#endif /* __HEXAGON_ARCH___ >= 60 */
2584
 
2585
#if __HVX_ARCH__ >= 60
2586
/* ==========================================================================
2587
   Assembly Syntax:       Vd32.w=vrmpy(Vu32.ub,Vv32.b)
2588
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VubVb(HVX_Vector Vu, HVX_Vector Vv)
2589
   Instruction Type:      CVI_VX
2590
   Execution Slots:       SLOT23
2591
   ========================================================================== */
2592
 
2593
#define Q6_Vw_vrmpy_VubVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusv)(Vu,Vv)
2594
#endif /* __HEXAGON_ARCH___ >= 60 */
2595
 
2596
#if __HVX_ARCH__ >= 60
2597
/* ==========================================================================
2598
   Assembly Syntax:       Vx32.w+=vrmpy(Vu32.ub,Vv32.b)
2599
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVubVb(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2600
   Instruction Type:      CVI_VX
2601
   Execution Slots:       SLOT23
2602
   ========================================================================== */
2603
 
2604
#define Q6_Vw_vrmpyacc_VwVubVb(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusv_acc)(Vx,Vu,Vv)
2605
#endif /* __HEXAGON_ARCH___ >= 60 */
2606
 
2607
#if __HVX_ARCH__ >= 60
2608
/* ==========================================================================
2609
   Assembly Syntax:       Vd32.w=vrmpy(Vu32.b,Vv32.b)
2610
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2611
   Instruction Type:      CVI_VX
2612
   Execution Slots:       SLOT23
2613
   ========================================================================== */
2614
 
2615
#define Q6_Vw_vrmpy_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybv)(Vu,Vv)
2616
#endif /* __HEXAGON_ARCH___ >= 60 */
2617
 
2618
#if __HVX_ARCH__ >= 60
2619
/* ==========================================================================
2620
   Assembly Syntax:       Vx32.w+=vrmpy(Vu32.b,Vv32.b)
2621
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVbVb(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2622
   Instruction Type:      CVI_VX
2623
   Execution Slots:       SLOT23
2624
   ========================================================================== */
2625
 
2626
#define Q6_Vw_vrmpyacc_VwVbVb(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybv_acc)(Vx,Vu,Vv)
2627
#endif /* __HEXAGON_ARCH___ >= 60 */
2628
 
2629
#if __HVX_ARCH__ >= 60
2630
/* ==========================================================================
2631
   Assembly Syntax:       Vd32.uw=vrmpy(Vu32.ub,Rt32.ub)
2632
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpy_VubRub(HVX_Vector Vu, Word32 Rt)
2633
   Instruction Type:      CVI_VX
2634
   Execution Slots:       SLOT23
2635
   ========================================================================== */
2636
 
2637
#define Q6_Vuw_vrmpy_VubRub(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyub)(Vu,Rt)
2638
#endif /* __HEXAGON_ARCH___ >= 60 */
2639
 
2640
#if __HVX_ARCH__ >= 60
2641
/* ==========================================================================
2642
   Assembly Syntax:       Vx32.uw+=vrmpy(Vu32.ub,Rt32.ub)
2643
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpyacc_VuwVubRub(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2644
   Instruction Type:      CVI_VX
2645
   Execution Slots:       SLOT23
2646
   ========================================================================== */
2647
 
2648
#define Q6_Vuw_vrmpyacc_VuwVubRub(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyub_acc)(Vx,Vu,Rt)
2649
#endif /* __HEXAGON_ARCH___ >= 60 */
2650
 
2651
#if __HVX_ARCH__ >= 60
2652
/* ==========================================================================
2653
   Assembly Syntax:       Vdd32.uw=vrmpy(Vuu32.ub,Rt32.ub,#u1)
2654
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrmpy_WubRubI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2655
   Instruction Type:      CVI_VX_DV
2656
   Execution Slots:       SLOT23
2657
   ========================================================================== */
2658
 
2659
#define Q6_Wuw_vrmpy_WubRubI(Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubi)(Vuu,Rt,Iu1)
2660
#endif /* __HEXAGON_ARCH___ >= 60 */
2661
 
2662
#if __HVX_ARCH__ >= 60
2663
/* ==========================================================================
2664
   Assembly Syntax:       Vxx32.uw+=vrmpy(Vuu32.ub,Rt32.ub,#u1)
2665
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrmpyacc_WuwWubRubI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2666
   Instruction Type:      CVI_VX_DV
2667
   Execution Slots:       SLOT23
2668
   ========================================================================== */
2669
 
2670
#define Q6_Wuw_vrmpyacc_WuwWubRubI(Vxx,Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubi_acc)(Vxx,Vuu,Rt,Iu1)
2671
#endif /* __HEXAGON_ARCH___ >= 60 */
2672
 
2673
#if __HVX_ARCH__ >= 60
2674
/* ==========================================================================
2675
   Assembly Syntax:       Vd32.uw=vrmpy(Vu32.ub,Vv32.ub)
2676
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpy_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2677
   Instruction Type:      CVI_VX
2678
   Execution Slots:       SLOT23
2679
   ========================================================================== */
2680
 
2681
#define Q6_Vuw_vrmpy_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubv)(Vu,Vv)
2682
#endif /* __HEXAGON_ARCH___ >= 60 */
2683
 
2684
#if __HVX_ARCH__ >= 60
2685
/* ==========================================================================
2686
   Assembly Syntax:       Vx32.uw+=vrmpy(Vu32.ub,Vv32.ub)
2687
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpyacc_VuwVubVub(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2688
   Instruction Type:      CVI_VX
2689
   Execution Slots:       SLOT23
2690
   ========================================================================== */
2691
 
2692
#define Q6_Vuw_vrmpyacc_VuwVubVub(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubv_acc)(Vx,Vu,Vv)
2693
#endif /* __HEXAGON_ARCH___ >= 60 */
2694
 
2695
#if __HVX_ARCH__ >= 60
2696
/* ==========================================================================
2697
   Assembly Syntax:       Vd32=vror(Vu32,Rt32)
2698
   C Intrinsic Prototype: HVX_Vector Q6_V_vror_VR(HVX_Vector Vu, Word32 Rt)
2699
   Instruction Type:      CVI_VP
2700
   Execution Slots:       SLOT0123
2701
   ========================================================================== */
2702
 
2703
#define Q6_V_vror_VR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vror)(Vu,Rt)
2704
#endif /* __HEXAGON_ARCH___ >= 60 */
2705
 
2706
#if __HVX_ARCH__ >= 60
2707
/* ==========================================================================
2708
   Assembly Syntax:       Vd32.b=vround(Vu32.h,Vv32.h):sat
2709
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vround_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2710
   Instruction Type:      CVI_VS
2711
   Execution Slots:       SLOT0123
2712
   ========================================================================== */
2713
 
2714
#define Q6_Vb_vround_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundhb)(Vu,Vv)
2715
#endif /* __HEXAGON_ARCH___ >= 60 */
2716
 
2717
#if __HVX_ARCH__ >= 60
2718
/* ==========================================================================
2719
   Assembly Syntax:       Vd32.ub=vround(Vu32.h,Vv32.h):sat
2720
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vround_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2721
   Instruction Type:      CVI_VS
2722
   Execution Slots:       SLOT0123
2723
   ========================================================================== */
2724
 
2725
#define Q6_Vub_vround_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundhub)(Vu,Vv)
2726
#endif /* __HEXAGON_ARCH___ >= 60 */
2727
 
2728
#if __HVX_ARCH__ >= 60
2729
/* ==========================================================================
2730
   Assembly Syntax:       Vd32.h=vround(Vu32.w,Vv32.w):sat
2731
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vround_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2732
   Instruction Type:      CVI_VS
2733
   Execution Slots:       SLOT0123
2734
   ========================================================================== */
2735
 
2736
#define Q6_Vh_vround_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundwh)(Vu,Vv)
2737
#endif /* __HEXAGON_ARCH___ >= 60 */
2738
 
2739
#if __HVX_ARCH__ >= 60
2740
/* ==========================================================================
2741
   Assembly Syntax:       Vd32.uh=vround(Vu32.w,Vv32.w):sat
2742
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vround_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2743
   Instruction Type:      CVI_VS
2744
   Execution Slots:       SLOT0123
2745
   ========================================================================== */
2746
 
2747
#define Q6_Vuh_vround_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundwuh)(Vu,Vv)
2748
#endif /* __HEXAGON_ARCH___ >= 60 */
2749
 
2750
#if __HVX_ARCH__ >= 60
2751
/* ==========================================================================
2752
   Assembly Syntax:       Vdd32.uw=vrsad(Vuu32.ub,Rt32.ub,#u1)
2753
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrsad_WubRubI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2754
   Instruction Type:      CVI_VX_DV
2755
   Execution Slots:       SLOT23
2756
   ========================================================================== */
2757
 
2758
#define Q6_Wuw_vrsad_WubRubI(Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrsadubi)(Vuu,Rt,Iu1)
2759
#endif /* __HEXAGON_ARCH___ >= 60 */
2760
 
2761
#if __HVX_ARCH__ >= 60
2762
/* ==========================================================================
2763
   Assembly Syntax:       Vxx32.uw+=vrsad(Vuu32.ub,Rt32.ub,#u1)
2764
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrsadacc_WuwWubRubI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2765
   Instruction Type:      CVI_VX_DV
2766
   Execution Slots:       SLOT23
2767
   ========================================================================== */
2768
 
2769
#define Q6_Wuw_vrsadacc_WuwWubRubI(Vxx,Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrsadubi_acc)(Vxx,Vuu,Rt,Iu1)
2770
#endif /* __HEXAGON_ARCH___ >= 60 */
2771
 
2772
#if __HVX_ARCH__ >= 60
2773
/* ==========================================================================
2774
   Assembly Syntax:       Vd32.ub=vsat(Vu32.h,Vv32.h)
2775
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vsat_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2776
   Instruction Type:      CVI_VA
2777
   Execution Slots:       SLOT0123
2778
   ========================================================================== */
2779
 
2780
#define Q6_Vub_vsat_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsathub)(Vu,Vv)
2781
#endif /* __HEXAGON_ARCH___ >= 60 */
2782
 
2783
#if __HVX_ARCH__ >= 60
2784
/* ==========================================================================
2785
   Assembly Syntax:       Vd32.h=vsat(Vu32.w,Vv32.w)
2786
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vsat_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2787
   Instruction Type:      CVI_VA
2788
   Execution Slots:       SLOT0123
2789
   ========================================================================== */
2790
 
2791
#define Q6_Vh_vsat_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatwh)(Vu,Vv)
2792
#endif /* __HEXAGON_ARCH___ >= 60 */
2793
 
2794
#if __HVX_ARCH__ >= 60
2795
/* ==========================================================================
2796
   Assembly Syntax:       Vdd32.h=vsxt(Vu32.b)
2797
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsxt_Vb(HVX_Vector Vu)
2798
   Instruction Type:      CVI_VA_DV
2799
   Execution Slots:       SLOT0123
2800
   ========================================================================== */
2801
 
2802
#define Q6_Wh_vsxt_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsb)(Vu)
2803
#endif /* __HEXAGON_ARCH___ >= 60 */
2804
 
2805
#if __HVX_ARCH__ >= 60
2806
/* ==========================================================================
2807
   Assembly Syntax:       Vdd32.w=vsxt(Vu32.h)
2808
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsxt_Vh(HVX_Vector Vu)
2809
   Instruction Type:      CVI_VA_DV
2810
   Execution Slots:       SLOT0123
2811
   ========================================================================== */
2812
 
2813
#define Q6_Ww_vsxt_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsh)(Vu)
2814
#endif /* __HEXAGON_ARCH___ >= 60 */
2815
 
2816
#if __HVX_ARCH__ >= 60
2817
/* ==========================================================================
2818
   Assembly Syntax:       Vd32.h=vshuffe(Vu32.h,Vv32.h)
2819
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuffe_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2820
   Instruction Type:      CVI_VA
2821
   Execution Slots:       SLOT0123
2822
   ========================================================================== */
2823
 
2824
#define Q6_Vh_vshuffe_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufeh)(Vu,Vv)
2825
#endif /* __HEXAGON_ARCH___ >= 60 */
2826
 
2827
#if __HVX_ARCH__ >= 60
2828
/* ==========================================================================
2829
   Assembly Syntax:       Vd32.b=vshuff(Vu32.b)
2830
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuff_Vb(HVX_Vector Vu)
2831
   Instruction Type:      CVI_VP
2832
   Execution Slots:       SLOT0123
2833
   ========================================================================== */
2834
 
2835
#define Q6_Vb_vshuff_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffb)(Vu)
2836
#endif /* __HEXAGON_ARCH___ >= 60 */
2837
 
2838
#if __HVX_ARCH__ >= 60
2839
/* ==========================================================================
2840
   Assembly Syntax:       Vd32.b=vshuffe(Vu32.b,Vv32.b)
2841
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuffe_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2842
   Instruction Type:      CVI_VA
2843
   Execution Slots:       SLOT0123
2844
   ========================================================================== */
2845
 
2846
#define Q6_Vb_vshuffe_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffeb)(Vu,Vv)
2847
#endif /* __HEXAGON_ARCH___ >= 60 */
2848
 
2849
#if __HVX_ARCH__ >= 60
2850
/* ==========================================================================
2851
   Assembly Syntax:       Vd32.h=vshuff(Vu32.h)
2852
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuff_Vh(HVX_Vector Vu)
2853
   Instruction Type:      CVI_VP
2854
   Execution Slots:       SLOT0123
2855
   ========================================================================== */
2856
 
2857
#define Q6_Vh_vshuff_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffh)(Vu)
2858
#endif /* __HEXAGON_ARCH___ >= 60 */
2859
 
2860
#if __HVX_ARCH__ >= 60
2861
/* ==========================================================================
2862
   Assembly Syntax:       Vd32.b=vshuffo(Vu32.b,Vv32.b)
2863
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuffo_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2864
   Instruction Type:      CVI_VA
2865
   Execution Slots:       SLOT0123
2866
   ========================================================================== */
2867
 
2868
#define Q6_Vb_vshuffo_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffob)(Vu,Vv)
2869
#endif /* __HEXAGON_ARCH___ >= 60 */
2870
 
2871
#if __HVX_ARCH__ >= 60
2872
/* ==========================================================================
2873
   Assembly Syntax:       Vdd32=vshuff(Vu32,Vv32,Rt8)
2874
   C Intrinsic Prototype: HVX_VectorPair Q6_W_vshuff_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
2875
   Instruction Type:      CVI_VP_VS
2876
   Execution Slots:       SLOT0123
2877
   ========================================================================== */
2878
 
2879
#define Q6_W_vshuff_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffvdd)(Vu,Vv,Rt)
2880
#endif /* __HEXAGON_ARCH___ >= 60 */
2881
 
2882
#if __HVX_ARCH__ >= 60
2883
/* ==========================================================================
2884
   Assembly Syntax:       Vdd32.b=vshuffoe(Vu32.b,Vv32.b)
2885
   C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vshuffoe_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2886
   Instruction Type:      CVI_VA_DV
2887
   Execution Slots:       SLOT0123
2888
   ========================================================================== */
2889
 
2890
#define Q6_Wb_vshuffoe_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoeb)(Vu,Vv)
2891
#endif /* __HEXAGON_ARCH___ >= 60 */
2892
 
2893
#if __HVX_ARCH__ >= 60
2894
/* ==========================================================================
2895
   Assembly Syntax:       Vdd32.h=vshuffoe(Vu32.h,Vv32.h)
2896
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vshuffoe_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2897
   Instruction Type:      CVI_VA_DV
2898
   Execution Slots:       SLOT0123
2899
   ========================================================================== */
2900
 
2901
#define Q6_Wh_vshuffoe_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoeh)(Vu,Vv)
2902
#endif /* __HEXAGON_ARCH___ >= 60 */
2903
 
2904
#if __HVX_ARCH__ >= 60
2905
/* ==========================================================================
2906
   Assembly Syntax:       Vd32.h=vshuffo(Vu32.h,Vv32.h)
2907
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuffo_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2908
   Instruction Type:      CVI_VA
2909
   Execution Slots:       SLOT0123
2910
   ========================================================================== */
2911
 
2912
#define Q6_Vh_vshuffo_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoh)(Vu,Vv)
2913
#endif /* __HEXAGON_ARCH___ >= 60 */
2914
 
2915
#if __HVX_ARCH__ >= 60
2916
/* ==========================================================================
2917
   Assembly Syntax:       Vd32.b=vsub(Vu32.b,Vv32.b)
2918
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vsub_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2919
   Instruction Type:      CVI_VA
2920
   Execution Slots:       SLOT0123
2921
   ========================================================================== */
2922
 
2923
#define Q6_Vb_vsub_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubb)(Vu,Vv)
2924
#endif /* __HEXAGON_ARCH___ >= 60 */
2925
 
2926
#if __HVX_ARCH__ >= 60
2927
/* ==========================================================================
2928
   Assembly Syntax:       Vdd32.b=vsub(Vuu32.b,Vvv32.b)
2929
   C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vsub_WbWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
2930
   Instruction Type:      CVI_VA_DV
2931
   Execution Slots:       SLOT0123
2932
   ========================================================================== */
2933
 
2934
#define Q6_Wb_vsub_WbWb(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubb_dv)(Vuu,Vvv)
2935
#endif /* __HEXAGON_ARCH___ >= 60 */
2936
 
2937
#if __HVX_ARCH__ >= 60
2938
/* ==========================================================================
2939
   Assembly Syntax:       if (!Qv4) Vx32.b-=Vu32.b
2940
   C Intrinsic Prototype: HVX_Vector Q6_Vb_condnac_QnVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2941
   Instruction Type:      CVI_VA
2942
   Execution Slots:       SLOT0123
2943
   ========================================================================== */
2944
 
2945
#define Q6_Vb_condnac_QnVbVb(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
2946
#endif /* __HEXAGON_ARCH___ >= 60 */
2947
 
2948
#if __HVX_ARCH__ >= 60
2949
/* ==========================================================================
2950
   Assembly Syntax:       if (Qv4) Vx32.b-=Vu32.b
2951
   C Intrinsic Prototype: HVX_Vector Q6_Vb_condnac_QVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2952
   Instruction Type:      CVI_VA
2953
   Execution Slots:       SLOT0123
2954
   ========================================================================== */
2955
 
2956
#define Q6_Vb_condnac_QVbVb(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
2957
#endif /* __HEXAGON_ARCH___ >= 60 */
2958
 
2959
#if __HVX_ARCH__ >= 60
2960
/* ==========================================================================
2961
   Assembly Syntax:       Vd32.h=vsub(Vu32.h,Vv32.h)
2962
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vsub_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2963
   Instruction Type:      CVI_VA
2964
   Execution Slots:       SLOT0123
2965
   ========================================================================== */
2966
 
2967
#define Q6_Vh_vsub_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubh)(Vu,Vv)
2968
#endif /* __HEXAGON_ARCH___ >= 60 */
2969
 
2970
#if __HVX_ARCH__ >= 60
2971
/* ==========================================================================
2972
   Assembly Syntax:       Vdd32.h=vsub(Vuu32.h,Vvv32.h)
2973
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_WhWh(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
2974
   Instruction Type:      CVI_VA_DV
2975
   Execution Slots:       SLOT0123
2976
   ========================================================================== */
2977
 
2978
#define Q6_Wh_vsub_WhWh(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubh_dv)(Vuu,Vvv)
2979
#endif /* __HEXAGON_ARCH___ >= 60 */
2980
 
2981
#if __HVX_ARCH__ >= 60
2982
/* ==========================================================================
2983
   Assembly Syntax:       if (!Qv4) Vx32.h-=Vu32.h
2984
   C Intrinsic Prototype: HVX_Vector Q6_Vh_condnac_QnVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2985
   Instruction Type:      CVI_VA
2986
   Execution Slots:       SLOT0123
2987
   ========================================================================== */
2988
 
2989
#define Q6_Vh_condnac_QnVhVh(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
2990
#endif /* __HEXAGON_ARCH___ >= 60 */
2991
 
2992
#if __HVX_ARCH__ >= 60
2993
/* ==========================================================================
2994
   Assembly Syntax:       if (Qv4) Vx32.h-=Vu32.h
2995
   C Intrinsic Prototype: HVX_Vector Q6_Vh_condnac_QVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2996
   Instruction Type:      CVI_VA
2997
   Execution Slots:       SLOT0123
2998
   ========================================================================== */
2999
 
3000
#define Q6_Vh_condnac_QVhVh(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
3001
#endif /* __HEXAGON_ARCH___ >= 60 */
3002
 
3003
#if __HVX_ARCH__ >= 60
3004
/* ==========================================================================
3005
   Assembly Syntax:       Vd32.h=vsub(Vu32.h,Vv32.h):sat
3006
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vsub_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
3007
   Instruction Type:      CVI_VA
3008
   Execution Slots:       SLOT0123
3009
   ========================================================================== */
3010
 
3011
#define Q6_Vh_vsub_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhsat)(Vu,Vv)
3012
#endif /* __HEXAGON_ARCH___ >= 60 */
3013
 
3014
#if __HVX_ARCH__ >= 60
3015
/* ==========================================================================
3016
   Assembly Syntax:       Vdd32.h=vsub(Vuu32.h,Vvv32.h):sat
3017
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_WhWh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3018
   Instruction Type:      CVI_VA_DV
3019
   Execution Slots:       SLOT0123
3020
   ========================================================================== */
3021
 
3022
#define Q6_Wh_vsub_WhWh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhsat_dv)(Vuu,Vvv)
3023
#endif /* __HEXAGON_ARCH___ >= 60 */
3024
 
3025
#if __HVX_ARCH__ >= 60
3026
/* ==========================================================================
3027
   Assembly Syntax:       Vdd32.w=vsub(Vu32.h,Vv32.h)
3028
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_VhVh(HVX_Vector Vu, HVX_Vector Vv)
3029
   Instruction Type:      CVI_VX_DV
3030
   Execution Slots:       SLOT23
3031
   ========================================================================== */
3032
 
3033
#define Q6_Ww_vsub_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhw)(Vu,Vv)
3034
#endif /* __HEXAGON_ARCH___ >= 60 */
3035
 
3036
#if __HVX_ARCH__ >= 60
3037
/* ==========================================================================
3038
   Assembly Syntax:       Vdd32.h=vsub(Vu32.ub,Vv32.ub)
3039
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_VubVub(HVX_Vector Vu, HVX_Vector Vv)
3040
   Instruction Type:      CVI_VX_DV
3041
   Execution Slots:       SLOT23
3042
   ========================================================================== */
3043
 
3044
#define Q6_Wh_vsub_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububh)(Vu,Vv)
3045
#endif /* __HEXAGON_ARCH___ >= 60 */
3046
 
3047
#if __HVX_ARCH__ >= 60
3048
/* ==========================================================================
3049
   Assembly Syntax:       Vd32.ub=vsub(Vu32.ub,Vv32.ub):sat
3050
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vsub_VubVub_sat(HVX_Vector Vu, HVX_Vector Vv)
3051
   Instruction Type:      CVI_VA
3052
   Execution Slots:       SLOT0123
3053
   ========================================================================== */
3054
 
3055
#define Q6_Vub_vsub_VubVub_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububsat)(Vu,Vv)
3056
#endif /* __HEXAGON_ARCH___ >= 60 */
3057
 
3058
#if __HVX_ARCH__ >= 60
3059
/* ==========================================================================
3060
   Assembly Syntax:       Vdd32.ub=vsub(Vuu32.ub,Vvv32.ub):sat
3061
   C Intrinsic Prototype: HVX_VectorPair Q6_Wub_vsub_WubWub_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3062
   Instruction Type:      CVI_VA_DV
3063
   Execution Slots:       SLOT0123
3064
   ========================================================================== */
3065
 
3066
#define Q6_Wub_vsub_WubWub_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububsat_dv)(Vuu,Vvv)
3067
#endif /* __HEXAGON_ARCH___ >= 60 */
3068
 
3069
#if __HVX_ARCH__ >= 60
3070
/* ==========================================================================
3071
   Assembly Syntax:       Vd32.uh=vsub(Vu32.uh,Vv32.uh):sat
3072
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vsub_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
3073
   Instruction Type:      CVI_VA
3074
   Execution Slots:       SLOT0123
3075
   ========================================================================== */
3076
 
3077
#define Q6_Vuh_vsub_VuhVuh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhsat)(Vu,Vv)
3078
#endif /* __HEXAGON_ARCH___ >= 60 */
3079
 
3080
#if __HVX_ARCH__ >= 60
3081
/* ==========================================================================
3082
   Assembly Syntax:       Vdd32.uh=vsub(Vuu32.uh,Vvv32.uh):sat
3083
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vsub_WuhWuh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3084
   Instruction Type:      CVI_VA_DV
3085
   Execution Slots:       SLOT0123
3086
   ========================================================================== */
3087
 
3088
#define Q6_Wuh_vsub_WuhWuh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhsat_dv)(Vuu,Vvv)
3089
#endif /* __HEXAGON_ARCH___ >= 60 */
3090
 
3091
#if __HVX_ARCH__ >= 60
3092
/* ==========================================================================
3093
   Assembly Syntax:       Vdd32.w=vsub(Vu32.uh,Vv32.uh)
3094
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
3095
   Instruction Type:      CVI_VX_DV
3096
   Execution Slots:       SLOT23
3097
   ========================================================================== */
3098
 
3099
#define Q6_Ww_vsub_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhw)(Vu,Vv)
3100
#endif /* __HEXAGON_ARCH___ >= 60 */
3101
 
3102
#if __HVX_ARCH__ >= 60
3103
/* ==========================================================================
3104
   Assembly Syntax:       Vd32.w=vsub(Vu32.w,Vv32.w)
3105
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVw(HVX_Vector Vu, HVX_Vector Vv)
3106
   Instruction Type:      CVI_VA
3107
   Execution Slots:       SLOT0123
3108
   ========================================================================== */
3109
 
3110
#define Q6_Vw_vsub_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubw)(Vu,Vv)
3111
#endif /* __HEXAGON_ARCH___ >= 60 */
3112
 
3113
#if __HVX_ARCH__ >= 60
3114
/* ==========================================================================
3115
   Assembly Syntax:       Vdd32.w=vsub(Vuu32.w,Vvv32.w)
3116
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_WwWw(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3117
   Instruction Type:      CVI_VA_DV
3118
   Execution Slots:       SLOT0123
3119
   ========================================================================== */
3120
 
3121
#define Q6_Ww_vsub_WwWw(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubw_dv)(Vuu,Vvv)
3122
#endif /* __HEXAGON_ARCH___ >= 60 */
3123
 
3124
#if __HVX_ARCH__ >= 60
3125
/* ==========================================================================
3126
   Assembly Syntax:       if (!Qv4) Vx32.w-=Vu32.w
3127
   C Intrinsic Prototype: HVX_Vector Q6_Vw_condnac_QnVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
3128
   Instruction Type:      CVI_VA
3129
   Execution Slots:       SLOT0123
3130
   ========================================================================== */
3131
 
3132
#define Q6_Vw_condnac_QnVwVw(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwnq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
3133
#endif /* __HEXAGON_ARCH___ >= 60 */
3134
 
3135
#if __HVX_ARCH__ >= 60
3136
/* ==========================================================================
3137
   Assembly Syntax:       if (Qv4) Vx32.w-=Vu32.w
3138
   C Intrinsic Prototype: HVX_Vector Q6_Vw_condnac_QVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
3139
   Instruction Type:      CVI_VA
3140
   Execution Slots:       SLOT0123
3141
   ========================================================================== */
3142
 
3143
#define Q6_Vw_condnac_QVwVw(Qv,Vx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vx,Vu)
3144
#endif /* __HEXAGON_ARCH___ >= 60 */
3145
 
3146
#if __HVX_ARCH__ >= 60
3147
/* ==========================================================================
3148
   Assembly Syntax:       Vd32.w=vsub(Vu32.w,Vv32.w):sat
3149
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
3150
   Instruction Type:      CVI_VA
3151
   Execution Slots:       SLOT0123
3152
   ========================================================================== */
3153
 
3154
#define Q6_Vw_vsub_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwsat)(Vu,Vv)
3155
#endif /* __HEXAGON_ARCH___ >= 60 */
3156
 
3157
#if __HVX_ARCH__ >= 60
3158
/* ==========================================================================
3159
   Assembly Syntax:       Vdd32.w=vsub(Vuu32.w,Vvv32.w):sat
3160
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_WwWw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3161
   Instruction Type:      CVI_VA_DV
3162
   Execution Slots:       SLOT0123
3163
   ========================================================================== */
3164
 
3165
#define Q6_Ww_vsub_WwWw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwsat_dv)(Vuu,Vvv)
3166
#endif /* __HEXAGON_ARCH___ >= 60 */
3167
 
3168
#if __HVX_ARCH__ >= 60
3169
/* ==========================================================================
3170
   Assembly Syntax:       Vdd32=vswap(Qt4,Vu32,Vv32)
3171
   C Intrinsic Prototype: HVX_VectorPair Q6_W_vswap_QVV(HVX_VectorPred Qt, HVX_Vector Vu, HVX_Vector Vv)
3172
   Instruction Type:      CVI_VA_DV
3173
   Execution Slots:       SLOT0123
3174
   ========================================================================== */
3175
 
3176
#define Q6_W_vswap_QVV(Qt,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vswap)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1),Vu,Vv)
3177
#endif /* __HEXAGON_ARCH___ >= 60 */
3178
 
3179
#if __HVX_ARCH__ >= 60
3180
/* ==========================================================================
3181
   Assembly Syntax:       Vdd32.h=vtmpy(Vuu32.b,Rt32.b)
3182
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpy_WbRb(HVX_VectorPair Vuu, Word32 Rt)
3183
   Instruction Type:      CVI_VX_DV
3184
   Execution Slots:       SLOT23
3185
   ========================================================================== */
3186
 
3187
#define Q6_Wh_vtmpy_WbRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyb)(Vuu,Rt)
3188
#endif /* __HEXAGON_ARCH___ >= 60 */
3189
 
3190
#if __HVX_ARCH__ >= 60
3191
/* ==========================================================================
3192
   Assembly Syntax:       Vxx32.h+=vtmpy(Vuu32.b,Rt32.b)
3193
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpyacc_WhWbRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3194
   Instruction Type:      CVI_VX_DV
3195
   Execution Slots:       SLOT23
3196
   ========================================================================== */
3197
 
3198
#define Q6_Wh_vtmpyacc_WhWbRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyb_acc)(Vxx,Vuu,Rt)
3199
#endif /* __HEXAGON_ARCH___ >= 60 */
3200
 
3201
#if __HVX_ARCH__ >= 60
3202
/* ==========================================================================
3203
   Assembly Syntax:       Vdd32.h=vtmpy(Vuu32.ub,Rt32.b)
3204
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpy_WubRb(HVX_VectorPair Vuu, Word32 Rt)
3205
   Instruction Type:      CVI_VX_DV
3206
   Execution Slots:       SLOT23
3207
   ========================================================================== */
3208
 
3209
#define Q6_Wh_vtmpy_WubRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpybus)(Vuu,Rt)
3210
#endif /* __HEXAGON_ARCH___ >= 60 */
3211
 
3212
#if __HVX_ARCH__ >= 60
3213
/* ==========================================================================
3214
   Assembly Syntax:       Vxx32.h+=vtmpy(Vuu32.ub,Rt32.b)
3215
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpyacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3216
   Instruction Type:      CVI_VX_DV
3217
   Execution Slots:       SLOT23
3218
   ========================================================================== */
3219
 
3220
#define Q6_Wh_vtmpyacc_WhWubRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpybus_acc)(Vxx,Vuu,Rt)
3221
#endif /* __HEXAGON_ARCH___ >= 60 */
3222
 
3223
#if __HVX_ARCH__ >= 60
3224
/* ==========================================================================
3225
   Assembly Syntax:       Vdd32.w=vtmpy(Vuu32.h,Rt32.b)
3226
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vtmpy_WhRb(HVX_VectorPair Vuu, Word32 Rt)
3227
   Instruction Type:      CVI_VX_DV
3228
   Execution Slots:       SLOT23
3229
   ========================================================================== */
3230
 
3231
#define Q6_Ww_vtmpy_WhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyhb)(Vuu,Rt)
3232
#endif /* __HEXAGON_ARCH___ >= 60 */
3233
 
3234
#if __HVX_ARCH__ >= 60
3235
/* ==========================================================================
3236
   Assembly Syntax:       Vxx32.w+=vtmpy(Vuu32.h,Rt32.b)
3237
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vtmpyacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3238
   Instruction Type:      CVI_VX_DV
3239
   Execution Slots:       SLOT23
3240
   ========================================================================== */
3241
 
3242
#define Q6_Ww_vtmpyacc_WwWhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyhb_acc)(Vxx,Vuu,Rt)
3243
#endif /* __HEXAGON_ARCH___ >= 60 */
3244
 
3245
#if __HVX_ARCH__ >= 60
3246
/* ==========================================================================
3247
   Assembly Syntax:       Vdd32.h=vunpack(Vu32.b)
3248
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vunpack_Vb(HVX_Vector Vu)
3249
   Instruction Type:      CVI_VP_VS
3250
   Execution Slots:       SLOT0123
3251
   ========================================================================== */
3252
 
3253
#define Q6_Wh_vunpack_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackb)(Vu)
3254
#endif /* __HEXAGON_ARCH___ >= 60 */
3255
 
3256
#if __HVX_ARCH__ >= 60
3257
/* ==========================================================================
3258
   Assembly Syntax:       Vdd32.w=vunpack(Vu32.h)
3259
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vunpack_Vh(HVX_Vector Vu)
3260
   Instruction Type:      CVI_VP_VS
3261
   Execution Slots:       SLOT0123
3262
   ========================================================================== */
3263
 
3264
#define Q6_Ww_vunpack_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackh)(Vu)
3265
#endif /* __HEXAGON_ARCH___ >= 60 */
3266
 
3267
#if __HVX_ARCH__ >= 60
3268
/* ==========================================================================
3269
   Assembly Syntax:       Vxx32.h|=vunpacko(Vu32.b)
3270
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vunpackoor_WhVb(HVX_VectorPair Vxx, HVX_Vector Vu)
3271
   Instruction Type:      CVI_VP_VS
3272
   Execution Slots:       SLOT0123
3273
   ========================================================================== */
3274
 
3275
#define Q6_Wh_vunpackoor_WhVb(Vxx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackob)(Vxx,Vu)
3276
#endif /* __HEXAGON_ARCH___ >= 60 */
3277
 
3278
#if __HVX_ARCH__ >= 60
3279
/* ==========================================================================
3280
   Assembly Syntax:       Vxx32.w|=vunpacko(Vu32.h)
3281
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vunpackoor_WwVh(HVX_VectorPair Vxx, HVX_Vector Vu)
3282
   Instruction Type:      CVI_VP_VS
3283
   Execution Slots:       SLOT0123
3284
   ========================================================================== */
3285
 
3286
#define Q6_Ww_vunpackoor_WwVh(Vxx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackoh)(Vxx,Vu)
3287
#endif /* __HEXAGON_ARCH___ >= 60 */
3288
 
3289
#if __HVX_ARCH__ >= 60
3290
/* ==========================================================================
3291
   Assembly Syntax:       Vdd32.uh=vunpack(Vu32.ub)
3292
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vunpack_Vub(HVX_Vector Vu)
3293
   Instruction Type:      CVI_VP_VS
3294
   Execution Slots:       SLOT0123
3295
   ========================================================================== */
3296
 
3297
#define Q6_Wuh_vunpack_Vub(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackub)(Vu)
3298
#endif /* __HEXAGON_ARCH___ >= 60 */
3299
 
3300
#if __HVX_ARCH__ >= 60
3301
/* ==========================================================================
3302
   Assembly Syntax:       Vdd32.uw=vunpack(Vu32.uh)
3303
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vunpack_Vuh(HVX_Vector Vu)
3304
   Instruction Type:      CVI_VP_VS
3305
   Execution Slots:       SLOT0123
3306
   ========================================================================== */
3307
 
3308
#define Q6_Wuw_vunpack_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackuh)(Vu)
3309
#endif /* __HEXAGON_ARCH___ >= 60 */
3310
 
3311
#if __HVX_ARCH__ >= 60
3312
/* ==========================================================================
3313
   Assembly Syntax:       Vd32=vxor(Vu32,Vv32)
3314
   C Intrinsic Prototype: HVX_Vector Q6_V_vxor_VV(HVX_Vector Vu, HVX_Vector Vv)
3315
   Instruction Type:      CVI_VA
3316
   Execution Slots:       SLOT0123
3317
   ========================================================================== */
3318
 
3319
#define Q6_V_vxor_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vxor)(Vu,Vv)
3320
#endif /* __HEXAGON_ARCH___ >= 60 */
3321
 
3322
#if __HVX_ARCH__ >= 60
3323
/* ==========================================================================
3324
   Assembly Syntax:       Vdd32.uh=vzxt(Vu32.ub)
3325
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vzxt_Vub(HVX_Vector Vu)
3326
   Instruction Type:      CVI_VA_DV
3327
   Execution Slots:       SLOT0123
3328
   ========================================================================== */
3329
 
3330
#define Q6_Wuh_vzxt_Vub(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vzb)(Vu)
3331
#endif /* __HEXAGON_ARCH___ >= 60 */
3332
 
3333
#if __HVX_ARCH__ >= 60
3334
/* ==========================================================================
3335
   Assembly Syntax:       Vdd32.uw=vzxt(Vu32.uh)
3336
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vzxt_Vuh(HVX_Vector Vu)
3337
   Instruction Type:      CVI_VA_DV
3338
   Execution Slots:       SLOT0123
3339
   ========================================================================== */
3340
 
3341
#define Q6_Wuw_vzxt_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vzh)(Vu)
3342
#endif /* __HEXAGON_ARCH___ >= 60 */
3343
 
3344
#if __HVX_ARCH__ >= 62
3345
/* ==========================================================================
3346
   Assembly Syntax:       Vd32.b=vsplat(Rt32)
3347
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vsplat_R(Word32 Rt)
3348
   Instruction Type:      CVI_VX_LATE
3349
   Execution Slots:       SLOT23
3350
   ========================================================================== */
3351
 
3352
#define Q6_Vb_vsplat_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplatb)(Rt)
3353
#endif /* __HEXAGON_ARCH___ >= 62 */
3354
 
3355
#if __HVX_ARCH__ >= 62
3356
/* ==========================================================================
3357
   Assembly Syntax:       Vd32.h=vsplat(Rt32)
3358
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vsplat_R(Word32 Rt)
3359
   Instruction Type:      CVI_VX_LATE
3360
   Execution Slots:       SLOT23
3361
   ========================================================================== */
3362
 
3363
#define Q6_Vh_vsplat_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplath)(Rt)
3364
#endif /* __HEXAGON_ARCH___ >= 62 */
3365
 
3366
#if __HVX_ARCH__ >= 62
3367
/* ==========================================================================
3368
   Assembly Syntax:       Qd4=vsetq2(Rt32)
3369
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vsetq2_R(Word32 Rt)
3370
   Instruction Type:      CVI_VP
3371
   Execution Slots:       SLOT0123
3372
   ========================================================================== */
3373
 
3374
#define Q6_Q_vsetq2_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_scalar2v2)(Rt)),-1)
3375
#endif /* __HEXAGON_ARCH___ >= 62 */
3376
 
3377
#if __HVX_ARCH__ >= 62
3378
/* ==========================================================================
3379
   Assembly Syntax:       Qd4.b=vshuffe(Qs4.h,Qt4.h)
3380
   C Intrinsic Prototype: HVX_VectorPred Q6_Qb_vshuffe_QhQh(HVX_VectorPred Qs, HVX_VectorPred Qt)
3381
   Instruction Type:      CVI_VA_DV
3382
   Execution Slots:       SLOT0123
3383
   ========================================================================== */
3384
 
3385
#define Q6_Qb_vshuffe_QhQh(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_shuffeqh)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
3386
#endif /* __HEXAGON_ARCH___ >= 62 */
3387
 
3388
#if __HVX_ARCH__ >= 62
3389
/* ==========================================================================
3390
   Assembly Syntax:       Qd4.h=vshuffe(Qs4.w,Qt4.w)
3391
   C Intrinsic Prototype: HVX_VectorPred Q6_Qh_vshuffe_QwQw(HVX_VectorPred Qs, HVX_VectorPred Qt)
3392
   Instruction Type:      CVI_VA_DV
3393
   Execution Slots:       SLOT0123
3394
   ========================================================================== */
3395
 
3396
#define Q6_Qh_vshuffe_QwQw(Qs,Qt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_shuffeqw)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qt),-1))),-1)
3397
#endif /* __HEXAGON_ARCH___ >= 62 */
3398
 
3399
#if __HVX_ARCH__ >= 62
3400
/* ==========================================================================
3401
   Assembly Syntax:       Vd32.b=vadd(Vu32.b,Vv32.b):sat
3402
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vadd_VbVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3403
   Instruction Type:      CVI_VA
3404
   Execution Slots:       SLOT0123
3405
   ========================================================================== */
3406
 
3407
#define Q6_Vb_vadd_VbVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbsat)(Vu,Vv)
3408
#endif /* __HEXAGON_ARCH___ >= 62 */
3409
 
3410
#if __HVX_ARCH__ >= 62
3411
/* ==========================================================================
3412
   Assembly Syntax:       Vdd32.b=vadd(Vuu32.b,Vvv32.b):sat
3413
   C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vadd_WbWb_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3414
   Instruction Type:      CVI_VA_DV
3415
   Execution Slots:       SLOT0123
3416
   ========================================================================== */
3417
 
3418
#define Q6_Wb_vadd_WbWb_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbsat_dv)(Vuu,Vvv)
3419
#endif /* __HEXAGON_ARCH___ >= 62 */
3420
 
3421
#if __HVX_ARCH__ >= 62
3422
/* ==========================================================================
3423
   Assembly Syntax:       Vd32.w=vadd(Vu32.w,Vv32.w,Qx4):carry
3424
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVwQ_carry(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred* Qx)
3425
   Instruction Type:      CVI_VA
3426
   Execution Slots:       SLOT0123
3427
   ========================================================================== */
3428
 
3429
#define Q6_Vw_vadd_VwVwQ_carry(Vu,Vv,Qx) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddcarry)(Vu,Vv,Qx)
3430
#endif /* __HEXAGON_ARCH___ >= 62 */
3431
 
3432
#if __HVX_ARCH__ >= 62
3433
/* ==========================================================================
3434
   Assembly Syntax:       Vd32.h=vadd(vclb(Vu32.h),Vv32.h)
3435
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_vclb_VhVh(HVX_Vector Vu, HVX_Vector Vv)
3436
   Instruction Type:      CVI_VS
3437
   Execution Slots:       SLOT0123
3438
   ========================================================================== */
3439
 
3440
#define Q6_Vh_vadd_vclb_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddclbh)(Vu,Vv)
3441
#endif /* __HEXAGON_ARCH___ >= 62 */
3442
 
3443
#if __HVX_ARCH__ >= 62
3444
/* ==========================================================================
3445
   Assembly Syntax:       Vd32.w=vadd(vclb(Vu32.w),Vv32.w)
3446
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_vclb_VwVw(HVX_Vector Vu, HVX_Vector Vv)
3447
   Instruction Type:      CVI_VS
3448
   Execution Slots:       SLOT0123
3449
   ========================================================================== */
3450
 
3451
#define Q6_Vw_vadd_vclb_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddclbw)(Vu,Vv)
3452
#endif /* __HEXAGON_ARCH___ >= 62 */
3453
 
3454
#if __HVX_ARCH__ >= 62
3455
/* ==========================================================================
3456
   Assembly Syntax:       Vxx32.w+=vadd(Vu32.h,Vv32.h)
3457
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vaddacc_WwVhVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3458
   Instruction Type:      CVI_VX_DV
3459
   Execution Slots:       SLOT23
3460
   ========================================================================== */
3461
 
3462
#define Q6_Ww_vaddacc_WwVhVh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhw_acc)(Vxx,Vu,Vv)
3463
#endif /* __HEXAGON_ARCH___ >= 62 */
3464
 
3465
#if __HVX_ARCH__ >= 62
3466
/* ==========================================================================
3467
   Assembly Syntax:       Vxx32.h+=vadd(Vu32.ub,Vv32.ub)
3468
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vaddacc_WhVubVub(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3469
   Instruction Type:      CVI_VX_DV
3470
   Execution Slots:       SLOT23
3471
   ========================================================================== */
3472
 
3473
#define Q6_Wh_vaddacc_WhVubVub(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubh_acc)(Vxx,Vu,Vv)
3474
#endif /* __HEXAGON_ARCH___ >= 62 */
3475
 
3476
#if __HVX_ARCH__ >= 62
3477
/* ==========================================================================
3478
   Assembly Syntax:       Vd32.ub=vadd(Vu32.ub,Vv32.b):sat
3479
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vadd_VubVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3480
   Instruction Type:      CVI_VA
3481
   Execution Slots:       SLOT0123
3482
   ========================================================================== */
3483
 
3484
#define Q6_Vub_vadd_VubVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddububb_sat)(Vu,Vv)
3485
#endif /* __HEXAGON_ARCH___ >= 62 */
3486
 
3487
#if __HVX_ARCH__ >= 62
3488
/* ==========================================================================
3489
   Assembly Syntax:       Vxx32.w+=vadd(Vu32.uh,Vv32.uh)
3490
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vaddacc_WwVuhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3491
   Instruction Type:      CVI_VX_DV
3492
   Execution Slots:       SLOT23
3493
   ========================================================================== */
3494
 
3495
#define Q6_Ww_vaddacc_WwVuhVuh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhw_acc)(Vxx,Vu,Vv)
3496
#endif /* __HEXAGON_ARCH___ >= 62 */
3497
 
3498
#if __HVX_ARCH__ >= 62
3499
/* ==========================================================================
3500
   Assembly Syntax:       Vd32.uw=vadd(Vu32.uw,Vv32.uw):sat
3501
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vadd_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3502
   Instruction Type:      CVI_VA
3503
   Execution Slots:       SLOT0123
3504
   ========================================================================== */
3505
 
3506
#define Q6_Vuw_vadd_VuwVuw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduwsat)(Vu,Vv)
3507
#endif /* __HEXAGON_ARCH___ >= 62 */
3508
 
3509
#if __HVX_ARCH__ >= 62
3510
/* ==========================================================================
3511
   Assembly Syntax:       Vdd32.uw=vadd(Vuu32.uw,Vvv32.uw):sat
3512
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vadd_WuwWuw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3513
   Instruction Type:      CVI_VA_DV
3514
   Execution Slots:       SLOT0123
3515
   ========================================================================== */
3516
 
3517
#define Q6_Wuw_vadd_WuwWuw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduwsat_dv)(Vuu,Vvv)
3518
#endif /* __HEXAGON_ARCH___ >= 62 */
3519
 
3520
#if __HVX_ARCH__ >= 62
3521
/* ==========================================================================
3522
   Assembly Syntax:       Vd32=vand(!Qu4,Rt32)
3523
   C Intrinsic Prototype: HVX_Vector Q6_V_vand_QnR(HVX_VectorPred Qu, Word32 Rt)
3524
   Instruction Type:      CVI_VX_LATE
3525
   Execution Slots:       SLOT23
3526
   ========================================================================== */
3527
 
3528
#define Q6_V_vand_QnR(Qu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandnqrt)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qu),-1),Rt)
3529
#endif /* __HEXAGON_ARCH___ >= 62 */
3530
 
3531
#if __HVX_ARCH__ >= 62
3532
/* ==========================================================================
3533
   Assembly Syntax:       Vx32|=vand(!Qu4,Rt32)
3534
   C Intrinsic Prototype: HVX_Vector Q6_V_vandor_VQnR(HVX_Vector Vx, HVX_VectorPred Qu, Word32 Rt)
3535
   Instruction Type:      CVI_VX_LATE
3536
   Execution Slots:       SLOT23
3537
   ========================================================================== */
3538
 
3539
#define Q6_V_vandor_VQnR(Vx,Qu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandnqrt_acc)(Vx,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qu),-1),Rt)
3540
#endif /* __HEXAGON_ARCH___ >= 62 */
3541
 
3542
#if __HVX_ARCH__ >= 62
3543
/* ==========================================================================
3544
   Assembly Syntax:       Vd32=vand(!Qv4,Vu32)
3545
   C Intrinsic Prototype: HVX_Vector Q6_V_vand_QnV(HVX_VectorPred Qv, HVX_Vector Vu)
3546
   Instruction Type:      CVI_VA
3547
   Execution Slots:       SLOT0123
3548
   ========================================================================== */
3549
 
3550
#define Q6_V_vand_QnV(Qv,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvnqv)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vu)
3551
#endif /* __HEXAGON_ARCH___ >= 62 */
3552
 
3553
#if __HVX_ARCH__ >= 62
3554
/* ==========================================================================
3555
   Assembly Syntax:       Vd32=vand(Qv4,Vu32)
3556
   C Intrinsic Prototype: HVX_Vector Q6_V_vand_QV(HVX_VectorPred Qv, HVX_Vector Vu)
3557
   Instruction Type:      CVI_VA
3558
   Execution Slots:       SLOT0123
3559
   ========================================================================== */
3560
 
3561
#define Q6_V_vand_QV(Qv,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvqv)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1),Vu)
3562
#endif /* __HEXAGON_ARCH___ >= 62 */
3563
 
3564
#if __HVX_ARCH__ >= 62
3565
/* ==========================================================================
3566
   Assembly Syntax:       Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):sat
3567
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vasr_VhVhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3568
   Instruction Type:      CVI_VS
3569
   Execution Slots:       SLOT0123
3570
   ========================================================================== */
3571
 
3572
#define Q6_Vb_vasr_VhVhR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhbsat)(Vu,Vv,Rt)
3573
#endif /* __HEXAGON_ARCH___ >= 62 */
3574
 
3575
#if __HVX_ARCH__ >= 62
3576
/* ==========================================================================
3577
   Assembly Syntax:       Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):rnd:sat
3578
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VuwVuwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3579
   Instruction Type:      CVI_VS
3580
   Execution Slots:       SLOT0123
3581
   ========================================================================== */
3582
 
3583
#define Q6_Vuh_vasr_VuwVuwR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruwuhrndsat)(Vu,Vv,Rt)
3584
#endif /* __HEXAGON_ARCH___ >= 62 */
3585
 
3586
#if __HVX_ARCH__ >= 62
3587
/* ==========================================================================
3588
   Assembly Syntax:       Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
3589
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VwVwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3590
   Instruction Type:      CVI_VS
3591
   Execution Slots:       SLOT0123
3592
   ========================================================================== */
3593
 
3594
#define Q6_Vuh_vasr_VwVwR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwuhrndsat)(Vu,Vv,Rt)
3595
#endif /* __HEXAGON_ARCH___ >= 62 */
3596
 
3597
#if __HVX_ARCH__ >= 62
3598
/* ==========================================================================
3599
   Assembly Syntax:       Vd32.ub=vlsr(Vu32.ub,Rt32)
3600
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vlsr_VubR(HVX_Vector Vu, Word32 Rt)
3601
   Instruction Type:      CVI_VS
3602
   Execution Slots:       SLOT0123
3603
   ========================================================================== */
3604
 
3605
#define Q6_Vub_vlsr_VubR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrb)(Vu,Rt)
3606
#endif /* __HEXAGON_ARCH___ >= 62 */
3607
 
3608
#if __HVX_ARCH__ >= 62
3609
/* ==========================================================================
3610
   Assembly Syntax:       Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8):nomatch
3611
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbR_nomatch(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3612
   Instruction Type:      CVI_VP
3613
   Execution Slots:       SLOT0123
3614
   ========================================================================== */
3615
 
3616
#define Q6_Vb_vlut32_VbVbR_nomatch(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_nm)(Vu,Vv,Rt)
3617
#endif /* __HEXAGON_ARCH___ >= 62 */
3618
 
3619
#if __HVX_ARCH__ >= 62
3620
/* ==========================================================================
3621
   Assembly Syntax:       Vx32.b|=vlut32(Vu32.b,Vv32.b,#u3)
3622
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32or_VbVbVbI(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3623
   Instruction Type:      CVI_VP_VS
3624
   Execution Slots:       SLOT0123
3625
   ========================================================================== */
3626
 
3627
#define Q6_Vb_vlut32or_VbVbVbI(Vx,Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_oracci)(Vx,Vu,Vv,Iu3)
3628
#endif /* __HEXAGON_ARCH___ >= 62 */
3629
 
3630
#if __HVX_ARCH__ >= 62
3631
/* ==========================================================================
3632
   Assembly Syntax:       Vd32.b=vlut32(Vu32.b,Vv32.b,#u3)
3633
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3634
   Instruction Type:      CVI_VP
3635
   Execution Slots:       SLOT0123
3636
   ========================================================================== */
3637
 
3638
#define Q6_Vb_vlut32_VbVbI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvbi)(Vu,Vv,Iu3)
3639
#endif /* __HEXAGON_ARCH___ >= 62 */
3640
 
3641
#if __HVX_ARCH__ >= 62
3642
/* ==========================================================================
3643
   Assembly Syntax:       Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8):nomatch
3644
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhR_nomatch(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3645
   Instruction Type:      CVI_VP_VS
3646
   Execution Slots:       SLOT0123
3647
   ========================================================================== */
3648
 
3649
#define Q6_Wh_vlut16_VbVhR_nomatch(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_nm)(Vu,Vv,Rt)
3650
#endif /* __HEXAGON_ARCH___ >= 62 */
3651
 
3652
#if __HVX_ARCH__ >= 62
3653
/* ==========================================================================
3654
   Assembly Syntax:       Vxx32.h|=vlut16(Vu32.b,Vv32.h,#u3)
3655
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16or_WhVbVhI(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3656
   Instruction Type:      CVI_VP_VS
3657
   Execution Slots:       SLOT0123
3658
   ========================================================================== */
3659
 
3660
#define Q6_Wh_vlut16or_WhVbVhI(Vxx,Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_oracci)(Vxx,Vu,Vv,Iu3)
3661
#endif /* __HEXAGON_ARCH___ >= 62 */
3662
 
3663
#if __HVX_ARCH__ >= 62
3664
/* ==========================================================================
3665
   Assembly Syntax:       Vdd32.h=vlut16(Vu32.b,Vv32.h,#u3)
3666
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3667
   Instruction Type:      CVI_VP_VS
3668
   Execution Slots:       SLOT0123
3669
   ========================================================================== */
3670
 
3671
#define Q6_Wh_vlut16_VbVhI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwhi)(Vu,Vv,Iu3)
3672
#endif /* __HEXAGON_ARCH___ >= 62 */
3673
 
3674
#if __HVX_ARCH__ >= 62
3675
/* ==========================================================================
3676
   Assembly Syntax:       Vd32.b=vmax(Vu32.b,Vv32.b)
3677
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vmax_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3678
   Instruction Type:      CVI_VA
3679
   Execution Slots:       SLOT0123
3680
   ========================================================================== */
3681
 
3682
#define Q6_Vb_vmax_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxb)(Vu,Vv)
3683
#endif /* __HEXAGON_ARCH___ >= 62 */
3684
 
3685
#if __HVX_ARCH__ >= 62
3686
/* ==========================================================================
3687
   Assembly Syntax:       Vd32.b=vmin(Vu32.b,Vv32.b)
3688
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vmin_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3689
   Instruction Type:      CVI_VA
3690
   Execution Slots:       SLOT0123
3691
   ========================================================================== */
3692
 
3693
#define Q6_Vb_vmin_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminb)(Vu,Vv)
3694
#endif /* __HEXAGON_ARCH___ >= 62 */
3695
 
3696
#if __HVX_ARCH__ >= 62
3697
/* ==========================================================================
3698
   Assembly Syntax:       Vdd32.w=vmpa(Vuu32.uh,Rt32.b)
3699
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpa_WuhRb(HVX_VectorPair Vuu, Word32 Rt)
3700
   Instruction Type:      CVI_VX_DV
3701
   Execution Slots:       SLOT23
3702
   ========================================================================== */
3703
 
3704
#define Q6_Ww_vmpa_WuhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhb)(Vuu,Rt)
3705
#endif /* __HEXAGON_ARCH___ >= 62 */
3706
 
3707
#if __HVX_ARCH__ >= 62
3708
/* ==========================================================================
3709
   Assembly Syntax:       Vxx32.w+=vmpa(Vuu32.uh,Rt32.b)
3710
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpaacc_WwWuhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3711
   Instruction Type:      CVI_VX_DV
3712
   Execution Slots:       SLOT23
3713
   ========================================================================== */
3714
 
3715
#define Q6_Ww_vmpaacc_WwWuhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhb_acc)(Vxx,Vuu,Rt)
3716
#endif /* __HEXAGON_ARCH___ >= 62 */
3717
 
3718
#if __HVX_ARCH__ >= 62
3719
/* ==========================================================================
3720
   Assembly Syntax:       Vdd32=vmpye(Vu32.w,Vv32.uh)
3721
   C Intrinsic Prototype: HVX_VectorPair Q6_W_vmpye_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
3722
   Instruction Type:      CVI_VX_DV
3723
   Execution Slots:       SLOT23
3724
   ========================================================================== */
3725
 
3726
#define Q6_W_vmpye_VwVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyewuh_64)(Vu,Vv)
3727
#endif /* __HEXAGON_ARCH___ >= 62 */
3728
 
3729
#if __HVX_ARCH__ >= 62
3730
/* ==========================================================================
3731
   Assembly Syntax:       Vd32.w=vmpyi(Vu32.w,Rt32.ub)
3732
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRub(HVX_Vector Vu, Word32 Rt)
3733
   Instruction Type:      CVI_VX
3734
   Execution Slots:       SLOT23
3735
   ========================================================================== */
3736
 
3737
#define Q6_Vw_vmpyi_VwRub(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwub)(Vu,Rt)
3738
#endif /* __HEXAGON_ARCH___ >= 62 */
3739
 
3740
#if __HVX_ARCH__ >= 62
3741
/* ==========================================================================
3742
   Assembly Syntax:       Vx32.w+=vmpyi(Vu32.w,Rt32.ub)
3743
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRub(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3744
   Instruction Type:      CVI_VX
3745
   Execution Slots:       SLOT23
3746
   ========================================================================== */
3747
 
3748
#define Q6_Vw_vmpyiacc_VwVwRub(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwub_acc)(Vx,Vu,Rt)
3749
#endif /* __HEXAGON_ARCH___ >= 62 */
3750
 
3751
#if __HVX_ARCH__ >= 62
3752
/* ==========================================================================
3753
   Assembly Syntax:       Vxx32+=vmpyo(Vu32.w,Vv32.h)
3754
   C Intrinsic Prototype: HVX_VectorPair Q6_W_vmpyoacc_WVwVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3755
   Instruction Type:      CVI_VX_DV
3756
   Execution Slots:       SLOT23
3757
   ========================================================================== */
3758
 
3759
#define Q6_W_vmpyoacc_WVwVh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_64_acc)(Vxx,Vu,Vv)
3760
#endif /* __HEXAGON_ARCH___ >= 62 */
3761
 
3762
#if __HVX_ARCH__ >= 62
3763
/* ==========================================================================
3764
   Assembly Syntax:       Vd32.ub=vround(Vu32.uh,Vv32.uh):sat
3765
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vround_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
3766
   Instruction Type:      CVI_VS
3767
   Execution Slots:       SLOT0123
3768
   ========================================================================== */
3769
 
3770
#define Q6_Vub_vround_VuhVuh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrounduhub)(Vu,Vv)
3771
#endif /* __HEXAGON_ARCH___ >= 62 */
3772
 
3773
#if __HVX_ARCH__ >= 62
3774
/* ==========================================================================
3775
   Assembly Syntax:       Vd32.uh=vround(Vu32.uw,Vv32.uw):sat
3776
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vround_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3777
   Instruction Type:      CVI_VS
3778
   Execution Slots:       SLOT0123
3779
   ========================================================================== */
3780
 
3781
#define Q6_Vuh_vround_VuwVuw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrounduwuh)(Vu,Vv)
3782
#endif /* __HEXAGON_ARCH___ >= 62 */
3783
 
3784
#if __HVX_ARCH__ >= 62
3785
/* ==========================================================================
3786
   Assembly Syntax:       Vd32.uh=vsat(Vu32.uw,Vv32.uw)
3787
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vsat_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
3788
   Instruction Type:      CVI_VA
3789
   Execution Slots:       SLOT0123
3790
   ========================================================================== */
3791
 
3792
#define Q6_Vuh_vsat_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatuwuh)(Vu,Vv)
3793
#endif /* __HEXAGON_ARCH___ >= 62 */
3794
 
3795
#if __HVX_ARCH__ >= 62
3796
/* ==========================================================================
3797
   Assembly Syntax:       Vd32.b=vsub(Vu32.b,Vv32.b):sat
3798
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vsub_VbVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3799
   Instruction Type:      CVI_VA
3800
   Execution Slots:       SLOT0123
3801
   ========================================================================== */
3802
 
3803
#define Q6_Vb_vsub_VbVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbsat)(Vu,Vv)
3804
#endif /* __HEXAGON_ARCH___ >= 62 */
3805
 
3806
#if __HVX_ARCH__ >= 62
3807
/* ==========================================================================
3808
   Assembly Syntax:       Vdd32.b=vsub(Vuu32.b,Vvv32.b):sat
3809
   C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vsub_WbWb_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3810
   Instruction Type:      CVI_VA_DV
3811
   Execution Slots:       SLOT0123
3812
   ========================================================================== */
3813
 
3814
#define Q6_Wb_vsub_WbWb_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbsat_dv)(Vuu,Vvv)
3815
#endif /* __HEXAGON_ARCH___ >= 62 */
3816
 
3817
#if __HVX_ARCH__ >= 62
3818
/* ==========================================================================
3819
   Assembly Syntax:       Vd32.w=vsub(Vu32.w,Vv32.w,Qx4):carry
3820
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVwQ_carry(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred* Qx)
3821
   Instruction Type:      CVI_VA
3822
   Execution Slots:       SLOT0123
3823
   ========================================================================== */
3824
 
3825
#define Q6_Vw_vsub_VwVwQ_carry(Vu,Vv,Qx) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubcarry)(Vu,Vv,Qx)
3826
#endif /* __HEXAGON_ARCH___ >= 62 */
3827
 
3828
#if __HVX_ARCH__ >= 62
3829
/* ==========================================================================
3830
   Assembly Syntax:       Vd32.ub=vsub(Vu32.ub,Vv32.b):sat
3831
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vsub_VubVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3832
   Instruction Type:      CVI_VA
3833
   Execution Slots:       SLOT0123
3834
   ========================================================================== */
3835
 
3836
#define Q6_Vub_vsub_VubVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubububb_sat)(Vu,Vv)
3837
#endif /* __HEXAGON_ARCH___ >= 62 */
3838
 
3839
#if __HVX_ARCH__ >= 62
3840
/* ==========================================================================
3841
   Assembly Syntax:       Vd32.uw=vsub(Vu32.uw,Vv32.uw):sat
3842
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vsub_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3843
   Instruction Type:      CVI_VA
3844
   Execution Slots:       SLOT0123
3845
   ========================================================================== */
3846
 
3847
#define Q6_Vuw_vsub_VuwVuw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuwsat)(Vu,Vv)
3848
#endif /* __HEXAGON_ARCH___ >= 62 */
3849
 
3850
#if __HVX_ARCH__ >= 62
3851
/* ==========================================================================
3852
   Assembly Syntax:       Vdd32.uw=vsub(Vuu32.uw,Vvv32.uw):sat
3853
   C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vsub_WuwWuw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3854
   Instruction Type:      CVI_VA_DV
3855
   Execution Slots:       SLOT0123
3856
   ========================================================================== */
3857
 
3858
#define Q6_Wuw_vsub_WuwWuw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuwsat_dv)(Vuu,Vvv)
3859
#endif /* __HEXAGON_ARCH___ >= 62 */
3860
 
3861
#if __HVX_ARCH__ >= 65
3862
/* ==========================================================================
3863
   Assembly Syntax:       Vd32.b=vabs(Vu32.b)
3864
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vabs_Vb(HVX_Vector Vu)
3865
   Instruction Type:      CVI_VA
3866
   Execution Slots:       SLOT0123
3867
   ========================================================================== */
3868
 
3869
#define Q6_Vb_vabs_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsb)(Vu)
3870
#endif /* __HEXAGON_ARCH___ >= 65 */
3871
 
3872
#if __HVX_ARCH__ >= 65
3873
/* ==========================================================================
3874
   Assembly Syntax:       Vd32.b=vabs(Vu32.b):sat
3875
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vabs_Vb_sat(HVX_Vector Vu)
3876
   Instruction Type:      CVI_VA
3877
   Execution Slots:       SLOT0123
3878
   ========================================================================== */
3879
 
3880
#define Q6_Vb_vabs_Vb_sat(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsb_sat)(Vu)
3881
#endif /* __HEXAGON_ARCH___ >= 65 */
3882
 
3883
#if __HVX_ARCH__ >= 65
3884
/* ==========================================================================
3885
   Assembly Syntax:       Vx32.h+=vasl(Vu32.h,Rt32)
3886
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vaslacc_VhVhR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3887
   Instruction Type:      CVI_VS
3888
   Execution Slots:       SLOT0123
3889
   ========================================================================== */
3890
 
3891
#define Q6_Vh_vaslacc_VhVhR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslh_acc)(Vx,Vu,Rt)
3892
#endif /* __HEXAGON_ARCH___ >= 65 */
3893
 
3894
#if __HVX_ARCH__ >= 65
3895
/* ==========================================================================
3896
   Assembly Syntax:       Vx32.h+=vasr(Vu32.h,Rt32)
3897
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vasracc_VhVhR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3898
   Instruction Type:      CVI_VS
3899
   Execution Slots:       SLOT0123
3900
   ========================================================================== */
3901
 
3902
#define Q6_Vh_vasracc_VhVhR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrh_acc)(Vx,Vu,Rt)
3903
#endif /* __HEXAGON_ARCH___ >= 65 */
3904
 
3905
#if __HVX_ARCH__ >= 65
3906
/* ==========================================================================
3907
   Assembly Syntax:       Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):rnd:sat
3908
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VuhVuhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3909
   Instruction Type:      CVI_VS
3910
   Execution Slots:       SLOT0123
3911
   ========================================================================== */
3912
 
3913
#define Q6_Vub_vasr_VuhVuhR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruhubrndsat)(Vu,Vv,Rt)
3914
#endif /* __HEXAGON_ARCH___ >= 65 */
3915
 
3916
#if __HVX_ARCH__ >= 65
3917
/* ==========================================================================
3918
   Assembly Syntax:       Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):sat
3919
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VuhVuhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3920
   Instruction Type:      CVI_VS
3921
   Execution Slots:       SLOT0123
3922
   ========================================================================== */
3923
 
3924
#define Q6_Vub_vasr_VuhVuhR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruhubsat)(Vu,Vv,Rt)
3925
#endif /* __HEXAGON_ARCH___ >= 65 */
3926
 
3927
#if __HVX_ARCH__ >= 65
3928
/* ==========================================================================
3929
   Assembly Syntax:       Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):sat
3930
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VuwVuwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3931
   Instruction Type:      CVI_VS
3932
   Execution Slots:       SLOT0123
3933
   ========================================================================== */
3934
 
3935
#define Q6_Vuh_vasr_VuwVuwR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruwuhsat)(Vu,Vv,Rt)
3936
#endif /* __HEXAGON_ARCH___ >= 65 */
3937
 
3938
#if __HVX_ARCH__ >= 65
3939
/* ==========================================================================
3940
   Assembly Syntax:       Vd32.b=vavg(Vu32.b,Vv32.b)
3941
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vavg_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3942
   Instruction Type:      CVI_VA
3943
   Execution Slots:       SLOT0123
3944
   ========================================================================== */
3945
 
3946
#define Q6_Vb_vavg_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgb)(Vu,Vv)
3947
#endif /* __HEXAGON_ARCH___ >= 65 */
3948
 
3949
#if __HVX_ARCH__ >= 65
3950
/* ==========================================================================
3951
   Assembly Syntax:       Vd32.b=vavg(Vu32.b,Vv32.b):rnd
3952
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vavg_VbVb_rnd(HVX_Vector Vu, HVX_Vector Vv)
3953
   Instruction Type:      CVI_VA
3954
   Execution Slots:       SLOT0123
3955
   ========================================================================== */
3956
 
3957
#define Q6_Vb_vavg_VbVb_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgbrnd)(Vu,Vv)
3958
#endif /* __HEXAGON_ARCH___ >= 65 */
3959
 
3960
#if __HVX_ARCH__ >= 65
3961
/* ==========================================================================
3962
   Assembly Syntax:       Vd32.uw=vavg(Vu32.uw,Vv32.uw)
3963
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vavg_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
3964
   Instruction Type:      CVI_VA
3965
   Execution Slots:       SLOT0123
3966
   ========================================================================== */
3967
 
3968
#define Q6_Vuw_vavg_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguw)(Vu,Vv)
3969
#endif /* __HEXAGON_ARCH___ >= 65 */
3970
 
3971
#if __HVX_ARCH__ >= 65
3972
/* ==========================================================================
3973
   Assembly Syntax:       Vd32.uw=vavg(Vu32.uw,Vv32.uw):rnd
3974
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vavg_VuwVuw_rnd(HVX_Vector Vu, HVX_Vector Vv)
3975
   Instruction Type:      CVI_VA
3976
   Execution Slots:       SLOT0123
3977
   ========================================================================== */
3978
 
3979
#define Q6_Vuw_vavg_VuwVuw_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguwrnd)(Vu,Vv)
3980
#endif /* __HEXAGON_ARCH___ >= 65 */
3981
 
3982
#if __HVX_ARCH__ >= 65
3983
/* ==========================================================================
3984
   Assembly Syntax:       Vdd32=#0
3985
   C Intrinsic Prototype: HVX_VectorPair Q6_W_vzero()
3986
   Instruction Type:      MAPPING
3987
   Execution Slots:       SLOT0123
3988
   ========================================================================== */
3989
 
3990
#define Q6_W_vzero() __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdd0)()
3991
#endif /* __HEXAGON_ARCH___ >= 65 */
3992
 
3993
#if __HVX_ARCH__ >= 65
3994
/* ==========================================================================
3995
   Assembly Syntax:       vtmp.h=vgather(Rt32,Mu2,Vv32.h).h
3996
   C Intrinsic Prototype: void Q6_vgather_ARMVh(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
3997
   Instruction Type:      CVI_GATHER
3998
   Execution Slots:       SLOT01
3999
   ========================================================================== */
4000
 
4001
#define Q6_vgather_ARMVh(Rs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermh)(Rs,Rt,Mu,Vv)
4002
#endif /* __HEXAGON_ARCH___ >= 65 */
4003
 
4004
#if __HVX_ARCH__ >= 65
4005
/* ==========================================================================
4006
   Assembly Syntax:       if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vv32.h).h
4007
   C Intrinsic Prototype: void Q6_vgather_AQRMVh(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4008
   Instruction Type:      CVI_GATHER
4009
   Execution Slots:       SLOT01
4010
   ========================================================================== */
4011
 
4012
#define Q6_vgather_AQRMVh(Rs,Qs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhq)(Rs,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vv)
4013
#endif /* __HEXAGON_ARCH___ >= 65 */
4014
 
4015
#if __HVX_ARCH__ >= 65
4016
/* ==========================================================================
4017
   Assembly Syntax:       vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h
4018
   C Intrinsic Prototype: void Q6_vgather_ARMWw(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv)
4019
   Instruction Type:      CVI_GATHER_DV
4020
   Execution Slots:       SLOT01
4021
   ========================================================================== */
4022
 
4023
#define Q6_vgather_ARMWw(Rs,Rt,Mu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhw)(Rs,Rt,Mu,Vvv)
4024
#endif /* __HEXAGON_ARCH___ >= 65 */
4025
 
4026
#if __HVX_ARCH__ >= 65
4027
/* ==========================================================================
4028
   Assembly Syntax:       if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h
4029
   C Intrinsic Prototype: void Q6_vgather_AQRMWw(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv)
4030
   Instruction Type:      CVI_GATHER_DV
4031
   Execution Slots:       SLOT01
4032
   ========================================================================== */
4033
 
4034
#define Q6_vgather_AQRMWw(Rs,Qs,Rt,Mu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhwq)(Rs,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vvv)
4035
#endif /* __HEXAGON_ARCH___ >= 65 */
4036
 
4037
#if __HVX_ARCH__ >= 65
4038
/* ==========================================================================
4039
   Assembly Syntax:       vtmp.w=vgather(Rt32,Mu2,Vv32.w).w
4040
   C Intrinsic Prototype: void Q6_vgather_ARMVw(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4041
   Instruction Type:      CVI_GATHER
4042
   Execution Slots:       SLOT01
4043
   ========================================================================== */
4044
 
4045
#define Q6_vgather_ARMVw(Rs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermw)(Rs,Rt,Mu,Vv)
4046
#endif /* __HEXAGON_ARCH___ >= 65 */
4047
 
4048
#if __HVX_ARCH__ >= 65
4049
/* ==========================================================================
4050
   Assembly Syntax:       if (Qs4) vtmp.w=vgather(Rt32,Mu2,Vv32.w).w
4051
   C Intrinsic Prototype: void Q6_vgather_AQRMVw(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4052
   Instruction Type:      CVI_GATHER
4053
   Execution Slots:       SLOT01
4054
   ========================================================================== */
4055
 
4056
#define Q6_vgather_AQRMVw(Rs,Qs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermwq)(Rs,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vv)
4057
#endif /* __HEXAGON_ARCH___ >= 65 */
4058
 
4059
#if __HVX_ARCH__ >= 65
4060
/* ==========================================================================
4061
   Assembly Syntax:       Vd32.h=vlut4(Vu32.uh,Rtt32.h)
4062
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vlut4_VuhPh(HVX_Vector Vu, Word64 Rtt)
4063
   Instruction Type:      CVI_VX_DV
4064
   Execution Slots:       SLOT2
4065
   ========================================================================== */
4066
 
4067
#define Q6_Vh_vlut4_VuhPh(Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlut4)(Vu,Rtt)
4068
#endif /* __HEXAGON_ARCH___ >= 65 */
4069
 
4070
#if __HVX_ARCH__ >= 65
4071
/* ==========================================================================
4072
   Assembly Syntax:       Vdd32.h=vmpa(Vuu32.ub,Rt32.ub)
4073
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubRub(HVX_VectorPair Vuu, Word32 Rt)
4074
   Instruction Type:      CVI_VX_DV
4075
   Execution Slots:       SLOT23
4076
   ========================================================================== */
4077
 
4078
#define Q6_Wh_vmpa_WubRub(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuu)(Vuu,Rt)
4079
#endif /* __HEXAGON_ARCH___ >= 65 */
4080
 
4081
#if __HVX_ARCH__ >= 65
4082
/* ==========================================================================
4083
   Assembly Syntax:       Vxx32.h+=vmpa(Vuu32.ub,Rt32.ub)
4084
   C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpaacc_WhWubRub(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
4085
   Instruction Type:      CVI_VX_DV
4086
   Execution Slots:       SLOT23
4087
   ========================================================================== */
4088
 
4089
#define Q6_Wh_vmpaacc_WhWubRub(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuu_acc)(Vxx,Vuu,Rt)
4090
#endif /* __HEXAGON_ARCH___ >= 65 */
4091
 
4092
#if __HVX_ARCH__ >= 65
4093
/* ==========================================================================
4094
   Assembly Syntax:       Vx32.h=vmpa(Vx32.h,Vu32.h,Rtt32.h):sat
4095
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpa_VhVhVhPh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4096
   Instruction Type:      CVI_VX_DV
4097
   Execution Slots:       SLOT2
4098
   ========================================================================== */
4099
 
4100
#define Q6_Vh_vmpa_VhVhVhPh_sat(Vx,Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahhsat)(Vx,Vu,Rtt)
4101
#endif /* __HEXAGON_ARCH___ >= 65 */
4102
 
4103
#if __HVX_ARCH__ >= 65
4104
/* ==========================================================================
4105
   Assembly Syntax:       Vx32.h=vmpa(Vx32.h,Vu32.uh,Rtt32.uh):sat
4106
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpa_VhVhVuhPuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4107
   Instruction Type:      CVI_VX_DV
4108
   Execution Slots:       SLOT2
4109
   ========================================================================== */
4110
 
4111
#define Q6_Vh_vmpa_VhVhVuhPuh_sat(Vx,Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhuhsat)(Vx,Vu,Rtt)
4112
#endif /* __HEXAGON_ARCH___ >= 65 */
4113
 
4114
#if __HVX_ARCH__ >= 65
4115
/* ==========================================================================
4116
   Assembly Syntax:       Vx32.h=vmps(Vx32.h,Vu32.uh,Rtt32.uh):sat
4117
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vmps_VhVhVuhPuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4118
   Instruction Type:      CVI_VX_DV
4119
   Execution Slots:       SLOT2
4120
   ========================================================================== */
4121
 
4122
#define Q6_Vh_vmps_VhVhVuhPuh_sat(Vx,Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpsuhuhsat)(Vx,Vu,Rtt)
4123
#endif /* __HEXAGON_ARCH___ >= 65 */
4124
 
4125
#if __HVX_ARCH__ >= 65
4126
/* ==========================================================================
4127
   Assembly Syntax:       Vxx32.w+=vmpy(Vu32.h,Rt32.h)
4128
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhRh(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
4129
   Instruction Type:      CVI_VX_DV
4130
   Execution Slots:       SLOT23
4131
   ========================================================================== */
4132
 
4133
#define Q6_Ww_vmpyacc_WwVhRh(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyh_acc)(Vxx,Vu,Rt)
4134
#endif /* __HEXAGON_ARCH___ >= 65 */
4135
 
4136
#if __HVX_ARCH__ >= 65
4137
/* ==========================================================================
4138
   Assembly Syntax:       Vd32.uw=vmpye(Vu32.uh,Rt32.uh)
4139
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vmpye_VuhRuh(HVX_Vector Vu, Word32 Rt)
4140
   Instruction Type:      CVI_VX
4141
   Execution Slots:       SLOT23
4142
   ========================================================================== */
4143
 
4144
#define Q6_Vuw_vmpye_VuhRuh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhe)(Vu,Rt)
4145
#endif /* __HEXAGON_ARCH___ >= 65 */
4146
 
4147
#if __HVX_ARCH__ >= 65
4148
/* ==========================================================================
4149
   Assembly Syntax:       Vx32.uw+=vmpye(Vu32.uh,Rt32.uh)
4150
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vmpyeacc_VuwVuhRuh(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
4151
   Instruction Type:      CVI_VX
4152
   Execution Slots:       SLOT23
4153
   ========================================================================== */
4154
 
4155
#define Q6_Vuw_vmpyeacc_VuwVuhRuh(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhe_acc)(Vx,Vu,Rt)
4156
#endif /* __HEXAGON_ARCH___ >= 65 */
4157
 
4158
#if __HVX_ARCH__ >= 65
4159
/* ==========================================================================
4160
   Assembly Syntax:       Vd32.b=vnavg(Vu32.b,Vv32.b)
4161
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vnavg_VbVb(HVX_Vector Vu, HVX_Vector Vv)
4162
   Instruction Type:      CVI_VA
4163
   Execution Slots:       SLOT0123
4164
   ========================================================================== */
4165
 
4166
#define Q6_Vb_vnavg_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgb)(Vu,Vv)
4167
#endif /* __HEXAGON_ARCH___ >= 65 */
4168
 
4169
#if __HVX_ARCH__ >= 65
4170
/* ==========================================================================
4171
   Assembly Syntax:       Vd32.b=prefixsum(Qv4)
4172
   C Intrinsic Prototype: HVX_Vector Q6_Vb_prefixsum_Q(HVX_VectorPred Qv)
4173
   Instruction Type:      CVI_VS
4174
   Execution Slots:       SLOT0123
4175
   ========================================================================== */
4176
 
4177
#define Q6_Vb_prefixsum_Q(Qv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqb)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1))
4178
#endif /* __HEXAGON_ARCH___ >= 65 */
4179
 
4180
#if __HVX_ARCH__ >= 65
4181
/* ==========================================================================
4182
   Assembly Syntax:       Vd32.h=prefixsum(Qv4)
4183
   C Intrinsic Prototype: HVX_Vector Q6_Vh_prefixsum_Q(HVX_VectorPred Qv)
4184
   Instruction Type:      CVI_VS
4185
   Execution Slots:       SLOT0123
4186
   ========================================================================== */
4187
 
4188
#define Q6_Vh_prefixsum_Q(Qv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqh)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1))
4189
#endif /* __HEXAGON_ARCH___ >= 65 */
4190
 
4191
#if __HVX_ARCH__ >= 65
4192
/* ==========================================================================
4193
   Assembly Syntax:       Vd32.w=prefixsum(Qv4)
4194
   C Intrinsic Prototype: HVX_Vector Q6_Vw_prefixsum_Q(HVX_VectorPred Qv)
4195
   Instruction Type:      CVI_VS
4196
   Execution Slots:       SLOT0123
4197
   ========================================================================== */
4198
 
4199
#define Q6_Vw_prefixsum_Q(Qv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqw)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1))
4200
#endif /* __HEXAGON_ARCH___ >= 65 */
4201
 
4202
#if __HVX_ARCH__ >= 65
4203
/* ==========================================================================
4204
   Assembly Syntax:       vscatter(Rt32,Mu2,Vv32.h).h=Vw32
4205
   C Intrinsic Prototype: void Q6_vscatter_RMVhV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4206
   Instruction Type:      CVI_SCATTER
4207
   Execution Slots:       SLOT0
4208
   ========================================================================== */
4209
 
4210
#define Q6_vscatter_RMVhV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermh)(Rt,Mu,Vv,Vw)
4211
#endif /* __HEXAGON_ARCH___ >= 65 */
4212
 
4213
#if __HVX_ARCH__ >= 65
4214
/* ==========================================================================
4215
   Assembly Syntax:       vscatter(Rt32,Mu2,Vv32.h).h+=Vw32
4216
   C Intrinsic Prototype: void Q6_vscatteracc_RMVhV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4217
   Instruction Type:      CVI_SCATTER
4218
   Execution Slots:       SLOT0
4219
   ========================================================================== */
4220
 
4221
#define Q6_vscatteracc_RMVhV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermh_add)(Rt,Mu,Vv,Vw)
4222
#endif /* __HEXAGON_ARCH___ >= 65 */
4223
 
4224
#if __HVX_ARCH__ >= 65
4225
/* ==========================================================================
4226
   Assembly Syntax:       if (Qs4) vscatter(Rt32,Mu2,Vv32.h).h=Vw32
4227
   C Intrinsic Prototype: void Q6_vscatter_QRMVhV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4228
   Instruction Type:      CVI_SCATTER
4229
   Execution Slots:       SLOT0
4230
   ========================================================================== */
4231
 
4232
#define Q6_vscatter_QRMVhV(Qs,Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vv,Vw)
4233
#endif /* __HEXAGON_ARCH___ >= 65 */
4234
 
4235
#if __HVX_ARCH__ >= 65
4236
/* ==========================================================================
4237
   Assembly Syntax:       vscatter(Rt32,Mu2,Vvv32.w).h=Vw32
4238
   C Intrinsic Prototype: void Q6_vscatter_RMWwV(Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4239
   Instruction Type:      CVI_SCATTER_DV
4240
   Execution Slots:       SLOT0
4241
   ========================================================================== */
4242
 
4243
#define Q6_vscatter_RMWwV(Rt,Mu,Vvv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhw)(Rt,Mu,Vvv,Vw)
4244
#endif /* __HEXAGON_ARCH___ >= 65 */
4245
 
4246
#if __HVX_ARCH__ >= 65
4247
/* ==========================================================================
4248
   Assembly Syntax:       vscatter(Rt32,Mu2,Vvv32.w).h+=Vw32
4249
   C Intrinsic Prototype: void Q6_vscatteracc_RMWwV(Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4250
   Instruction Type:      CVI_SCATTER_DV
4251
   Execution Slots:       SLOT0
4252
   ========================================================================== */
4253
 
4254
#define Q6_vscatteracc_RMWwV(Rt,Mu,Vvv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhw_add)(Rt,Mu,Vvv,Vw)
4255
#endif /* __HEXAGON_ARCH___ >= 65 */
4256
 
4257
#if __HVX_ARCH__ >= 65
4258
/* ==========================================================================
4259
   Assembly Syntax:       if (Qs4) vscatter(Rt32,Mu2,Vvv32.w).h=Vw32
4260
   C Intrinsic Prototype: void Q6_vscatter_QRMWwV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4261
   Instruction Type:      CVI_SCATTER_DV
4262
   Execution Slots:       SLOT0
4263
   ========================================================================== */
4264
 
4265
#define Q6_vscatter_QRMWwV(Qs,Rt,Mu,Vvv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhwq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vvv,Vw)
4266
#endif /* __HEXAGON_ARCH___ >= 65 */
4267
 
4268
#if __HVX_ARCH__ >= 65
4269
/* ==========================================================================
4270
   Assembly Syntax:       vscatter(Rt32,Mu2,Vv32.w).w=Vw32
4271
   C Intrinsic Prototype: void Q6_vscatter_RMVwV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4272
   Instruction Type:      CVI_SCATTER
4273
   Execution Slots:       SLOT0
4274
   ========================================================================== */
4275
 
4276
#define Q6_vscatter_RMVwV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermw)(Rt,Mu,Vv,Vw)
4277
#endif /* __HEXAGON_ARCH___ >= 65 */
4278
 
4279
#if __HVX_ARCH__ >= 65
4280
/* ==========================================================================
4281
   Assembly Syntax:       vscatter(Rt32,Mu2,Vv32.w).w+=Vw32
4282
   C Intrinsic Prototype: void Q6_vscatteracc_RMVwV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4283
   Instruction Type:      CVI_SCATTER
4284
   Execution Slots:       SLOT0
4285
   ========================================================================== */
4286
 
4287
#define Q6_vscatteracc_RMVwV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermw_add)(Rt,Mu,Vv,Vw)
4288
#endif /* __HEXAGON_ARCH___ >= 65 */
4289
 
4290
#if __HVX_ARCH__ >= 65
4291
/* ==========================================================================
4292
   Assembly Syntax:       if (Qs4) vscatter(Rt32,Mu2,Vv32.w).w=Vw32
4293
   C Intrinsic Prototype: void Q6_vscatter_QRMVwV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4294
   Instruction Type:      CVI_SCATTER
4295
   Execution Slots:       SLOT0
4296
   ========================================================================== */
4297
 
4298
#define Q6_vscatter_QRMVwV(Qs,Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermwq)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1),Rt,Mu,Vv,Vw)
4299
#endif /* __HEXAGON_ARCH___ >= 65 */
4300
 
4301
#if __HVX_ARCH__ >= 66
4302
/* ==========================================================================
4303
   Assembly Syntax:       Vd32.w=vadd(Vu32.w,Vv32.w,Qs4):carry:sat
4304
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVwQ_carry_sat(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred Qs)
4305
   Instruction Type:      CVI_VA
4306
   Execution Slots:       SLOT0123
4307
   ========================================================================== */
4308
 
4309
#define Q6_Vw_vadd_VwVwQ_carry_sat(Vu,Vv,Qs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddcarrysat)(Vu,Vv,__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qs),-1))
4310
#endif /* __HEXAGON_ARCH___ >= 66 */
4311
 
4312
#if __HVX_ARCH__ >= 66
4313
/* ==========================================================================
4314
   Assembly Syntax:       Vxx32.w=vasrinto(Vu32.w,Vv32.w)
4315
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vasrinto_WwVwVw(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
4316
   Instruction Type:      CVI_VP_VS
4317
   Execution Slots:       SLOT0123
4318
   ========================================================================== */
4319
 
4320
#define Q6_Ww_vasrinto_WwVwVw(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasr_into)(Vxx,Vu,Vv)
4321
#endif /* __HEXAGON_ARCH___ >= 66 */
4322
 
4323
#if __HVX_ARCH__ >= 66
4324
/* ==========================================================================
4325
   Assembly Syntax:       Vd32.uw=vrotr(Vu32.uw,Vv32.uw)
4326
   C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrotr_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
4327
   Instruction Type:      CVI_VS
4328
   Execution Slots:       SLOT0123
4329
   ========================================================================== */
4330
 
4331
#define Q6_Vuw_vrotr_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrotr)(Vu,Vv)
4332
#endif /* __HEXAGON_ARCH___ >= 66 */
4333
 
4334
#if __HVX_ARCH__ >= 66
4335
/* ==========================================================================
4336
   Assembly Syntax:       Vd32.w=vsatdw(Vu32.w,Vv32.w)
4337
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vsatdw_VwVw(HVX_Vector Vu, HVX_Vector Vv)
4338
   Instruction Type:      CVI_VA
4339
   Execution Slots:       SLOT0123
4340
   ========================================================================== */
4341
 
4342
#define Q6_Vw_vsatdw_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatdw)(Vu,Vv)
4343
#endif /* __HEXAGON_ARCH___ >= 66 */
4344
 
4345
#if __HVX_ARCH__ >= 68
4346
/* ==========================================================================
4347
   Assembly Syntax:       Vdd32.w=v6mpy(Vuu32.ub,Vvv32.b,#u2):h
4348
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpy_WubWbI_h(HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4349
   Instruction Type:      CVI_VX_DV
4350
   Execution Slots:       SLOT23
4351
   ========================================================================== */
4352
 
4353
#define Q6_Ww_v6mpy_WubWbI_h(Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyhubs10)(Vuu,Vvv,Iu2)
4354
#endif /* __HEXAGON_ARCH___ >= 68 */
4355
 
4356
#if __HVX_ARCH__ >= 68
4357
/* ==========================================================================
4358
   Assembly Syntax:       Vxx32.w+=v6mpy(Vuu32.ub,Vvv32.b,#u2):h
4359
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpyacc_WwWubWbI_h(HVX_VectorPair Vxx, HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4360
   Instruction Type:      CVI_VX_DV
4361
   Execution Slots:       SLOT23
4362
   ========================================================================== */
4363
 
4364
#define Q6_Ww_v6mpyacc_WwWubWbI_h(Vxx,Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyhubs10_vxx)(Vxx,Vuu,Vvv,Iu2)
4365
#endif /* __HEXAGON_ARCH___ >= 68 */
4366
 
4367
#if __HVX_ARCH__ >= 68
4368
/* ==========================================================================
4369
   Assembly Syntax:       Vdd32.w=v6mpy(Vuu32.ub,Vvv32.b,#u2):v
4370
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpy_WubWbI_v(HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4371
   Instruction Type:      CVI_VX_DV
4372
   Execution Slots:       SLOT23
4373
   ========================================================================== */
4374
 
4375
#define Q6_Ww_v6mpy_WubWbI_v(Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyvubs10)(Vuu,Vvv,Iu2)
4376
#endif /* __HEXAGON_ARCH___ >= 68 */
4377
 
4378
#if __HVX_ARCH__ >= 68
4379
/* ==========================================================================
4380
   Assembly Syntax:       Vxx32.w+=v6mpy(Vuu32.ub,Vvv32.b,#u2):v
4381
   C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpyacc_WwWubWbI_v(HVX_VectorPair Vxx, HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4382
   Instruction Type:      CVI_VX_DV
4383
   Execution Slots:       SLOT23
4384
   ========================================================================== */
4385
 
4386
#define Q6_Ww_v6mpyacc_WwWubWbI_v(Vxx,Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyvubs10_vxx)(Vxx,Vuu,Vvv,Iu2)
4387
#endif /* __HEXAGON_ARCH___ >= 68 */
4388
 
4389
#if __HVX_ARCH__ >= 68
4390
/* ==========================================================================
4391
   Assembly Syntax:       Vd32.hf=vabs(Vu32.hf)
4392
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vabs_Vhf(HVX_Vector Vu)
4393
   Instruction Type:      CVI_VX_LATE
4394
   Execution Slots:       SLOT23
4395
   ========================================================================== */
4396
 
4397
#define Q6_Vhf_vabs_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabs_hf)(Vu)
4398
#endif /* __HEXAGON_ARCH___ >= 68 */
4399
 
4400
#if __HVX_ARCH__ >= 68
4401
/* ==========================================================================
4402
   Assembly Syntax:       Vd32.sf=vabs(Vu32.sf)
4403
   C Intrinsic Prototype: HVX_Vector Q6_Vsf_vabs_Vsf(HVX_Vector Vu)
4404
   Instruction Type:      CVI_VX_LATE
4405
   Execution Slots:       SLOT23
4406
   ========================================================================== */
4407
 
4408
#define Q6_Vsf_vabs_Vsf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabs_sf)(Vu)
4409
#endif /* __HEXAGON_ARCH___ >= 68 */
4410
 
4411
#if __HVX_ARCH__ >= 68
4412
/* ==========================================================================
4413
   Assembly Syntax:       Vd32.qf16=vadd(Vu32.hf,Vv32.hf)
4414
   C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vadd_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4415
   Instruction Type:      CVI_VS
4416
   Execution Slots:       SLOT0123
4417
   ========================================================================== */
4418
 
4419
#define Q6_Vqf16_vadd_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_hf)(Vu,Vv)
4420
#endif /* __HEXAGON_ARCH___ >= 68 */
4421
 
4422
#if __HVX_ARCH__ >= 68
4423
/* ==========================================================================
4424
   Assembly Syntax:       Vd32.hf=vadd(Vu32.hf,Vv32.hf)
4425
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vadd_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4426
   Instruction Type:      CVI_VX
4427
   Execution Slots:       SLOT23
4428
   ========================================================================== */
4429
 
4430
#define Q6_Vhf_vadd_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_hf_hf)(Vu,Vv)
4431
#endif /* __HEXAGON_ARCH___ >= 68 */
4432
 
4433
#if __HVX_ARCH__ >= 68
4434
/* ==========================================================================
4435
   Assembly Syntax:       Vd32.qf16=vadd(Vu32.qf16,Vv32.qf16)
4436
   C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vadd_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
4437
   Instruction Type:      CVI_VS
4438
   Execution Slots:       SLOT0123
4439
   ========================================================================== */
4440
 
4441
#define Q6_Vqf16_vadd_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf16)(Vu,Vv)
4442
#endif /* __HEXAGON_ARCH___ >= 68 */
4443
 
4444
#if __HVX_ARCH__ >= 68
4445
/* ==========================================================================
4446
   Assembly Syntax:       Vd32.qf16=vadd(Vu32.qf16,Vv32.hf)
4447
   C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vadd_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
4448
   Instruction Type:      CVI_VS
4449
   Execution Slots:       SLOT0123
4450
   ========================================================================== */
4451
 
4452
#define Q6_Vqf16_vadd_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf16_mix)(Vu,Vv)
4453
#endif /* __HEXAGON_ARCH___ >= 68 */
4454
 
4455
#if __HVX_ARCH__ >= 68
4456
/* ==========================================================================
4457
   Assembly Syntax:       Vd32.qf32=vadd(Vu32.qf32,Vv32.qf32)
4458
   C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vadd_Vqf32Vqf32(HVX_Vector Vu, HVX_Vector Vv)
4459
   Instruction Type:      CVI_VS
4460
   Execution Slots:       SLOT0123
4461
   ========================================================================== */
4462
 
4463
#define Q6_Vqf32_vadd_Vqf32Vqf32(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf32)(Vu,Vv)
4464
#endif /* __HEXAGON_ARCH___ >= 68 */
4465
 
4466
#if __HVX_ARCH__ >= 68
4467
/* ==========================================================================
4468
   Assembly Syntax:       Vd32.qf32=vadd(Vu32.qf32,Vv32.sf)
4469
   C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vadd_Vqf32Vsf(HVX_Vector Vu, HVX_Vector Vv)
4470
   Instruction Type:      CVI_VS
4471
   Execution Slots:       SLOT0123
4472
   ========================================================================== */
4473
 
4474
#define Q6_Vqf32_vadd_Vqf32Vsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf32_mix)(Vu,Vv)
4475
#endif /* __HEXAGON_ARCH___ >= 68 */
4476
 
4477
#if __HVX_ARCH__ >= 68
4478
/* ==========================================================================
4479
   Assembly Syntax:       Vd32.qf32=vadd(Vu32.sf,Vv32.sf)
4480
   C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vadd_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4481
   Instruction Type:      CVI_VS
4482
   Execution Slots:       SLOT0123
4483
   ========================================================================== */
4484
 
4485
#define Q6_Vqf32_vadd_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_sf)(Vu,Vv)
4486
#endif /* __HEXAGON_ARCH___ >= 68 */
4487
 
4488
#if __HVX_ARCH__ >= 68
4489
/* ==========================================================================
4490
   Assembly Syntax:       Vdd32.sf=vadd(Vu32.hf,Vv32.hf)
4491
   C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vadd_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4492
   Instruction Type:      CVI_VX_DV
4493
   Execution Slots:       SLOT23
4494
   ========================================================================== */
4495
 
4496
#define Q6_Wsf_vadd_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_sf_hf)(Vu,Vv)
4497
#endif /* __HEXAGON_ARCH___ >= 68 */
4498
 
4499
#if __HVX_ARCH__ >= 68
4500
/* ==========================================================================
4501
   Assembly Syntax:       Vd32.sf=vadd(Vu32.sf,Vv32.sf)
4502
   C Intrinsic Prototype: HVX_Vector Q6_Vsf_vadd_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4503
   Instruction Type:      CVI_VX
4504
   Execution Slots:       SLOT23
4505
   ========================================================================== */
4506
 
4507
#define Q6_Vsf_vadd_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_sf_sf)(Vu,Vv)
4508
#endif /* __HEXAGON_ARCH___ >= 68 */
4509
 
4510
#if __HVX_ARCH__ >= 68
4511
/* ==========================================================================
4512
   Assembly Syntax:       Vd32.w=vfmv(Vu32.w)
4513
   C Intrinsic Prototype: HVX_Vector Q6_Vw_vfmv_Vw(HVX_Vector Vu)
4514
   Instruction Type:      CVI_VX_LATE
4515
   Execution Slots:       SLOT23
4516
   ========================================================================== */
4517
 
4518
#define Q6_Vw_vfmv_Vw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassign_fp)(Vu)
4519
#endif /* __HEXAGON_ARCH___ >= 68 */
4520
 
4521
#if __HVX_ARCH__ >= 68
4522
/* ==========================================================================
4523
   Assembly Syntax:       Vd32.hf=Vu32.qf16
4524
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_equals_Vqf16(HVX_Vector Vu)
4525
   Instruction Type:      CVI_VS
4526
   Execution Slots:       SLOT0123
4527
   ========================================================================== */
4528
 
4529
#define Q6_Vhf_equals_Vqf16(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vconv_hf_qf16)(Vu)
4530
#endif /* __HEXAGON_ARCH___ >= 68 */
4531
 
4532
#if __HVX_ARCH__ >= 68
4533
/* ==========================================================================
4534
   Assembly Syntax:       Vd32.hf=Vuu32.qf32
4535
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_equals_Wqf32(HVX_VectorPair Vuu)
4536
   Instruction Type:      CVI_VS
4537
   Execution Slots:       SLOT0123
4538
   ========================================================================== */
4539
 
4540
#define Q6_Vhf_equals_Wqf32(Vuu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vconv_hf_qf32)(Vuu)
4541
#endif /* __HEXAGON_ARCH___ >= 68 */
4542
 
4543
#if __HVX_ARCH__ >= 68
4544
/* ==========================================================================
4545
   Assembly Syntax:       Vd32.sf=Vu32.qf32
4546
   C Intrinsic Prototype: HVX_Vector Q6_Vsf_equals_Vqf32(HVX_Vector Vu)
4547
   Instruction Type:      CVI_VS
4548
   Execution Slots:       SLOT0123
4549
   ========================================================================== */
4550
 
4551
#define Q6_Vsf_equals_Vqf32(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vconv_sf_qf32)(Vu)
4552
#endif /* __HEXAGON_ARCH___ >= 68 */
4553
 
4554
#if __HVX_ARCH__ >= 68
4555
/* ==========================================================================
4556
   Assembly Syntax:       Vd32.b=vcvt(Vu32.hf,Vv32.hf)
4557
   C Intrinsic Prototype: HVX_Vector Q6_Vb_vcvt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4558
   Instruction Type:      CVI_VX
4559
   Execution Slots:       SLOT23
4560
   ========================================================================== */
4561
 
4562
#define Q6_Vb_vcvt_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_b_hf)(Vu,Vv)
4563
#endif /* __HEXAGON_ARCH___ >= 68 */
4564
 
4565
#if __HVX_ARCH__ >= 68
4566
/* ==========================================================================
4567
   Assembly Syntax:       Vd32.h=vcvt(Vu32.hf)
4568
   C Intrinsic Prototype: HVX_Vector Q6_Vh_vcvt_Vhf(HVX_Vector Vu)
4569
   Instruction Type:      CVI_VX
4570
   Execution Slots:       SLOT23
4571
   ========================================================================== */
4572
 
4573
#define Q6_Vh_vcvt_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_h_hf)(Vu)
4574
#endif /* __HEXAGON_ARCH___ >= 68 */
4575
 
4576
#if __HVX_ARCH__ >= 68
4577
/* ==========================================================================
4578
   Assembly Syntax:       Vdd32.hf=vcvt(Vu32.b)
4579
   C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vcvt_Vb(HVX_Vector Vu)
4580
   Instruction Type:      CVI_VX_DV
4581
   Execution Slots:       SLOT23
4582
   ========================================================================== */
4583
 
4584
#define Q6_Whf_vcvt_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_b)(Vu)
4585
#endif /* __HEXAGON_ARCH___ >= 68 */
4586
 
4587
#if __HVX_ARCH__ >= 68
4588
/* ==========================================================================
4589
   Assembly Syntax:       Vd32.hf=vcvt(Vu32.h)
4590
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vcvt_Vh(HVX_Vector Vu)
4591
   Instruction Type:      CVI_VX
4592
   Execution Slots:       SLOT23
4593
   ========================================================================== */
4594
 
4595
#define Q6_Vhf_vcvt_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_h)(Vu)
4596
#endif /* __HEXAGON_ARCH___ >= 68 */
4597
 
4598
#if __HVX_ARCH__ >= 68
4599
/* ==========================================================================
4600
   Assembly Syntax:       Vd32.hf=vcvt(Vu32.sf,Vv32.sf)
4601
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vcvt_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4602
   Instruction Type:      CVI_VX
4603
   Execution Slots:       SLOT23
4604
   ========================================================================== */
4605
 
4606
#define Q6_Vhf_vcvt_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_sf)(Vu,Vv)
4607
#endif /* __HEXAGON_ARCH___ >= 68 */
4608
 
4609
#if __HVX_ARCH__ >= 68
4610
/* ==========================================================================
4611
   Assembly Syntax:       Vdd32.hf=vcvt(Vu32.ub)
4612
   C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vcvt_Vub(HVX_Vector Vu)
4613
   Instruction Type:      CVI_VX_DV
4614
   Execution Slots:       SLOT23
4615
   ========================================================================== */
4616
 
4617
#define Q6_Whf_vcvt_Vub(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_ub)(Vu)
4618
#endif /* __HEXAGON_ARCH___ >= 68 */
4619
 
4620
#if __HVX_ARCH__ >= 68
4621
/* ==========================================================================
4622
   Assembly Syntax:       Vd32.hf=vcvt(Vu32.uh)
4623
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vcvt_Vuh(HVX_Vector Vu)
4624
   Instruction Type:      CVI_VX
4625
   Execution Slots:       SLOT23
4626
   ========================================================================== */
4627
 
4628
#define Q6_Vhf_vcvt_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_uh)(Vu)
4629
#endif /* __HEXAGON_ARCH___ >= 68 */
4630
 
4631
#if __HVX_ARCH__ >= 68
4632
/* ==========================================================================
4633
   Assembly Syntax:       Vdd32.sf=vcvt(Vu32.hf)
4634
   C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vcvt_Vhf(HVX_Vector Vu)
4635
   Instruction Type:      CVI_VX_DV
4636
   Execution Slots:       SLOT23
4637
   ========================================================================== */
4638
 
4639
#define Q6_Wsf_vcvt_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_sf_hf)(Vu)
4640
#endif /* __HEXAGON_ARCH___ >= 68 */
4641
 
4642
#if __HVX_ARCH__ >= 68
4643
/* ==========================================================================
4644
   Assembly Syntax:       Vd32.ub=vcvt(Vu32.hf,Vv32.hf)
4645
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vcvt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4646
   Instruction Type:      CVI_VX
4647
   Execution Slots:       SLOT23
4648
   ========================================================================== */
4649
 
4650
#define Q6_Vub_vcvt_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_ub_hf)(Vu,Vv)
4651
#endif /* __HEXAGON_ARCH___ >= 68 */
4652
 
4653
#if __HVX_ARCH__ >= 68
4654
/* ==========================================================================
4655
   Assembly Syntax:       Vd32.uh=vcvt(Vu32.hf)
4656
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vcvt_Vhf(HVX_Vector Vu)
4657
   Instruction Type:      CVI_VX
4658
   Execution Slots:       SLOT23
4659
   ========================================================================== */
4660
 
4661
#define Q6_Vuh_vcvt_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_uh_hf)(Vu)
4662
#endif /* __HEXAGON_ARCH___ >= 68 */
4663
 
4664
#if __HVX_ARCH__ >= 68
4665
/* ==========================================================================
4666
   Assembly Syntax:       Vd32.sf=vdmpy(Vu32.hf,Vv32.hf)
4667
   C Intrinsic Prototype: HVX_Vector Q6_Vsf_vdmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4668
   Instruction Type:      CVI_VX
4669
   Execution Slots:       SLOT23
4670
   ========================================================================== */
4671
 
4672
#define Q6_Vsf_vdmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpy_sf_hf)(Vu,Vv)
4673
#endif /* __HEXAGON_ARCH___ >= 68 */
4674
 
4675
#if __HVX_ARCH__ >= 68
4676
/* ==========================================================================
4677
   Assembly Syntax:       Vx32.sf+=vdmpy(Vu32.hf,Vv32.hf)
4678
   C Intrinsic Prototype: HVX_Vector Q6_Vsf_vdmpyacc_VsfVhfVhf(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
4679
   Instruction Type:      CVI_VX
4680
   Execution Slots:       SLOT23
4681
   ========================================================================== */
4682
 
4683
#define Q6_Vsf_vdmpyacc_VsfVhfVhf(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpy_sf_hf_acc)(Vx,Vu,Vv)
4684
#endif /* __HEXAGON_ARCH___ >= 68 */
4685
 
4686
#if __HVX_ARCH__ >= 68
4687
/* ==========================================================================
4688
   Assembly Syntax:       Vd32.hf=vfmax(Vu32.hf,Vv32.hf)
4689
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vfmax_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4690
   Instruction Type:      CVI_VX_LATE
4691
   Execution Slots:       SLOT23
4692
   ========================================================================== */
4693
 
4694
#define Q6_Vhf_vfmax_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmax_hf)(Vu,Vv)
4695
#endif /* __HEXAGON_ARCH___ >= 68 */
4696
 
4697
#if __HVX_ARCH__ >= 68
4698
/* ==========================================================================
4699
   Assembly Syntax:       Vd32.sf=vfmax(Vu32.sf,Vv32.sf)
4700
   C Intrinsic Prototype: HVX_Vector Q6_Vsf_vfmax_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4701
   Instruction Type:      CVI_VX_LATE
4702
   Execution Slots:       SLOT23
4703
   ========================================================================== */
4704
 
4705
#define Q6_Vsf_vfmax_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmax_sf)(Vu,Vv)
4706
#endif /* __HEXAGON_ARCH___ >= 68 */
4707
 
4708
#if __HVX_ARCH__ >= 68
4709
/* ==========================================================================
4710
   Assembly Syntax:       Vd32.hf=vfmin(Vu32.hf,Vv32.hf)
4711
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vfmin_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4712
   Instruction Type:      CVI_VX_LATE
4713
   Execution Slots:       SLOT23
4714
   ========================================================================== */
4715
 
4716
#define Q6_Vhf_vfmin_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmin_hf)(Vu,Vv)
4717
#endif /* __HEXAGON_ARCH___ >= 68 */
4718
 
4719
#if __HVX_ARCH__ >= 68
4720
/* ==========================================================================
4721
   Assembly Syntax:       Vd32.sf=vfmin(Vu32.sf,Vv32.sf)
4722
   C Intrinsic Prototype: HVX_Vector Q6_Vsf_vfmin_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4723
   Instruction Type:      CVI_VX_LATE
4724
   Execution Slots:       SLOT23
4725
   ========================================================================== */
4726
 
4727
#define Q6_Vsf_vfmin_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmin_sf)(Vu,Vv)
4728
#endif /* __HEXAGON_ARCH___ >= 68 */
4729
 
4730
#if __HVX_ARCH__ >= 68
4731
/* ==========================================================================
4732
   Assembly Syntax:       Vd32.hf=vfneg(Vu32.hf)
4733
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vfneg_Vhf(HVX_Vector Vu)
4734
   Instruction Type:      CVI_VX_LATE
4735
   Execution Slots:       SLOT23
4736
   ========================================================================== */
4737
 
4738
#define Q6_Vhf_vfneg_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfneg_hf)(Vu)
4739
#endif /* __HEXAGON_ARCH___ >= 68 */
4740
 
4741
#if __HVX_ARCH__ >= 68
4742
/* ==========================================================================
4743
   Assembly Syntax:       Vd32.sf=vfneg(Vu32.sf)
4744
   C Intrinsic Prototype: HVX_Vector Q6_Vsf_vfneg_Vsf(HVX_Vector Vu)
4745
   Instruction Type:      CVI_VX_LATE
4746
   Execution Slots:       SLOT23
4747
   ========================================================================== */
4748
 
4749
#define Q6_Vsf_vfneg_Vsf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfneg_sf)(Vu)
4750
#endif /* __HEXAGON_ARCH___ >= 68 */
4751
 
4752
#if __HVX_ARCH__ >= 68
4753
/* ==========================================================================
4754
   Assembly Syntax:       Qd4=vcmp.gt(Vu32.hf,Vv32.hf)
4755
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4756
   Instruction Type:      CVI_VA
4757
   Execution Slots:       SLOT0123
4758
   ========================================================================== */
4759
 
4760
#define Q6_Q_vcmp_gt_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgthf)(Vu,Vv)),-1)
4761
#endif /* __HEXAGON_ARCH___ >= 68 */
4762
 
4763
#if __HVX_ARCH__ >= 68
4764
/* ==========================================================================
4765
   Assembly Syntax:       Qx4&=vcmp.gt(Vu32.hf,Vv32.hf)
4766
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4767
   Instruction Type:      CVI_VA
4768
   Execution Slots:       SLOT0123
4769
   ========================================================================== */
4770
 
4771
#define Q6_Q_vcmp_gtand_QVhfVhf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgthf_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4772
#endif /* __HEXAGON_ARCH___ >= 68 */
4773
 
4774
#if __HVX_ARCH__ >= 68
4775
/* ==========================================================================
4776
   Assembly Syntax:       Qx4|=vcmp.gt(Vu32.hf,Vv32.hf)
4777
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4778
   Instruction Type:      CVI_VA
4779
   Execution Slots:       SLOT0123
4780
   ========================================================================== */
4781
 
4782
#define Q6_Q_vcmp_gtor_QVhfVhf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgthf_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4783
#endif /* __HEXAGON_ARCH___ >= 68 */
4784
 
4785
#if __HVX_ARCH__ >= 68
4786
/* ==========================================================================
4787
   Assembly Syntax:       Qx4^=vcmp.gt(Vu32.hf,Vv32.hf)
4788
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4789
   Instruction Type:      CVI_VA
4790
   Execution Slots:       SLOT0123
4791
   ========================================================================== */
4792
 
4793
#define Q6_Q_vcmp_gtxacc_QVhfVhf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgthf_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4794
#endif /* __HEXAGON_ARCH___ >= 68 */
4795
 
4796
#if __HVX_ARCH__ >= 68
4797
/* ==========================================================================
4798
   Assembly Syntax:       Qd4=vcmp.gt(Vu32.sf,Vv32.sf)
4799
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4800
   Instruction Type:      CVI_VA
4801
   Execution Slots:       SLOT0123
4802
   ========================================================================== */
4803
 
4804
#define Q6_Q_vcmp_gt_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtsf)(Vu,Vv)),-1)
4805
#endif /* __HEXAGON_ARCH___ >= 68 */
4806
 
4807
#if __HVX_ARCH__ >= 68
4808
/* ==========================================================================
4809
   Assembly Syntax:       Qx4&=vcmp.gt(Vu32.sf,Vv32.sf)
4810
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4811
   Instruction Type:      CVI_VA
4812
   Execution Slots:       SLOT0123
4813
   ========================================================================== */
4814
 
4815
#define Q6_Q_vcmp_gtand_QVsfVsf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtsf_and)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4816
#endif /* __HEXAGON_ARCH___ >= 68 */
4817
 
4818
#if __HVX_ARCH__ >= 68
4819
/* ==========================================================================
4820
   Assembly Syntax:       Qx4|=vcmp.gt(Vu32.sf,Vv32.sf)
4821
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4822
   Instruction Type:      CVI_VA
4823
   Execution Slots:       SLOT0123
4824
   ========================================================================== */
4825
 
4826
#define Q6_Q_vcmp_gtor_QVsfVsf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtsf_or)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4827
#endif /* __HEXAGON_ARCH___ >= 68 */
4828
 
4829
#if __HVX_ARCH__ >= 68
4830
/* ==========================================================================
4831
   Assembly Syntax:       Qx4^=vcmp.gt(Vu32.sf,Vv32.sf)
4832
   C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4833
   Instruction Type:      CVI_VA
4834
   Execution Slots:       SLOT0123
4835
   ========================================================================== */
4836
 
4837
#define Q6_Q_vcmp_gtxacc_QVsfVsf(Qx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgtsf_xor)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qx),-1),Vu,Vv)),-1)
4838
#endif /* __HEXAGON_ARCH___ >= 68 */
4839
 
4840
#if __HVX_ARCH__ >= 68
4841
/* ==========================================================================
4842
   Assembly Syntax:       Vd32.hf=vmax(Vu32.hf,Vv32.hf)
4843
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmax_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4844
   Instruction Type:      CVI_VA
4845
   Execution Slots:       SLOT0123
4846
   ========================================================================== */
4847
 
4848
#define Q6_Vhf_vmax_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmax_hf)(Vu,Vv)
4849
#endif /* __HEXAGON_ARCH___ >= 68 */
4850
 
4851
#if __HVX_ARCH__ >= 68
4852
/* ==========================================================================
4853
   Assembly Syntax:       Vd32.sf=vmax(Vu32.sf,Vv32.sf)
4854
   C Intrinsic Prototype: HVX_Vector Q6_Vsf_vmax_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4855
   Instruction Type:      CVI_VA
4856
   Execution Slots:       SLOT0123
4857
   ========================================================================== */
4858
 
4859
#define Q6_Vsf_vmax_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmax_sf)(Vu,Vv)
4860
#endif /* __HEXAGON_ARCH___ >= 68 */
4861
 
4862
#if __HVX_ARCH__ >= 68
4863
/* ==========================================================================
4864
   Assembly Syntax:       Vd32.hf=vmin(Vu32.hf,Vv32.hf)
4865
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmin_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4866
   Instruction Type:      CVI_VA
4867
   Execution Slots:       SLOT0123
4868
   ========================================================================== */
4869
 
4870
#define Q6_Vhf_vmin_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmin_hf)(Vu,Vv)
4871
#endif /* __HEXAGON_ARCH___ >= 68 */
4872
 
4873
#if __HVX_ARCH__ >= 68
4874
/* ==========================================================================
4875
   Assembly Syntax:       Vd32.sf=vmin(Vu32.sf,Vv32.sf)
4876
   C Intrinsic Prototype: HVX_Vector Q6_Vsf_vmin_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4877
   Instruction Type:      CVI_VA
4878
   Execution Slots:       SLOT0123
4879
   ========================================================================== */
4880
 
4881
#define Q6_Vsf_vmin_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmin_sf)(Vu,Vv)
4882
#endif /* __HEXAGON_ARCH___ >= 68 */
4883
 
4884
#if __HVX_ARCH__ >= 68
4885
/* ==========================================================================
4886
   Assembly Syntax:       Vd32.hf=vmpy(Vu32.hf,Vv32.hf)
4887
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4888
   Instruction Type:      CVI_VX
4889
   Execution Slots:       SLOT23
4890
   ========================================================================== */
4891
 
4892
#define Q6_Vhf_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_hf_hf)(Vu,Vv)
4893
#endif /* __HEXAGON_ARCH___ >= 68 */
4894
 
4895
#if __HVX_ARCH__ >= 68
4896
/* ==========================================================================
4897
   Assembly Syntax:       Vx32.hf+=vmpy(Vu32.hf,Vv32.hf)
4898
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmpyacc_VhfVhfVhf(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
4899
   Instruction Type:      CVI_VX
4900
   Execution Slots:       SLOT23
4901
   ========================================================================== */
4902
 
4903
#define Q6_Vhf_vmpyacc_VhfVhfVhf(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_hf_hf_acc)(Vx,Vu,Vv)
4904
#endif /* __HEXAGON_ARCH___ >= 68 */
4905
 
4906
#if __HVX_ARCH__ >= 68
4907
/* ==========================================================================
4908
   Assembly Syntax:       Vd32.qf16=vmpy(Vu32.qf16,Vv32.qf16)
4909
   C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
4910
   Instruction Type:      CVI_VX_DV
4911
   Execution Slots:       SLOT23
4912
   ========================================================================== */
4913
 
4914
#define Q6_Vqf16_vmpy_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf16)(Vu,Vv)
4915
#endif /* __HEXAGON_ARCH___ >= 68 */
4916
 
4917
#if __HVX_ARCH__ >= 68
4918
/* ==========================================================================
4919
   Assembly Syntax:       Vd32.qf16=vmpy(Vu32.hf,Vv32.hf)
4920
   C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4921
   Instruction Type:      CVI_VX_DV
4922
   Execution Slots:       SLOT23
4923
   ========================================================================== */
4924
 
4925
#define Q6_Vqf16_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf16_hf)(Vu,Vv)
4926
#endif /* __HEXAGON_ARCH___ >= 68 */
4927
 
4928
#if __HVX_ARCH__ >= 68
4929
/* ==========================================================================
4930
   Assembly Syntax:       Vd32.qf16=vmpy(Vu32.qf16,Vv32.hf)
4931
   C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
4932
   Instruction Type:      CVI_VX_DV
4933
   Execution Slots:       SLOT23
4934
   ========================================================================== */
4935
 
4936
#define Q6_Vqf16_vmpy_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf16_mix_hf)(Vu,Vv)
4937
#endif /* __HEXAGON_ARCH___ >= 68 */
4938
 
4939
#if __HVX_ARCH__ >= 68
4940
/* ==========================================================================
4941
   Assembly Syntax:       Vd32.qf32=vmpy(Vu32.qf32,Vv32.qf32)
4942
   C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vmpy_Vqf32Vqf32(HVX_Vector Vu, HVX_Vector Vv)
4943
   Instruction Type:      CVI_VX_DV
4944
   Execution Slots:       SLOT23
4945
   ========================================================================== */
4946
 
4947
#define Q6_Vqf32_vmpy_Vqf32Vqf32(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32)(Vu,Vv)
4948
#endif /* __HEXAGON_ARCH___ >= 68 */
4949
 
4950
#if __HVX_ARCH__ >= 68
4951
/* ==========================================================================
4952
   Assembly Syntax:       Vdd32.qf32=vmpy(Vu32.hf,Vv32.hf)
4953
   C Intrinsic Prototype: HVX_VectorPair Q6_Wqf32_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4954
   Instruction Type:      CVI_VX_DV
4955
   Execution Slots:       SLOT23
4956
   ========================================================================== */
4957
 
4958
#define Q6_Wqf32_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_hf)(Vu,Vv)
4959
#endif /* __HEXAGON_ARCH___ >= 68 */
4960
 
4961
#if __HVX_ARCH__ >= 68
4962
/* ==========================================================================
4963
   Assembly Syntax:       Vdd32.qf32=vmpy(Vu32.qf16,Vv32.hf)
4964
   C Intrinsic Prototype: HVX_VectorPair Q6_Wqf32_vmpy_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
4965
   Instruction Type:      CVI_VX_DV
4966
   Execution Slots:       SLOT23
4967
   ========================================================================== */
4968
 
4969
#define Q6_Wqf32_vmpy_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_mix_hf)(Vu,Vv)
4970
#endif /* __HEXAGON_ARCH___ >= 68 */
4971
 
4972
#if __HVX_ARCH__ >= 68
4973
/* ==========================================================================
4974
   Assembly Syntax:       Vdd32.qf32=vmpy(Vu32.qf16,Vv32.qf16)
4975
   C Intrinsic Prototype: HVX_VectorPair Q6_Wqf32_vmpy_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
4976
   Instruction Type:      CVI_VX_DV
4977
   Execution Slots:       SLOT23
4978
   ========================================================================== */
4979
 
4980
#define Q6_Wqf32_vmpy_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_qf16)(Vu,Vv)
4981
#endif /* __HEXAGON_ARCH___ >= 68 */
4982
 
4983
#if __HVX_ARCH__ >= 68
4984
/* ==========================================================================
4985
   Assembly Syntax:       Vd32.qf32=vmpy(Vu32.sf,Vv32.sf)
4986
   C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vmpy_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4987
   Instruction Type:      CVI_VX_DV
4988
   Execution Slots:       SLOT23
4989
   ========================================================================== */
4990
 
4991
#define Q6_Vqf32_vmpy_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_sf)(Vu,Vv)
4992
#endif /* __HEXAGON_ARCH___ >= 68 */
4993
 
4994
#if __HVX_ARCH__ >= 68
4995
/* ==========================================================================
4996
   Assembly Syntax:       Vdd32.sf=vmpy(Vu32.hf,Vv32.hf)
4997
   C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4998
   Instruction Type:      CVI_VX_DV
4999
   Execution Slots:       SLOT23
5000
   ========================================================================== */
5001
 
5002
#define Q6_Wsf_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_sf_hf)(Vu,Vv)
5003
#endif /* __HEXAGON_ARCH___ >= 68 */
5004
 
5005
#if __HVX_ARCH__ >= 68
5006
/* ==========================================================================
5007
   Assembly Syntax:       Vxx32.sf+=vmpy(Vu32.hf,Vv32.hf)
5008
   C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vmpyacc_WsfVhfVhf(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
5009
   Instruction Type:      CVI_VX_DV
5010
   Execution Slots:       SLOT23
5011
   ========================================================================== */
5012
 
5013
#define Q6_Wsf_vmpyacc_WsfVhfVhf(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_sf_hf_acc)(Vxx,Vu,Vv)
5014
#endif /* __HEXAGON_ARCH___ >= 68 */
5015
 
5016
#if __HVX_ARCH__ >= 68
5017
/* ==========================================================================
5018
   Assembly Syntax:       Vd32.sf=vmpy(Vu32.sf,Vv32.sf)
5019
   C Intrinsic Prototype: HVX_Vector Q6_Vsf_vmpy_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5020
   Instruction Type:      CVI_VX_DV
5021
   Execution Slots:       SLOT23
5022
   ========================================================================== */
5023
 
5024
#define Q6_Vsf_vmpy_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_sf_sf)(Vu,Vv)
5025
#endif /* __HEXAGON_ARCH___ >= 68 */
5026
 
5027
#if __HVX_ARCH__ >= 68
5028
/* ==========================================================================
5029
   Assembly Syntax:       Vd32.qf16=vsub(Vu32.hf,Vv32.hf)
5030
   C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5031
   Instruction Type:      CVI_VS
5032
   Execution Slots:       SLOT0123
5033
   ========================================================================== */
5034
 
5035
#define Q6_Vqf16_vsub_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_hf)(Vu,Vv)
5036
#endif /* __HEXAGON_ARCH___ >= 68 */
5037
 
5038
#if __HVX_ARCH__ >= 68
5039
/* ==========================================================================
5040
   Assembly Syntax:       Vd32.hf=vsub(Vu32.hf,Vv32.hf)
5041
   C Intrinsic Prototype: HVX_Vector Q6_Vhf_vsub_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5042
   Instruction Type:      CVI_VX
5043
   Execution Slots:       SLOT23
5044
   ========================================================================== */
5045
 
5046
#define Q6_Vhf_vsub_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_hf_hf)(Vu,Vv)
5047
#endif /* __HEXAGON_ARCH___ >= 68 */
5048
 
5049
#if __HVX_ARCH__ >= 68
5050
/* ==========================================================================
5051
   Assembly Syntax:       Vd32.qf16=vsub(Vu32.qf16,Vv32.qf16)
5052
   C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
5053
   Instruction Type:      CVI_VS
5054
   Execution Slots:       SLOT0123
5055
   ========================================================================== */
5056
 
5057
#define Q6_Vqf16_vsub_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf16)(Vu,Vv)
5058
#endif /* __HEXAGON_ARCH___ >= 68 */
5059
 
5060
#if __HVX_ARCH__ >= 68
5061
/* ==========================================================================
5062
   Assembly Syntax:       Vd32.qf16=vsub(Vu32.qf16,Vv32.hf)
5063
   C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
5064
   Instruction Type:      CVI_VS
5065
   Execution Slots:       SLOT0123
5066
   ========================================================================== */
5067
 
5068
#define Q6_Vqf16_vsub_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf16_mix)(Vu,Vv)
5069
#endif /* __HEXAGON_ARCH___ >= 68 */
5070
 
5071
#if __HVX_ARCH__ >= 68
5072
/* ==========================================================================
5073
   Assembly Syntax:       Vd32.qf32=vsub(Vu32.qf32,Vv32.qf32)
5074
   C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_Vqf32Vqf32(HVX_Vector Vu, HVX_Vector Vv)
5075
   Instruction Type:      CVI_VS
5076
   Execution Slots:       SLOT0123
5077
   ========================================================================== */
5078
 
5079
#define Q6_Vqf32_vsub_Vqf32Vqf32(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf32)(Vu,Vv)
5080
#endif /* __HEXAGON_ARCH___ >= 68 */
5081
 
5082
#if __HVX_ARCH__ >= 68
5083
/* ==========================================================================
5084
   Assembly Syntax:       Vd32.qf32=vsub(Vu32.qf32,Vv32.sf)
5085
   C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_Vqf32Vsf(HVX_Vector Vu, HVX_Vector Vv)
5086
   Instruction Type:      CVI_VS
5087
   Execution Slots:       SLOT0123
5088
   ========================================================================== */
5089
 
5090
#define Q6_Vqf32_vsub_Vqf32Vsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf32_mix)(Vu,Vv)
5091
#endif /* __HEXAGON_ARCH___ >= 68 */
5092
 
5093
#if __HVX_ARCH__ >= 68
5094
/* ==========================================================================
5095
   Assembly Syntax:       Vd32.qf32=vsub(Vu32.sf,Vv32.sf)
5096
   C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5097
   Instruction Type:      CVI_VS
5098
   Execution Slots:       SLOT0123
5099
   ========================================================================== */
5100
 
5101
#define Q6_Vqf32_vsub_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_sf)(Vu,Vv)
5102
#endif /* __HEXAGON_ARCH___ >= 68 */
5103
 
5104
#if __HVX_ARCH__ >= 68
5105
/* ==========================================================================
5106
   Assembly Syntax:       Vdd32.sf=vsub(Vu32.hf,Vv32.hf)
5107
   C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vsub_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5108
   Instruction Type:      CVI_VX_DV
5109
   Execution Slots:       SLOT23
5110
   ========================================================================== */
5111
 
5112
#define Q6_Wsf_vsub_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_sf_hf)(Vu,Vv)
5113
#endif /* __HEXAGON_ARCH___ >= 68 */
5114
 
5115
#if __HVX_ARCH__ >= 68
5116
/* ==========================================================================
5117
   Assembly Syntax:       Vd32.sf=vsub(Vu32.sf,Vv32.sf)
5118
   C Intrinsic Prototype: HVX_Vector Q6_Vsf_vsub_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5119
   Instruction Type:      CVI_VX
5120
   Execution Slots:       SLOT23
5121
   ========================================================================== */
5122
 
5123
#define Q6_Vsf_vsub_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_sf_sf)(Vu,Vv)
5124
#endif /* __HEXAGON_ARCH___ >= 68 */
5125
 
5126
#if __HVX_ARCH__ >= 69
5127
/* ==========================================================================
5128
   Assembly Syntax:       Vd32.ub=vasr(Vuu32.uh,Vv32.ub):rnd:sat
5129
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_WuhVub_rnd_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5130
   Instruction Type:      CVI_VS
5131
   Execution Slots:       SLOT0123
5132
   ========================================================================== */
5133
 
5134
#define Q6_Vub_vasr_WuhVub_rnd_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvuhubrndsat)(Vuu,Vv)
5135
#endif /* __HEXAGON_ARCH___ >= 69 */
5136
 
5137
#if __HVX_ARCH__ >= 69
5138
/* ==========================================================================
5139
   Assembly Syntax:       Vd32.ub=vasr(Vuu32.uh,Vv32.ub):sat
5140
   C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_WuhVub_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5141
   Instruction Type:      CVI_VS
5142
   Execution Slots:       SLOT0123
5143
   ========================================================================== */
5144
 
5145
#define Q6_Vub_vasr_WuhVub_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvuhubsat)(Vuu,Vv)
5146
#endif /* __HEXAGON_ARCH___ >= 69 */
5147
 
5148
#if __HVX_ARCH__ >= 69
5149
/* ==========================================================================
5150
   Assembly Syntax:       Vd32.uh=vasr(Vuu32.w,Vv32.uh):rnd:sat
5151
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_WwVuh_rnd_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5152
   Instruction Type:      CVI_VS
5153
   Execution Slots:       SLOT0123
5154
   ========================================================================== */
5155
 
5156
#define Q6_Vuh_vasr_WwVuh_rnd_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvwuhrndsat)(Vuu,Vv)
5157
#endif /* __HEXAGON_ARCH___ >= 69 */
5158
 
5159
#if __HVX_ARCH__ >= 69
5160
/* ==========================================================================
5161
   Assembly Syntax:       Vd32.uh=vasr(Vuu32.w,Vv32.uh):sat
5162
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_WwVuh_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5163
   Instruction Type:      CVI_VS
5164
   Execution Slots:       SLOT0123
5165
   ========================================================================== */
5166
 
5167
#define Q6_Vuh_vasr_WwVuh_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvwuhsat)(Vuu,Vv)
5168
#endif /* __HEXAGON_ARCH___ >= 69 */
5169
 
5170
#if __HVX_ARCH__ >= 69
5171
/* ==========================================================================
5172
   Assembly Syntax:       Vd32.uh=vmpy(Vu32.uh,Vv32.uh):>>16
5173
   C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmpy_VuhVuh_rs16(HVX_Vector Vu, HVX_Vector Vv)
5174
   Instruction Type:      CVI_VX
5175
   Execution Slots:       SLOT23
5176
   ========================================================================== */
5177
 
5178
#define Q6_Vuh_vmpy_VuhVuh_rs16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhvs)(Vu,Vv)
5179
#endif /* __HEXAGON_ARCH___ >= 69 */
5180
 
5181
#endif /* __HVX__ */
5182
 
5183
#endif