xref: /aosp_15_r20/prebuilts/clang-tools/linux-x86/clang-headers/hvx_hexagon_protos.h (revision bed243d3d9cd544cfb038bfa7be843dedc6e6bf7)
1*bed243d3SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
2*bed243d3SAndroid Build Coastguard Worker //
3*bed243d3SAndroid Build Coastguard Worker // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*bed243d3SAndroid Build Coastguard Worker // See https://llvm.org/LICENSE.txt for license information.
5*bed243d3SAndroid Build Coastguard Worker // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*bed243d3SAndroid Build Coastguard Worker //
7*bed243d3SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
8*bed243d3SAndroid Build Coastguard Worker // Automatically generated file, do not edit!
9*bed243d3SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
10*bed243d3SAndroid Build Coastguard Worker 
11*bed243d3SAndroid Build Coastguard Worker 
12*bed243d3SAndroid Build Coastguard Worker #ifndef _HVX_HEXAGON_PROTOS_H_
13*bed243d3SAndroid Build Coastguard Worker #define _HVX_HEXAGON_PROTOS_H_ 1
14*bed243d3SAndroid Build Coastguard Worker 
15*bed243d3SAndroid Build Coastguard Worker #ifdef __HVX__
16*bed243d3SAndroid Build Coastguard Worker #if __HVX_LENGTH__ == 128
17*bed243d3SAndroid Build Coastguard Worker #define __BUILTIN_VECTOR_WRAP(a) a ## _128B
18*bed243d3SAndroid Build Coastguard Worker #else
19*bed243d3SAndroid Build Coastguard Worker #define __BUILTIN_VECTOR_WRAP(a) a
20*bed243d3SAndroid Build Coastguard Worker #endif
21*bed243d3SAndroid Build Coastguard Worker 
22*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
23*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
24*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Rd32=vextract(Vu32,Rs32)
25*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: Word32 Q6_R_vextract_VR(HVX_Vector Vu, Word32 Rs)
26*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      LD
27*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
28*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
29*bed243d3SAndroid Build Coastguard Worker 
30*bed243d3SAndroid Build Coastguard Worker #define Q6_R_vextract_VR(Vu,Rs) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_extractw)(Vu,Rs)
31*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
32*bed243d3SAndroid Build Coastguard Worker 
33*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
34*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
35*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=hi(Vss32)
36*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_hi_W(HVX_VectorPair Vss)
37*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
38*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
39*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
40*bed243d3SAndroid Build Coastguard Worker 
41*bed243d3SAndroid Build Coastguard Worker #define Q6_V_hi_W(Vss) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_hi)(Vss)
42*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
43*bed243d3SAndroid Build Coastguard Worker 
44*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
45*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
46*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=lo(Vss32)
47*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_lo_W(HVX_VectorPair Vss)
48*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
49*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
50*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
51*bed243d3SAndroid Build Coastguard Worker 
52*bed243d3SAndroid Build Coastguard Worker #define Q6_V_lo_W(Vss) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lo)(Vss)
53*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
54*bed243d3SAndroid Build Coastguard Worker 
55*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
56*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
57*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vsplat(Rt32)
58*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vsplat_R(Word32 Rt)
59*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
60*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
61*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
62*bed243d3SAndroid Build Coastguard Worker 
63*bed243d3SAndroid Build Coastguard Worker #define Q6_V_vsplat_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplatw)(Rt)
64*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
65*bed243d3SAndroid Build Coastguard Worker 
66*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
67*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
68*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=and(Qs4,Qt4)
69*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_and_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
70*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
71*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
72*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
73*bed243d3SAndroid Build Coastguard Worker 
74*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
76*bed243d3SAndroid Build Coastguard Worker 
77*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
78*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
79*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=and(Qs4,!Qt4)
80*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_and_QQn(HVX_VectorPred Qs, HVX_VectorPred Qt)
81*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
82*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
83*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
84*bed243d3SAndroid Build Coastguard Worker 
85*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
87*bed243d3SAndroid Build Coastguard Worker 
88*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
89*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
90*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=not(Qs4)
91*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_not_Q(HVX_VectorPred Qs)
92*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
93*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
94*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
95*bed243d3SAndroid Build Coastguard Worker 
96*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
98*bed243d3SAndroid Build Coastguard Worker 
99*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
100*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
101*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=or(Qs4,Qt4)
102*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_or_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
103*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
104*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
105*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
106*bed243d3SAndroid Build Coastguard Worker 
107*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
109*bed243d3SAndroid Build Coastguard Worker 
110*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
111*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
112*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=or(Qs4,!Qt4)
113*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_or_QQn(HVX_VectorPred Qs, HVX_VectorPred Qt)
114*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
115*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
116*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
117*bed243d3SAndroid Build Coastguard Worker 
118*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
120*bed243d3SAndroid Build Coastguard Worker 
121*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
122*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
123*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vsetq(Rt32)
124*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vsetq_R(Word32 Rt)
125*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
126*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
127*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
128*bed243d3SAndroid Build Coastguard Worker 
129*bed243d3SAndroid Build Coastguard Worker #define Q6_Q_vsetq_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_scalar2)(Rt)),-1)
130*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
131*bed243d3SAndroid Build Coastguard Worker 
132*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
133*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
134*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=xor(Qs4,Qt4)
135*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_xor_QQ(HVX_VectorPred Qs, HVX_VectorPred Qt)
136*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
137*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
138*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
139*bed243d3SAndroid Build Coastguard Worker 
140*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
142*bed243d3SAndroid Build Coastguard Worker 
143*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
144*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
145*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (!Qv4) vmem(Rt32+#s4)=Vs32
146*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vmem_QnRIV(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
147*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VM_ST
148*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
149*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
150*bed243d3SAndroid Build Coastguard Worker 
151*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
153*bed243d3SAndroid Build Coastguard Worker 
154*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
155*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
156*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (!Qv4) vmem(Rt32+#s4):nt=Vs32
157*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vmem_QnRIV_nt(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
158*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VM_ST
159*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
160*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
161*bed243d3SAndroid Build Coastguard Worker 
162*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
164*bed243d3SAndroid Build Coastguard Worker 
165*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
166*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
167*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qv4) vmem(Rt32+#s4):nt=Vs32
168*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vmem_QRIV_nt(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
169*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VM_ST
170*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
171*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
172*bed243d3SAndroid Build Coastguard Worker 
173*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
175*bed243d3SAndroid Build Coastguard Worker 
176*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
177*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
178*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qv4) vmem(Rt32+#s4)=Vs32
179*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vmem_QRIV(HVX_VectorPred Qv, HVX_Vector* Rt, HVX_Vector Vs)
180*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VM_ST
181*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
182*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
183*bed243d3SAndroid Build Coastguard Worker 
184*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
186*bed243d3SAndroid Build Coastguard Worker 
187*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
188*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
189*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vabsdiff(Vu32.h,Vv32.h)
190*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vabsdiff_VhVh(HVX_Vector Vu, HVX_Vector Vv)
191*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
192*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
193*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
194*bed243d3SAndroid Build Coastguard Worker 
195*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vabsdiff_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffh)(Vu,Vv)
196*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
197*bed243d3SAndroid Build Coastguard Worker 
198*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
199*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
200*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vabsdiff(Vu32.ub,Vv32.ub)
201*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vabsdiff_VubVub(HVX_Vector Vu, HVX_Vector Vv)
202*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
203*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
204*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
205*bed243d3SAndroid Build Coastguard Worker 
206*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vabsdiff_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffub)(Vu,Vv)
207*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
208*bed243d3SAndroid Build Coastguard Worker 
209*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
210*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
211*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vabsdiff(Vu32.uh,Vv32.uh)
212*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vabsdiff_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
213*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
214*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
215*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
216*bed243d3SAndroid Build Coastguard Worker 
217*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vabsdiff_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffuh)(Vu,Vv)
218*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
219*bed243d3SAndroid Build Coastguard Worker 
220*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
221*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
222*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uw=vabsdiff(Vu32.w,Vv32.w)
223*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vabsdiff_VwVw(HVX_Vector Vu, HVX_Vector Vv)
224*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
225*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
226*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
227*bed243d3SAndroid Build Coastguard Worker 
228*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vabsdiff_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsdiffw)(Vu,Vv)
229*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
230*bed243d3SAndroid Build Coastguard Worker 
231*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
232*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
233*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vabs(Vu32.h)
234*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vabs_Vh(HVX_Vector Vu)
235*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
236*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
237*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
238*bed243d3SAndroid Build Coastguard Worker 
239*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vabs_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsh)(Vu)
240*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
241*bed243d3SAndroid Build Coastguard Worker 
242*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
243*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
244*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vabs(Vu32.h):sat
245*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vabs_Vh_sat(HVX_Vector Vu)
246*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
247*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
248*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
249*bed243d3SAndroid Build Coastguard Worker 
250*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vabs_Vh_sat(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsh_sat)(Vu)
251*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
252*bed243d3SAndroid Build Coastguard Worker 
253*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
254*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
255*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vabs(Vu32.w)
256*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vabs_Vw(HVX_Vector Vu)
257*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
258*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
259*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
260*bed243d3SAndroid Build Coastguard Worker 
261*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vabs_Vw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsw)(Vu)
262*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
263*bed243d3SAndroid Build Coastguard Worker 
264*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
265*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
266*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vabs(Vu32.w):sat
267*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vabs_Vw_sat(HVX_Vector Vu)
268*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
269*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
270*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
271*bed243d3SAndroid Build Coastguard Worker 
272*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vabs_Vw_sat(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsw_sat)(Vu)
273*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
274*bed243d3SAndroid Build Coastguard Worker 
275*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
276*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
277*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vadd(Vu32.b,Vv32.b)
278*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vadd_VbVb(HVX_Vector Vu, HVX_Vector Vv)
279*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
280*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
281*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
282*bed243d3SAndroid Build Coastguard Worker 
283*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vadd_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddb)(Vu,Vv)
284*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
285*bed243d3SAndroid Build Coastguard Worker 
286*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
287*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
288*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.b=vadd(Vuu32.b,Vvv32.b)
289*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vadd_WbWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
290*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
291*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
292*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
293*bed243d3SAndroid Build Coastguard Worker 
294*bed243d3SAndroid Build Coastguard Worker #define Q6_Wb_vadd_WbWb(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddb_dv)(Vuu,Vvv)
295*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
296*bed243d3SAndroid Build Coastguard Worker 
297*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
298*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
299*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (!Qv4) Vx32.b+=Vu32.b
300*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_condacc_QnVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
301*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
302*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
303*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
304*bed243d3SAndroid Build Coastguard Worker 
305*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
307*bed243d3SAndroid Build Coastguard Worker 
308*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
309*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
310*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qv4) Vx32.b+=Vu32.b
311*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_condacc_QVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
312*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
313*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
314*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
315*bed243d3SAndroid Build Coastguard Worker 
316*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
318*bed243d3SAndroid Build Coastguard Worker 
319*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
320*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
321*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vadd(Vu32.h,Vv32.h)
322*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_VhVh(HVX_Vector Vu, HVX_Vector Vv)
323*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
324*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
325*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
326*bed243d3SAndroid Build Coastguard Worker 
327*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vadd_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddh)(Vu,Vv)
328*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
329*bed243d3SAndroid Build Coastguard Worker 
330*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
331*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
332*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vadd(Vuu32.h,Vvv32.h)
333*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_WhWh(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
334*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
335*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
336*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
337*bed243d3SAndroid Build Coastguard Worker 
338*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vadd_WhWh(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddh_dv)(Vuu,Vvv)
339*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
340*bed243d3SAndroid Build Coastguard Worker 
341*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
342*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
343*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (!Qv4) Vx32.h+=Vu32.h
344*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_condacc_QnVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
345*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
346*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
347*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
348*bed243d3SAndroid Build Coastguard Worker 
349*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
351*bed243d3SAndroid Build Coastguard Worker 
352*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
353*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
354*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qv4) Vx32.h+=Vu32.h
355*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_condacc_QVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
356*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
357*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
358*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
359*bed243d3SAndroid Build Coastguard Worker 
360*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
362*bed243d3SAndroid Build Coastguard Worker 
363*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
364*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
365*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vadd(Vu32.h,Vv32.h):sat
366*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
367*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
368*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
369*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
370*bed243d3SAndroid Build Coastguard Worker 
371*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vadd_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhsat)(Vu,Vv)
372*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
373*bed243d3SAndroid Build Coastguard Worker 
374*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
375*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
376*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vadd(Vuu32.h,Vvv32.h):sat
377*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_WhWh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
378*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
379*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
380*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
381*bed243d3SAndroid Build Coastguard Worker 
382*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vadd_WhWh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhsat_dv)(Vuu,Vvv)
383*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
384*bed243d3SAndroid Build Coastguard Worker 
385*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
386*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
387*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vadd(Vu32.h,Vv32.h)
388*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_VhVh(HVX_Vector Vu, HVX_Vector Vv)
389*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
390*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
391*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
392*bed243d3SAndroid Build Coastguard Worker 
393*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vadd_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhw)(Vu,Vv)
394*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
395*bed243d3SAndroid Build Coastguard Worker 
396*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
397*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
398*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vadd(Vu32.ub,Vv32.ub)
399*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vadd_VubVub(HVX_Vector Vu, HVX_Vector Vv)
400*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
401*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
402*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
403*bed243d3SAndroid Build Coastguard Worker 
404*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vadd_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubh)(Vu,Vv)
405*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
406*bed243d3SAndroid Build Coastguard Worker 
407*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
408*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
409*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vadd(Vu32.ub,Vv32.ub):sat
410*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vadd_VubVub_sat(HVX_Vector Vu, HVX_Vector Vv)
411*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
412*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
413*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
414*bed243d3SAndroid Build Coastguard Worker 
415*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vadd_VubVub_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubsat)(Vu,Vv)
416*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
417*bed243d3SAndroid Build Coastguard Worker 
418*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
419*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
420*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.ub=vadd(Vuu32.ub,Vvv32.ub):sat
421*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wub_vadd_WubWub_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
422*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
423*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
424*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
425*bed243d3SAndroid Build Coastguard Worker 
426*bed243d3SAndroid Build Coastguard Worker #define Q6_Wub_vadd_WubWub_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubsat_dv)(Vuu,Vvv)
427*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
428*bed243d3SAndroid Build Coastguard Worker 
429*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
430*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
431*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vadd(Vu32.uh,Vv32.uh):sat
432*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vadd_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
433*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
434*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
435*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
436*bed243d3SAndroid Build Coastguard Worker 
437*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vadd_VuhVuh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhsat)(Vu,Vv)
438*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
439*bed243d3SAndroid Build Coastguard Worker 
440*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
441*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
442*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uh=vadd(Vuu32.uh,Vvv32.uh):sat
443*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vadd_WuhWuh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
444*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
445*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
446*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
447*bed243d3SAndroid Build Coastguard Worker 
448*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuh_vadd_WuhWuh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhsat_dv)(Vuu,Vvv)
449*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
450*bed243d3SAndroid Build Coastguard Worker 
451*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
452*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
453*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vadd(Vu32.uh,Vv32.uh)
454*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
455*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
456*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
457*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
458*bed243d3SAndroid Build Coastguard Worker 
459*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vadd_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhw)(Vu,Vv)
460*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
461*bed243d3SAndroid Build Coastguard Worker 
462*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
463*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
464*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vadd(Vu32.w,Vv32.w)
465*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVw(HVX_Vector Vu, HVX_Vector Vv)
466*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
467*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
468*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
469*bed243d3SAndroid Build Coastguard Worker 
470*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vadd_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddw)(Vu,Vv)
471*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
472*bed243d3SAndroid Build Coastguard Worker 
473*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
474*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
475*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vadd(Vuu32.w,Vvv32.w)
476*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_WwWw(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
477*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
478*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
479*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
480*bed243d3SAndroid Build Coastguard Worker 
481*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vadd_WwWw(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddw_dv)(Vuu,Vvv)
482*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
483*bed243d3SAndroid Build Coastguard Worker 
484*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
485*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
486*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (!Qv4) Vx32.w+=Vu32.w
487*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_condacc_QnVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
488*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
489*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
490*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
491*bed243d3SAndroid Build Coastguard Worker 
492*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
494*bed243d3SAndroid Build Coastguard Worker 
495*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
496*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
497*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qv4) Vx32.w+=Vu32.w
498*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_condacc_QVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
499*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
500*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
501*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
502*bed243d3SAndroid Build Coastguard Worker 
503*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
505*bed243d3SAndroid Build Coastguard Worker 
506*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
507*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
508*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vadd(Vu32.w,Vv32.w):sat
509*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
510*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
511*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
512*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
513*bed243d3SAndroid Build Coastguard Worker 
514*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vadd_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwsat)(Vu,Vv)
515*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
516*bed243d3SAndroid Build Coastguard Worker 
517*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
518*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
519*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vadd(Vuu32.w,Vvv32.w):sat
520*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vadd_WwWw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
521*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
522*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
523*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
524*bed243d3SAndroid Build Coastguard Worker 
525*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vadd_WwWw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddwsat_dv)(Vuu,Vvv)
526*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
527*bed243d3SAndroid Build Coastguard Worker 
528*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
529*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
530*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=valign(Vu32,Vv32,Rt8)
531*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_valign_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
532*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
533*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
534*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
535*bed243d3SAndroid Build Coastguard Worker 
536*bed243d3SAndroid Build Coastguard Worker #define Q6_V_valign_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_valignb)(Vu,Vv,Rt)
537*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
538*bed243d3SAndroid Build Coastguard Worker 
539*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
540*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
541*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=valign(Vu32,Vv32,#u3)
542*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_valign_VVI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
543*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
544*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
545*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
546*bed243d3SAndroid Build Coastguard Worker 
547*bed243d3SAndroid Build Coastguard Worker #define Q6_V_valign_VVI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_valignbi)(Vu,Vv,Iu3)
548*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
549*bed243d3SAndroid Build Coastguard Worker 
550*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
551*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
552*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vand(Vu32,Vv32)
553*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vand_VV(HVX_Vector Vu, HVX_Vector Vv)
554*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
555*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
556*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
557*bed243d3SAndroid Build Coastguard Worker 
558*bed243d3SAndroid Build Coastguard Worker #define Q6_V_vand_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vand)(Vu,Vv)
559*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
560*bed243d3SAndroid Build Coastguard Worker 
561*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
562*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
563*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vand(Qu4,Rt32)
564*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vand_QR(HVX_VectorPred Qu, Word32 Rt)
565*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
566*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
567*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
568*bed243d3SAndroid Build Coastguard Worker 
569*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
571*bed243d3SAndroid Build Coastguard Worker 
572*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
573*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
574*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32|=vand(Qu4,Rt32)
575*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vandor_VQR(HVX_Vector Vx, HVX_VectorPred Qu, Word32 Rt)
576*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
577*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
578*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
579*bed243d3SAndroid Build Coastguard Worker 
580*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
582*bed243d3SAndroid Build Coastguard Worker 
583*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
584*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
585*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vand(Vu32,Rt32)
586*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vand_VR(HVX_Vector Vu, Word32 Rt)
587*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
588*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
589*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
590*bed243d3SAndroid Build Coastguard Worker 
591*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
593*bed243d3SAndroid Build Coastguard Worker 
594*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
595*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
596*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4|=vand(Vu32,Rt32)
597*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vandor_QVR(HVX_VectorPred Qx, HVX_Vector Vu, Word32 Rt)
598*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
599*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
600*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
601*bed243d3SAndroid Build Coastguard Worker 
602*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
604*bed243d3SAndroid Build Coastguard Worker 
605*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
606*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
607*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vasl(Vu32.h,Rt32)
608*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vasl_VhR(HVX_Vector Vu, Word32 Rt)
609*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
610*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
611*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
612*bed243d3SAndroid Build Coastguard Worker 
613*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vasl_VhR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslh)(Vu,Rt)
614*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
615*bed243d3SAndroid Build Coastguard Worker 
616*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
617*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
618*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vasl(Vu32.h,Vv32.h)
619*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vasl_VhVh(HVX_Vector Vu, HVX_Vector Vv)
620*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
621*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
622*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
623*bed243d3SAndroid Build Coastguard Worker 
624*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vasl_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslhv)(Vu,Vv)
625*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
626*bed243d3SAndroid Build Coastguard Worker 
627*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
628*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
629*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vasl(Vu32.w,Rt32)
630*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vasl_VwR(HVX_Vector Vu, Word32 Rt)
631*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
632*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
633*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
634*bed243d3SAndroid Build Coastguard Worker 
635*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vasl_VwR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslw)(Vu,Rt)
636*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
637*bed243d3SAndroid Build Coastguard Worker 
638*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
639*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
640*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vasl(Vu32.w,Rt32)
641*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vaslacc_VwVwR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
642*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
643*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
644*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
645*bed243d3SAndroid Build Coastguard Worker 
646*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vaslacc_VwVwR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslw_acc)(Vx,Vu,Rt)
647*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
648*bed243d3SAndroid Build Coastguard Worker 
649*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
650*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
651*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vasl(Vu32.w,Vv32.w)
652*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vasl_VwVw(HVX_Vector Vu, HVX_Vector Vv)
653*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
654*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
655*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
656*bed243d3SAndroid Build Coastguard Worker 
657*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vasl_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslwv)(Vu,Vv)
658*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
659*bed243d3SAndroid Build Coastguard Worker 
660*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
661*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
662*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vasr(Vu32.h,Rt32)
663*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VhR(HVX_Vector Vu, Word32 Rt)
664*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
665*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
666*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
667*bed243d3SAndroid Build Coastguard Worker 
668*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vasr_VhR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrh)(Vu,Rt)
669*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
670*bed243d3SAndroid Build Coastguard Worker 
671*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
672*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
673*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat
674*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vasr_VhVhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
675*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
676*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
677*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
678*bed243d3SAndroid Build Coastguard Worker 
679*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vasr_VhVhR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhbrndsat)(Vu,Vv,Rt)
680*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
681*bed243d3SAndroid Build Coastguard Worker 
682*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
683*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
684*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat
685*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VhVhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
686*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
687*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
688*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
689*bed243d3SAndroid Build Coastguard Worker 
690*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vasr_VhVhR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhubrndsat)(Vu,Vv,Rt)
691*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
692*bed243d3SAndroid Build Coastguard Worker 
693*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
694*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
695*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):sat
696*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VhVhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
697*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
698*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
699*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
700*bed243d3SAndroid Build Coastguard Worker 
701*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vasr_VhVhR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhubsat)(Vu,Vv,Rt)
702*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
703*bed243d3SAndroid Build Coastguard Worker 
704*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
705*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
706*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vasr(Vu32.h,Vv32.h)
707*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VhVh(HVX_Vector Vu, HVX_Vector Vv)
708*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
709*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
710*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
711*bed243d3SAndroid Build Coastguard Worker 
712*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vasr_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhv)(Vu,Vv)
713*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
714*bed243d3SAndroid Build Coastguard Worker 
715*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
716*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
717*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vasr(Vu32.w,Rt32)
718*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vasr_VwR(HVX_Vector Vu, Word32 Rt)
719*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
720*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
721*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
722*bed243d3SAndroid Build Coastguard Worker 
723*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vasr_VwR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrw)(Vu,Rt)
724*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
725*bed243d3SAndroid Build Coastguard Worker 
726*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
727*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
728*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vasr(Vu32.w,Rt32)
729*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vasracc_VwVwR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
730*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
731*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
732*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
733*bed243d3SAndroid Build Coastguard Worker 
734*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vasracc_VwVwR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrw_acc)(Vx,Vu,Rt)
735*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
736*bed243d3SAndroid Build Coastguard Worker 
737*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
738*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
739*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vasr(Vu32.w,Vv32.w,Rt8)
740*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
741*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
742*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
743*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
744*bed243d3SAndroid Build Coastguard Worker 
745*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vasr_VwVwR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwh)(Vu,Vv,Rt)
746*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
747*bed243d3SAndroid Build Coastguard Worker 
748*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
749*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
750*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
751*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
752*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
753*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
754*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
755*bed243d3SAndroid Build Coastguard Worker 
756*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vasr_VwVwR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwhrndsat)(Vu,Vv,Rt)
757*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
758*bed243d3SAndroid Build Coastguard Worker 
759*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
760*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
761*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):sat
762*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vasr_VwVwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
763*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
764*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
765*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
766*bed243d3SAndroid Build Coastguard Worker 
767*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vasr_VwVwR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwhsat)(Vu,Vv,Rt)
768*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
769*bed243d3SAndroid Build Coastguard Worker 
770*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
771*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
772*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):sat
773*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VwVwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
774*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
775*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
776*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
777*bed243d3SAndroid Build Coastguard Worker 
778*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vasr_VwVwR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwuhsat)(Vu,Vv,Rt)
779*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
780*bed243d3SAndroid Build Coastguard Worker 
781*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
782*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
783*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vasr(Vu32.w,Vv32.w)
784*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vasr_VwVw(HVX_Vector Vu, HVX_Vector Vv)
785*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
786*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
787*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
788*bed243d3SAndroid Build Coastguard Worker 
789*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vasr_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwv)(Vu,Vv)
790*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
791*bed243d3SAndroid Build Coastguard Worker 
792*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
793*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
794*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=Vu32
795*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_equals_V(HVX_Vector Vu)
796*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
797*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
798*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
799*bed243d3SAndroid Build Coastguard Worker 
800*bed243d3SAndroid Build Coastguard Worker #define Q6_V_equals_V(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassign)(Vu)
801*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
802*bed243d3SAndroid Build Coastguard Worker 
803*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
804*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
805*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32=Vuu32
806*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_W_equals_W(HVX_VectorPair Vuu)
807*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
808*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
809*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
810*bed243d3SAndroid Build Coastguard Worker 
811*bed243d3SAndroid Build Coastguard Worker #define Q6_W_equals_W(Vuu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassignp)(Vuu)
812*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
813*bed243d3SAndroid Build Coastguard Worker 
814*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
815*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
816*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vavg(Vu32.h,Vv32.h)
817*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vavg_VhVh(HVX_Vector Vu, HVX_Vector Vv)
818*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
819*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
820*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
821*bed243d3SAndroid Build Coastguard Worker 
822*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vavg_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgh)(Vu,Vv)
823*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
824*bed243d3SAndroid Build Coastguard Worker 
825*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
826*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
827*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vavg(Vu32.h,Vv32.h):rnd
828*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vavg_VhVh_rnd(HVX_Vector Vu, HVX_Vector Vv)
829*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
830*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
831*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
832*bed243d3SAndroid Build Coastguard Worker 
833*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vavg_VhVh_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavghrnd)(Vu,Vv)
834*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
835*bed243d3SAndroid Build Coastguard Worker 
836*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
837*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
838*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vavg(Vu32.ub,Vv32.ub)
839*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vavg_VubVub(HVX_Vector Vu, HVX_Vector Vv)
840*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
841*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
842*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
843*bed243d3SAndroid Build Coastguard Worker 
844*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vavg_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgub)(Vu,Vv)
845*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
846*bed243d3SAndroid Build Coastguard Worker 
847*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
848*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
849*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vavg(Vu32.ub,Vv32.ub):rnd
850*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vavg_VubVub_rnd(HVX_Vector Vu, HVX_Vector Vv)
851*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
852*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
853*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
854*bed243d3SAndroid Build Coastguard Worker 
855*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vavg_VubVub_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgubrnd)(Vu,Vv)
856*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
857*bed243d3SAndroid Build Coastguard Worker 
858*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
859*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
860*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vavg(Vu32.uh,Vv32.uh)
861*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vavg_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
862*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
863*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
864*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
865*bed243d3SAndroid Build Coastguard Worker 
866*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vavg_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguh)(Vu,Vv)
867*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
868*bed243d3SAndroid Build Coastguard Worker 
869*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
870*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
871*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vavg(Vu32.uh,Vv32.uh):rnd
872*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vavg_VuhVuh_rnd(HVX_Vector Vu, HVX_Vector Vv)
873*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
874*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
875*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
876*bed243d3SAndroid Build Coastguard Worker 
877*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vavg_VuhVuh_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguhrnd)(Vu,Vv)
878*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
879*bed243d3SAndroid Build Coastguard Worker 
880*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
881*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
882*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vavg(Vu32.w,Vv32.w)
883*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vavg_VwVw(HVX_Vector Vu, HVX_Vector Vv)
884*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
885*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
886*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
887*bed243d3SAndroid Build Coastguard Worker 
888*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vavg_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgw)(Vu,Vv)
889*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
890*bed243d3SAndroid Build Coastguard Worker 
891*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
892*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
893*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vavg(Vu32.w,Vv32.w):rnd
894*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vavg_VwVw_rnd(HVX_Vector Vu, HVX_Vector Vv)
895*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
896*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
897*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
898*bed243d3SAndroid Build Coastguard Worker 
899*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vavg_VwVw_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgwrnd)(Vu,Vv)
900*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
901*bed243d3SAndroid Build Coastguard Worker 
902*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
903*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
904*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vcl0(Vu32.uh)
905*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vcl0_Vuh(HVX_Vector Vu)
906*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
907*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
908*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
909*bed243d3SAndroid Build Coastguard Worker 
910*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vcl0_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcl0h)(Vu)
911*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
912*bed243d3SAndroid Build Coastguard Worker 
913*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
914*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
915*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uw=vcl0(Vu32.uw)
916*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vcl0_Vuw(HVX_Vector Vu)
917*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
918*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
919*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
920*bed243d3SAndroid Build Coastguard Worker 
921*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vcl0_Vuw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcl0w)(Vu)
922*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
923*bed243d3SAndroid Build Coastguard Worker 
924*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
925*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
926*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32=vcombine(Vu32,Vv32)
927*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_W_vcombine_VV(HVX_Vector Vu, HVX_Vector Vv)
928*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
929*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
930*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
931*bed243d3SAndroid Build Coastguard Worker 
932*bed243d3SAndroid Build Coastguard Worker #define Q6_W_vcombine_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcombine)(Vu,Vv)
933*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
934*bed243d3SAndroid Build Coastguard Worker 
935*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
936*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
937*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=#0
938*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vzero()
939*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
940*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
941*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
942*bed243d3SAndroid Build Coastguard Worker 
943*bed243d3SAndroid Build Coastguard Worker #define Q6_V_vzero() __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vd0)()
944*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
945*bed243d3SAndroid Build Coastguard Worker 
946*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
947*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
948*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vdeal(Vu32.b)
949*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vdeal_Vb(HVX_Vector Vu)
950*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
951*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
952*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
953*bed243d3SAndroid Build Coastguard Worker 
954*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vdeal_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealb)(Vu)
955*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
956*bed243d3SAndroid Build Coastguard Worker 
957*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
958*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
959*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vdeale(Vu32.b,Vv32.b)
960*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vdeale_VbVb(HVX_Vector Vu, HVX_Vector Vv)
961*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
962*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
963*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
964*bed243d3SAndroid Build Coastguard Worker 
965*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vdeale_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealb4w)(Vu,Vv)
966*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
967*bed243d3SAndroid Build Coastguard Worker 
968*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
969*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
970*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vdeal(Vu32.h)
971*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vdeal_Vh(HVX_Vector Vu)
972*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
973*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
974*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
975*bed243d3SAndroid Build Coastguard Worker 
976*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vdeal_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealh)(Vu)
977*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
978*bed243d3SAndroid Build Coastguard Worker 
979*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
980*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
981*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32=vdeal(Vu32,Vv32,Rt8)
982*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_W_vdeal_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
983*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
984*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
985*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
986*bed243d3SAndroid Build Coastguard Worker 
987*bed243d3SAndroid Build Coastguard Worker #define Q6_W_vdeal_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdealvdd)(Vu,Vv,Rt)
988*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
989*bed243d3SAndroid Build Coastguard Worker 
990*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
991*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
992*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vdelta(Vu32,Vv32)
993*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vdelta_VV(HVX_Vector Vu, HVX_Vector Vv)
994*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
995*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
996*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
997*bed243d3SAndroid Build Coastguard Worker 
998*bed243d3SAndroid Build Coastguard Worker #define Q6_V_vdelta_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdelta)(Vu,Vv)
999*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1000*bed243d3SAndroid Build Coastguard Worker 
1001*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1002*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1003*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vdmpy(Vu32.ub,Rt32.b)
1004*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vdmpy_VubRb(HVX_Vector Vu, Word32 Rt)
1005*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
1006*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1007*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1008*bed243d3SAndroid Build Coastguard Worker 
1009*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vdmpy_VubRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus)(Vu,Rt)
1010*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1011*bed243d3SAndroid Build Coastguard Worker 
1012*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1013*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1014*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.h+=vdmpy(Vu32.ub,Rt32.b)
1015*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vdmpyacc_VhVubRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1016*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
1017*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1018*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1019*bed243d3SAndroid Build Coastguard Worker 
1020*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vdmpyacc_VhVubRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_acc)(Vx,Vu,Rt)
1021*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1022*bed243d3SAndroid Build Coastguard Worker 
1023*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1024*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1025*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vdmpy(Vuu32.ub,Rt32.b)
1026*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vdmpy_WubRb(HVX_VectorPair Vuu, Word32 Rt)
1027*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1028*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1029*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1030*bed243d3SAndroid Build Coastguard Worker 
1031*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vdmpy_WubRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_dv)(Vuu,Rt)
1032*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1033*bed243d3SAndroid Build Coastguard Worker 
1034*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1035*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1036*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.h+=vdmpy(Vuu32.ub,Rt32.b)
1037*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vdmpyacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1038*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1039*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1040*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1041*bed243d3SAndroid Build Coastguard Worker 
1042*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vdmpyacc_WhWubRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpybus_dv_acc)(Vxx,Vuu,Rt)
1043*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1044*bed243d3SAndroid Build Coastguard Worker 
1045*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1046*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1047*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vdmpy(Vu32.h,Rt32.b)
1048*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRb(HVX_Vector Vu, Word32 Rt)
1049*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
1050*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1051*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1052*bed243d3SAndroid Build Coastguard Worker 
1053*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vdmpy_VhRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb)(Vu,Rt)
1054*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1055*bed243d3SAndroid Build Coastguard Worker 
1056*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1057*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1058*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vdmpy(Vu32.h,Rt32.b)
1059*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1060*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
1061*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1062*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1063*bed243d3SAndroid Build Coastguard Worker 
1064*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vdmpyacc_VwVhRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_acc)(Vx,Vu,Rt)
1065*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1066*bed243d3SAndroid Build Coastguard Worker 
1067*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1068*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1069*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vdmpy(Vuu32.h,Rt32.b)
1070*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vdmpy_WhRb(HVX_VectorPair Vuu, Word32 Rt)
1071*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1072*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1073*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1074*bed243d3SAndroid Build Coastguard Worker 
1075*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vdmpy_WhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_dv)(Vuu,Rt)
1076*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1077*bed243d3SAndroid Build Coastguard Worker 
1078*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1079*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1080*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=vdmpy(Vuu32.h,Rt32.b)
1081*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vdmpyacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1082*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1083*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1084*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1085*bed243d3SAndroid Build Coastguard Worker 
1086*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vdmpyacc_WwWhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhb_dv_acc)(Vxx,Vuu,Rt)
1087*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1088*bed243d3SAndroid Build Coastguard Worker 
1089*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1090*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1091*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vdmpy(Vuu32.h,Rt32.h):sat
1092*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_WhRh_sat(HVX_VectorPair Vuu, Word32 Rt)
1093*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1094*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1095*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1096*bed243d3SAndroid Build Coastguard Worker 
1097*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vdmpy_WhRh_sat(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhisat)(Vuu,Rt)
1098*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1099*bed243d3SAndroid Build Coastguard Worker 
1100*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1101*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1102*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vdmpy(Vuu32.h,Rt32.h):sat
1103*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwWhRh_sat(HVX_Vector Vx, HVX_VectorPair Vuu, Word32 Rt)
1104*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1105*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1106*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1107*bed243d3SAndroid Build Coastguard Worker 
1108*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vdmpyacc_VwWhRh_sat(Vx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhisat_acc)(Vx,Vuu,Rt)
1109*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1110*bed243d3SAndroid Build Coastguard Worker 
1111*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1112*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1113*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vdmpy(Vu32.h,Rt32.h):sat
1114*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRh_sat(HVX_Vector Vu, Word32 Rt)
1115*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
1116*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1117*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1118*bed243d3SAndroid Build Coastguard Worker 
1119*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vdmpy_VhRh_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsat)(Vu,Rt)
1120*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1121*bed243d3SAndroid Build Coastguard Worker 
1122*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1123*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1124*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vdmpy(Vu32.h,Rt32.h):sat
1125*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRh_sat(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1126*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
1127*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1128*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1129*bed243d3SAndroid Build Coastguard Worker 
1130*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vdmpyacc_VwVhRh_sat(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsat_acc)(Vx,Vu,Rt)
1131*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1132*bed243d3SAndroid Build Coastguard Worker 
1133*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1134*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1135*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vdmpy(Vuu32.h,Rt32.uh,#1):sat
1136*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_WhRuh_sat(HVX_VectorPair Vuu, Word32 Rt)
1137*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1138*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1139*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1140*bed243d3SAndroid Build Coastguard Worker 
1141*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vdmpy_WhRuh_sat(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsuisat)(Vuu,Rt)
1142*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1143*bed243d3SAndroid Build Coastguard Worker 
1144*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1145*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1146*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vdmpy(Vuu32.h,Rt32.uh,#1):sat
1147*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwWhRuh_sat(HVX_Vector Vx, HVX_VectorPair Vuu, Word32 Rt)
1148*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1149*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1150*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1151*bed243d3SAndroid Build Coastguard Worker 
1152*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vdmpyacc_VwWhRuh_sat(Vx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsuisat_acc)(Vx,Vuu,Rt)
1153*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1154*bed243d3SAndroid Build Coastguard Worker 
1155*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1156*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1157*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vdmpy(Vu32.h,Rt32.uh):sat
1158*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhRuh_sat(HVX_Vector Vu, Word32 Rt)
1159*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
1160*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1161*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1162*bed243d3SAndroid Build Coastguard Worker 
1163*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vdmpy_VhRuh_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsusat)(Vu,Rt)
1164*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1165*bed243d3SAndroid Build Coastguard Worker 
1166*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1167*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1168*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vdmpy(Vu32.h,Rt32.uh):sat
1169*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhRuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
1170*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
1171*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1172*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1173*bed243d3SAndroid Build Coastguard Worker 
1174*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vdmpyacc_VwVhRuh_sat(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhsusat_acc)(Vx,Vu,Rt)
1175*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1176*bed243d3SAndroid Build Coastguard Worker 
1177*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1178*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1179*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vdmpy(Vu32.h,Vv32.h):sat
1180*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpy_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
1181*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
1182*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1183*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1184*bed243d3SAndroid Build Coastguard Worker 
1185*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vdmpy_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhvsat)(Vu,Vv)
1186*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1187*bed243d3SAndroid Build Coastguard Worker 
1188*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1189*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1190*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vdmpy(Vu32.h,Vv32.h):sat
1191*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vdmpyacc_VwVhVh_sat(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
1192*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1193*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1194*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1195*bed243d3SAndroid Build Coastguard Worker 
1196*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vdmpyacc_VwVhVh_sat(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpyhvsat_acc)(Vx,Vu,Vv)
1197*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1198*bed243d3SAndroid Build Coastguard Worker 
1199*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1200*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1201*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uw=vdsad(Vuu32.uh,Rt32.uh)
1202*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vdsad_WuhRuh(HVX_VectorPair Vuu, Word32 Rt)
1203*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1204*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1205*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1206*bed243d3SAndroid Build Coastguard Worker 
1207*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vdsad_WuhRuh(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdsaduh)(Vuu,Rt)
1208*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1209*bed243d3SAndroid Build Coastguard Worker 
1210*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1211*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1212*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.uw+=vdsad(Vuu32.uh,Rt32.uh)
1213*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vdsadacc_WuwWuhRuh(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1214*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1215*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1216*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1217*bed243d3SAndroid Build Coastguard Worker 
1218*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vdsadacc_WuwWuhRuh(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdsaduh_acc)(Vxx,Vuu,Rt)
1219*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1220*bed243d3SAndroid Build Coastguard Worker 
1221*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1222*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1223*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vcmp.eq(Vu32.b,Vv32.b)
1224*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1225*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1226*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1227*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1228*bed243d3SAndroid Build Coastguard Worker 
1229*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1231*bed243d3SAndroid Build Coastguard Worker 
1232*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1233*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1234*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4&=vcmp.eq(Vu32.b,Vv32.b)
1235*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1236*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1237*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1238*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1239*bed243d3SAndroid Build Coastguard Worker 
1240*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1242*bed243d3SAndroid Build Coastguard Worker 
1243*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1244*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1245*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4|=vcmp.eq(Vu32.b,Vv32.b)
1246*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1247*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1248*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1249*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1250*bed243d3SAndroid Build Coastguard Worker 
1251*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1253*bed243d3SAndroid Build Coastguard Worker 
1254*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1255*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1256*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4^=vcmp.eq(Vu32.b,Vv32.b)
1257*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1258*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1259*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1260*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1261*bed243d3SAndroid Build Coastguard Worker 
1262*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1264*bed243d3SAndroid Build Coastguard Worker 
1265*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1266*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1267*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vcmp.eq(Vu32.h,Vv32.h)
1268*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1269*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1270*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1271*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1272*bed243d3SAndroid Build Coastguard Worker 
1273*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1275*bed243d3SAndroid Build Coastguard Worker 
1276*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1277*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1278*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4&=vcmp.eq(Vu32.h,Vv32.h)
1279*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1280*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1281*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1282*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1283*bed243d3SAndroid Build Coastguard Worker 
1284*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1286*bed243d3SAndroid Build Coastguard Worker 
1287*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1288*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1289*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4|=vcmp.eq(Vu32.h,Vv32.h)
1290*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1291*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1292*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1293*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1294*bed243d3SAndroid Build Coastguard Worker 
1295*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1297*bed243d3SAndroid Build Coastguard Worker 
1298*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1299*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1300*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4^=vcmp.eq(Vu32.h,Vv32.h)
1301*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1302*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1303*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1304*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1305*bed243d3SAndroid Build Coastguard Worker 
1306*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1308*bed243d3SAndroid Build Coastguard Worker 
1309*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1310*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1311*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vcmp.eq(Vu32.w,Vv32.w)
1312*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eq_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1313*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1314*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1315*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1316*bed243d3SAndroid Build Coastguard Worker 
1317*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1319*bed243d3SAndroid Build Coastguard Worker 
1320*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1321*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1322*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4&=vcmp.eq(Vu32.w,Vv32.w)
1323*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqand_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1324*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1325*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1326*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1327*bed243d3SAndroid Build Coastguard Worker 
1328*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1330*bed243d3SAndroid Build Coastguard Worker 
1331*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1332*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1333*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4|=vcmp.eq(Vu32.w,Vv32.w)
1334*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqor_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1335*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1336*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1337*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1338*bed243d3SAndroid Build Coastguard Worker 
1339*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1341*bed243d3SAndroid Build Coastguard Worker 
1342*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1343*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1344*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4^=vcmp.eq(Vu32.w,Vv32.w)
1345*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_eqxacc_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1346*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1347*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1348*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1349*bed243d3SAndroid Build Coastguard Worker 
1350*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1352*bed243d3SAndroid Build Coastguard Worker 
1353*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1354*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1355*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vcmp.gt(Vu32.b,Vv32.b)
1356*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1357*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1358*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1359*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1360*bed243d3SAndroid Build Coastguard Worker 
1361*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1363*bed243d3SAndroid Build Coastguard Worker 
1364*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1365*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1366*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4&=vcmp.gt(Vu32.b,Vv32.b)
1367*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1368*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1369*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1370*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1371*bed243d3SAndroid Build Coastguard Worker 
1372*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1374*bed243d3SAndroid Build Coastguard Worker 
1375*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1376*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1377*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4|=vcmp.gt(Vu32.b,Vv32.b)
1378*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1379*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1380*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1381*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1382*bed243d3SAndroid Build Coastguard Worker 
1383*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1385*bed243d3SAndroid Build Coastguard Worker 
1386*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1387*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1388*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4^=vcmp.gt(Vu32.b,Vv32.b)
1389*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVbVb(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1390*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1391*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1392*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1393*bed243d3SAndroid Build Coastguard Worker 
1394*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1396*bed243d3SAndroid Build Coastguard Worker 
1397*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1398*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1399*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vcmp.gt(Vu32.h,Vv32.h)
1400*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1401*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1402*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1403*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1404*bed243d3SAndroid Build Coastguard Worker 
1405*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1407*bed243d3SAndroid Build Coastguard Worker 
1408*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1409*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1410*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4&=vcmp.gt(Vu32.h,Vv32.h)
1411*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1412*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1413*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1414*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1415*bed243d3SAndroid Build Coastguard Worker 
1416*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1418*bed243d3SAndroid Build Coastguard Worker 
1419*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1420*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1421*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4|=vcmp.gt(Vu32.h,Vv32.h)
1422*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1423*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1424*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1425*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1426*bed243d3SAndroid Build Coastguard Worker 
1427*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1429*bed243d3SAndroid Build Coastguard Worker 
1430*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1431*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1432*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4^=vcmp.gt(Vu32.h,Vv32.h)
1433*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVhVh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1434*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1435*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1436*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1437*bed243d3SAndroid Build Coastguard Worker 
1438*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1440*bed243d3SAndroid Build Coastguard Worker 
1441*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1442*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1443*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vcmp.gt(Vu32.ub,Vv32.ub)
1444*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1445*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1446*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1447*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1448*bed243d3SAndroid Build Coastguard Worker 
1449*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1451*bed243d3SAndroid Build Coastguard Worker 
1452*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1453*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1454*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4&=vcmp.gt(Vu32.ub,Vv32.ub)
1455*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1456*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1457*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1458*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1459*bed243d3SAndroid Build Coastguard Worker 
1460*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1462*bed243d3SAndroid Build Coastguard Worker 
1463*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1464*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1465*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4|=vcmp.gt(Vu32.ub,Vv32.ub)
1466*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1467*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1468*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1469*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1470*bed243d3SAndroid Build Coastguard Worker 
1471*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1473*bed243d3SAndroid Build Coastguard Worker 
1474*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1475*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1476*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4^=vcmp.gt(Vu32.ub,Vv32.ub)
1477*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVubVub(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1478*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1479*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1480*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1481*bed243d3SAndroid Build Coastguard Worker 
1482*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1484*bed243d3SAndroid Build Coastguard Worker 
1485*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1486*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1487*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vcmp.gt(Vu32.uh,Vv32.uh)
1488*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1489*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1490*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1491*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1492*bed243d3SAndroid Build Coastguard Worker 
1493*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1495*bed243d3SAndroid Build Coastguard Worker 
1496*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1497*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1498*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4&=vcmp.gt(Vu32.uh,Vv32.uh)
1499*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1500*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1501*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1502*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1503*bed243d3SAndroid Build Coastguard Worker 
1504*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1506*bed243d3SAndroid Build Coastguard Worker 
1507*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1508*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1509*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4|=vcmp.gt(Vu32.uh,Vv32.uh)
1510*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1511*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1512*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1513*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1514*bed243d3SAndroid Build Coastguard Worker 
1515*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1517*bed243d3SAndroid Build Coastguard Worker 
1518*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1519*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1520*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4^=vcmp.gt(Vu32.uh,Vv32.uh)
1521*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVuhVuh(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1522*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1523*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1524*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1525*bed243d3SAndroid Build Coastguard Worker 
1526*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1528*bed243d3SAndroid Build Coastguard Worker 
1529*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1530*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1531*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vcmp.gt(Vu32.uw,Vv32.uw)
1532*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
1533*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1534*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1535*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1536*bed243d3SAndroid Build Coastguard Worker 
1537*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1539*bed243d3SAndroid Build Coastguard Worker 
1540*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1541*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1542*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4&=vcmp.gt(Vu32.uw,Vv32.uw)
1543*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1544*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1545*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1546*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1547*bed243d3SAndroid Build Coastguard Worker 
1548*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1550*bed243d3SAndroid Build Coastguard Worker 
1551*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1552*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1553*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4|=vcmp.gt(Vu32.uw,Vv32.uw)
1554*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1555*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1556*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1557*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1558*bed243d3SAndroid Build Coastguard Worker 
1559*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1561*bed243d3SAndroid Build Coastguard Worker 
1562*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1563*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1564*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4^=vcmp.gt(Vu32.uw,Vv32.uw)
1565*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVuwVuw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1566*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1567*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1568*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1569*bed243d3SAndroid Build Coastguard Worker 
1570*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1572*bed243d3SAndroid Build Coastguard Worker 
1573*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1574*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1575*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vcmp.gt(Vu32.w,Vv32.w)
1576*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1577*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1578*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1579*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1580*bed243d3SAndroid Build Coastguard Worker 
1581*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1583*bed243d3SAndroid Build Coastguard Worker 
1584*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1585*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1586*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4&=vcmp.gt(Vu32.w,Vv32.w)
1587*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1588*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1589*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1590*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1591*bed243d3SAndroid Build Coastguard Worker 
1592*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1594*bed243d3SAndroid Build Coastguard Worker 
1595*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1596*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1597*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4|=vcmp.gt(Vu32.w,Vv32.w)
1598*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1599*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1600*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1601*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1602*bed243d3SAndroid Build Coastguard Worker 
1603*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1605*bed243d3SAndroid Build Coastguard Worker 
1606*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1607*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1608*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4^=vcmp.gt(Vu32.w,Vv32.w)
1609*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVwVw(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
1610*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1611*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1612*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1613*bed243d3SAndroid Build Coastguard Worker 
1614*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1616*bed243d3SAndroid Build Coastguard Worker 
1617*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1618*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1619*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w=vinsert(Rt32)
1620*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vinsert_VwR(HVX_Vector Vx, Word32 Rt)
1621*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
1622*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1623*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1624*bed243d3SAndroid Build Coastguard Worker 
1625*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vinsert_VwR(Vx,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vinsertwr)(Vx,Rt)
1626*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1627*bed243d3SAndroid Build Coastguard Worker 
1628*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1629*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1630*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vlalign(Vu32,Vv32,Rt8)
1631*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vlalign_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1632*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
1633*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1634*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1635*bed243d3SAndroid Build Coastguard Worker 
1636*bed243d3SAndroid Build Coastguard Worker #define Q6_V_vlalign_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlalignb)(Vu,Vv,Rt)
1637*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1638*bed243d3SAndroid Build Coastguard Worker 
1639*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1640*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1641*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vlalign(Vu32,Vv32,#u3)
1642*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vlalign_VVI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
1643*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
1644*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1645*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1646*bed243d3SAndroid Build Coastguard Worker 
1647*bed243d3SAndroid Build Coastguard Worker #define Q6_V_vlalign_VVI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlalignbi)(Vu,Vv,Iu3)
1648*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1649*bed243d3SAndroid Build Coastguard Worker 
1650*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1651*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1652*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vlsr(Vu32.uh,Rt32)
1653*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vlsr_VuhR(HVX_Vector Vu, Word32 Rt)
1654*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
1655*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1656*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1657*bed243d3SAndroid Build Coastguard Worker 
1658*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vlsr_VuhR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrh)(Vu,Rt)
1659*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1660*bed243d3SAndroid Build Coastguard Worker 
1661*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1662*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1663*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vlsr(Vu32.h,Vv32.h)
1664*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vlsr_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1665*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
1666*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1667*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1668*bed243d3SAndroid Build Coastguard Worker 
1669*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vlsr_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrhv)(Vu,Vv)
1670*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1671*bed243d3SAndroid Build Coastguard Worker 
1672*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1673*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1674*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uw=vlsr(Vu32.uw,Rt32)
1675*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vlsr_VuwR(HVX_Vector Vu, Word32 Rt)
1676*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
1677*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1678*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1679*bed243d3SAndroid Build Coastguard Worker 
1680*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vlsr_VuwR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrw)(Vu,Rt)
1681*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1682*bed243d3SAndroid Build Coastguard Worker 
1683*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1684*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1685*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vlsr(Vu32.w,Vv32.w)
1686*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vlsr_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1687*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
1688*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1689*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1690*bed243d3SAndroid Build Coastguard Worker 
1691*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vlsr_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrwv)(Vu,Vv)
1692*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1693*bed243d3SAndroid Build Coastguard Worker 
1694*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1695*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1696*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8)
1697*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1698*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
1699*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1700*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1701*bed243d3SAndroid Build Coastguard Worker 
1702*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vlut32_VbVbR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb)(Vu,Vv,Rt)
1703*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1704*bed243d3SAndroid Build Coastguard Worker 
1705*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1706*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1707*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.b|=vlut32(Vu32.b,Vv32.b,Rt8)
1708*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32or_VbVbVbR(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1709*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
1710*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1711*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1712*bed243d3SAndroid Build Coastguard Worker 
1713*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vlut32or_VbVbVbR(Vx,Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_oracc)(Vx,Vu,Vv,Rt)
1714*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1715*bed243d3SAndroid Build Coastguard Worker 
1716*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1717*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1718*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8)
1719*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1720*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
1721*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1722*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1723*bed243d3SAndroid Build Coastguard Worker 
1724*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vlut16_VbVhR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh)(Vu,Vv,Rt)
1725*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1726*bed243d3SAndroid Build Coastguard Worker 
1727*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1728*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1729*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.h|=vlut16(Vu32.b,Vv32.h,Rt8)
1730*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16or_WhVbVhR(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
1731*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
1732*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1733*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1734*bed243d3SAndroid Build Coastguard Worker 
1735*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vlut16or_WhVbVhR(Vxx,Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_oracc)(Vxx,Vu,Vv,Rt)
1736*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1737*bed243d3SAndroid Build Coastguard Worker 
1738*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1739*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1740*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vmax(Vu32.h,Vv32.h)
1741*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vmax_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1742*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1743*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1744*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1745*bed243d3SAndroid Build Coastguard Worker 
1746*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vmax_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxh)(Vu,Vv)
1747*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1748*bed243d3SAndroid Build Coastguard Worker 
1749*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1750*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1751*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vmax(Vu32.ub,Vv32.ub)
1752*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vmax_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1753*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1754*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1755*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1756*bed243d3SAndroid Build Coastguard Worker 
1757*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vmax_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxub)(Vu,Vv)
1758*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1759*bed243d3SAndroid Build Coastguard Worker 
1760*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1761*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1762*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vmax(Vu32.uh,Vv32.uh)
1763*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmax_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1764*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1765*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1766*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1767*bed243d3SAndroid Build Coastguard Worker 
1768*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vmax_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxuh)(Vu,Vv)
1769*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1770*bed243d3SAndroid Build Coastguard Worker 
1771*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1772*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1773*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vmax(Vu32.w,Vv32.w)
1774*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmax_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1775*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1776*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1777*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1778*bed243d3SAndroid Build Coastguard Worker 
1779*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmax_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxw)(Vu,Vv)
1780*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1781*bed243d3SAndroid Build Coastguard Worker 
1782*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1783*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1784*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vmin(Vu32.h,Vv32.h)
1785*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vmin_VhVh(HVX_Vector Vu, HVX_Vector Vv)
1786*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1787*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1788*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1789*bed243d3SAndroid Build Coastguard Worker 
1790*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vmin_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminh)(Vu,Vv)
1791*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1792*bed243d3SAndroid Build Coastguard Worker 
1793*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1794*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1795*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vmin(Vu32.ub,Vv32.ub)
1796*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vmin_VubVub(HVX_Vector Vu, HVX_Vector Vv)
1797*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1798*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1799*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1800*bed243d3SAndroid Build Coastguard Worker 
1801*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vmin_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminub)(Vu,Vv)
1802*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1803*bed243d3SAndroid Build Coastguard Worker 
1804*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1805*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1806*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vmin(Vu32.uh,Vv32.uh)
1807*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmin_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
1808*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1809*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1810*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1811*bed243d3SAndroid Build Coastguard Worker 
1812*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vmin_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminuh)(Vu,Vv)
1813*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1814*bed243d3SAndroid Build Coastguard Worker 
1815*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1816*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1817*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vmin(Vu32.w,Vv32.w)
1818*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmin_VwVw(HVX_Vector Vu, HVX_Vector Vv)
1819*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
1820*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
1821*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1822*bed243d3SAndroid Build Coastguard Worker 
1823*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmin_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminw)(Vu,Vv)
1824*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1825*bed243d3SAndroid Build Coastguard Worker 
1826*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1827*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1828*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vmpa(Vuu32.ub,Rt32.b)
1829*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubRb(HVX_VectorPair Vuu, Word32 Rt)
1830*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1831*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1832*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1833*bed243d3SAndroid Build Coastguard Worker 
1834*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vmpa_WubRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabus)(Vuu,Rt)
1835*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1836*bed243d3SAndroid Build Coastguard Worker 
1837*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1838*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1839*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.h+=vmpa(Vuu32.ub,Rt32.b)
1840*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpaacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1841*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1842*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1843*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1844*bed243d3SAndroid Build Coastguard Worker 
1845*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vmpaacc_WhWubRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabus_acc)(Vxx,Vuu,Rt)
1846*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1847*bed243d3SAndroid Build Coastguard Worker 
1848*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1849*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1850*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vmpa(Vuu32.ub,Vvv32.b)
1851*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
1852*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1853*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1854*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1855*bed243d3SAndroid Build Coastguard Worker 
1856*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vmpa_WubWb(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabusv)(Vuu,Vvv)
1857*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1858*bed243d3SAndroid Build Coastguard Worker 
1859*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1860*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1861*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vmpa(Vuu32.ub,Vvv32.ub)
1862*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubWub(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
1863*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1864*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1865*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1866*bed243d3SAndroid Build Coastguard Worker 
1867*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vmpa_WubWub(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuuv)(Vuu,Vvv)
1868*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1869*bed243d3SAndroid Build Coastguard Worker 
1870*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1871*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1872*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vmpa(Vuu32.h,Rt32.b)
1873*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpa_WhRb(HVX_VectorPair Vuu, Word32 Rt)
1874*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1875*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1876*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1877*bed243d3SAndroid Build Coastguard Worker 
1878*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vmpa_WhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahb)(Vuu,Rt)
1879*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1880*bed243d3SAndroid Build Coastguard Worker 
1881*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1882*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1883*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=vmpa(Vuu32.h,Rt32.b)
1884*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpaacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
1885*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1886*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1887*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1888*bed243d3SAndroid Build Coastguard Worker 
1889*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vmpaacc_WwWhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahb_acc)(Vxx,Vuu,Rt)
1890*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1891*bed243d3SAndroid Build Coastguard Worker 
1892*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1893*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1894*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vmpy(Vu32.ub,Rt32.b)
1895*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VubRb(HVX_Vector Vu, Word32 Rt)
1896*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1897*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1898*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1899*bed243d3SAndroid Build Coastguard Worker 
1900*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vmpy_VubRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybus)(Vu,Rt)
1901*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1902*bed243d3SAndroid Build Coastguard Worker 
1903*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1904*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1905*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.h+=vmpy(Vu32.ub,Rt32.b)
1906*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVubRb(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
1907*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1908*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1909*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1910*bed243d3SAndroid Build Coastguard Worker 
1911*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vmpyacc_WhVubRb(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybus_acc)(Vxx,Vu,Rt)
1912*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1913*bed243d3SAndroid Build Coastguard Worker 
1914*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1915*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1916*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vmpy(Vu32.ub,Vv32.b)
1917*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VubVb(HVX_Vector Vu, HVX_Vector Vv)
1918*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1919*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1920*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1921*bed243d3SAndroid Build Coastguard Worker 
1922*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vmpy_VubVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybusv)(Vu,Vv)
1923*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1924*bed243d3SAndroid Build Coastguard Worker 
1925*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1926*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1927*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.h+=vmpy(Vu32.ub,Vv32.b)
1928*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVubVb(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
1929*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1930*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1931*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1932*bed243d3SAndroid Build Coastguard Worker 
1933*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vmpyacc_WhVubVb(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybusv_acc)(Vxx,Vu,Vv)
1934*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1935*bed243d3SAndroid Build Coastguard Worker 
1936*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1937*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1938*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vmpy(Vu32.b,Vv32.b)
1939*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpy_VbVb(HVX_Vector Vu, HVX_Vector Vv)
1940*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1941*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1942*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1943*bed243d3SAndroid Build Coastguard Worker 
1944*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vmpy_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybv)(Vu,Vv)
1945*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1946*bed243d3SAndroid Build Coastguard Worker 
1947*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1948*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1949*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.h+=vmpy(Vu32.b,Vv32.b)
1950*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpyacc_WhVbVb(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
1951*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1952*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1953*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1954*bed243d3SAndroid Build Coastguard Worker 
1955*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vmpyacc_WhVbVb(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpybv_acc)(Vxx,Vu,Vv)
1956*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1957*bed243d3SAndroid Build Coastguard Worker 
1958*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1959*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1960*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vmpye(Vu32.w,Vv32.uh)
1961*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpye_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
1962*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1963*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1964*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1965*bed243d3SAndroid Build Coastguard Worker 
1966*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpye_VwVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyewuh)(Vu,Vv)
1967*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1968*bed243d3SAndroid Build Coastguard Worker 
1969*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1970*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1971*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vmpy(Vu32.h,Rt32.h)
1972*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhRh(HVX_Vector Vu, Word32 Rt)
1973*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1974*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1975*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1976*bed243d3SAndroid Build Coastguard Worker 
1977*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vmpy_VhRh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyh)(Vu,Rt)
1978*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1979*bed243d3SAndroid Build Coastguard Worker 
1980*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1981*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1982*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=vmpy(Vu32.h,Rt32.h):sat
1983*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhRh_sat(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
1984*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
1985*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1986*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1987*bed243d3SAndroid Build Coastguard Worker 
1988*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vmpyacc_WwVhRh_sat(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhsat_acc)(Vxx,Vu,Rt)
1989*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
1990*bed243d3SAndroid Build Coastguard Worker 
1991*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
1992*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
1993*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:rnd:sat
1994*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhRh_s1_rnd_sat(HVX_Vector Vu, Word32 Rt)
1995*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
1996*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
1997*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
1998*bed243d3SAndroid Build Coastguard Worker 
1999*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vmpy_VhRh_s1_rnd_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhsrs)(Vu,Rt)
2000*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2001*bed243d3SAndroid Build Coastguard Worker 
2002*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2003*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2004*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:sat
2005*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhRh_s1_sat(HVX_Vector Vu, Word32 Rt)
2006*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2007*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2008*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2009*bed243d3SAndroid Build Coastguard Worker 
2010*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vmpy_VhRh_s1_sat(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhss)(Vu,Rt)
2011*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2012*bed243d3SAndroid Build Coastguard Worker 
2013*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2014*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2015*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vmpy(Vu32.h,Vv32.uh)
2016*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhVuh(HVX_Vector Vu, HVX_Vector Vv)
2017*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2018*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2019*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2020*bed243d3SAndroid Build Coastguard Worker 
2021*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vmpy_VhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhus)(Vu,Vv)
2022*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2023*bed243d3SAndroid Build Coastguard Worker 
2024*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2025*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2026*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=vmpy(Vu32.h,Vv32.uh)
2027*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2028*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2029*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2030*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2031*bed243d3SAndroid Build Coastguard Worker 
2032*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vmpyacc_WwVhVuh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhus_acc)(Vxx,Vu,Vv)
2033*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2034*bed243d3SAndroid Build Coastguard Worker 
2035*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2036*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2037*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vmpy(Vu32.h,Vv32.h)
2038*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpy_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2039*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2040*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2041*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2042*bed243d3SAndroid Build Coastguard Worker 
2043*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vmpy_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhv)(Vu,Vv)
2044*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2045*bed243d3SAndroid Build Coastguard Worker 
2046*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2047*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2048*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=vmpy(Vu32.h,Vv32.h)
2049*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2050*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2051*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2052*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2053*bed243d3SAndroid Build Coastguard Worker 
2054*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vmpyacc_WwVhVh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhv_acc)(Vxx,Vu,Vv)
2055*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2056*bed243d3SAndroid Build Coastguard Worker 
2057*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2058*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2059*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vmpy(Vu32.h,Vv32.h):<<1:rnd:sat
2060*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpy_VhVh_s1_rnd_sat(HVX_Vector Vu, HVX_Vector Vv)
2061*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2062*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2063*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2064*bed243d3SAndroid Build Coastguard Worker 
2065*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vmpy_VhVh_s1_rnd_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyhvsrs)(Vu,Vv)
2066*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2067*bed243d3SAndroid Build Coastguard Worker 
2068*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2069*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2070*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vmpyieo(Vu32.h,Vv32.h)
2071*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieo_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2072*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2073*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2074*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2075*bed243d3SAndroid Build Coastguard Worker 
2076*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyieo_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyieoh)(Vu,Vv)
2077*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2078*bed243d3SAndroid Build Coastguard Worker 
2079*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2080*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2081*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vmpyie(Vu32.w,Vv32.h)
2082*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieacc_VwVwVh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2083*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2084*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2085*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2086*bed243d3SAndroid Build Coastguard Worker 
2087*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyieacc_VwVwVh(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewh_acc)(Vx,Vu,Vv)
2088*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2089*bed243d3SAndroid Build Coastguard Worker 
2090*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2091*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2092*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vmpyie(Vu32.w,Vv32.uh)
2093*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyie_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
2094*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2095*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2096*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2097*bed243d3SAndroid Build Coastguard Worker 
2098*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyie_VwVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewuh)(Vu,Vv)
2099*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2100*bed243d3SAndroid Build Coastguard Worker 
2101*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2102*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2103*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vmpyie(Vu32.w,Vv32.uh)
2104*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyieacc_VwVwVuh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2105*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2106*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2107*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2108*bed243d3SAndroid Build Coastguard Worker 
2109*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyieacc_VwVwVuh(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiewuh_acc)(Vx,Vu,Vv)
2110*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2111*bed243d3SAndroid Build Coastguard Worker 
2112*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2113*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2114*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vmpyi(Vu32.h,Vv32.h)
2115*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyi_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2116*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2117*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2118*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2119*bed243d3SAndroid Build Coastguard Worker 
2120*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vmpyi_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyih)(Vu,Vv)
2121*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2122*bed243d3SAndroid Build Coastguard Worker 
2123*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2124*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2125*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.h+=vmpyi(Vu32.h,Vv32.h)
2126*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyiacc_VhVhVh(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2127*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2128*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2129*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2130*bed243d3SAndroid Build Coastguard Worker 
2131*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vmpyiacc_VhVhVh(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyih_acc)(Vx,Vu,Vv)
2132*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2133*bed243d3SAndroid Build Coastguard Worker 
2134*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2135*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2136*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vmpyi(Vu32.h,Rt32.b)
2137*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyi_VhRb(HVX_Vector Vu, Word32 Rt)
2138*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2139*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2140*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2141*bed243d3SAndroid Build Coastguard Worker 
2142*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vmpyi_VhRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyihb)(Vu,Rt)
2143*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2144*bed243d3SAndroid Build Coastguard Worker 
2145*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2146*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2147*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.h+=vmpyi(Vu32.h,Rt32.b)
2148*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpyiacc_VhVhRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2149*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2150*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2151*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2152*bed243d3SAndroid Build Coastguard Worker 
2153*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vmpyiacc_VhVhRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyihb_acc)(Vx,Vu,Rt)
2154*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2155*bed243d3SAndroid Build Coastguard Worker 
2156*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2157*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2158*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vmpyio(Vu32.w,Vv32.h)
2159*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyio_VwVh(HVX_Vector Vu, HVX_Vector Vv)
2160*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2161*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2162*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2163*bed243d3SAndroid Build Coastguard Worker 
2164*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyio_VwVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiowh)(Vu,Vv)
2165*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2166*bed243d3SAndroid Build Coastguard Worker 
2167*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2168*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2169*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vmpyi(Vu32.w,Rt32.b)
2170*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRb(HVX_Vector Vu, Word32 Rt)
2171*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2172*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2173*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2174*bed243d3SAndroid Build Coastguard Worker 
2175*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyi_VwRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwb)(Vu,Rt)
2176*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2177*bed243d3SAndroid Build Coastguard Worker 
2178*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2179*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2180*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vmpyi(Vu32.w,Rt32.b)
2181*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2182*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2183*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2184*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2185*bed243d3SAndroid Build Coastguard Worker 
2186*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyiacc_VwVwRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwb_acc)(Vx,Vu,Rt)
2187*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2188*bed243d3SAndroid Build Coastguard Worker 
2189*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2190*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2191*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vmpyi(Vu32.w,Rt32.h)
2192*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRh(HVX_Vector Vu, Word32 Rt)
2193*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2194*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2195*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2196*bed243d3SAndroid Build Coastguard Worker 
2197*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyi_VwRh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwh)(Vu,Rt)
2198*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2199*bed243d3SAndroid Build Coastguard Worker 
2200*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2201*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2202*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vmpyi(Vu32.w,Rt32.h)
2203*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRh(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2204*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2205*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2206*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2207*bed243d3SAndroid Build Coastguard Worker 
2208*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyiacc_VwVwRh(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwh_acc)(Vx,Vu,Rt)
2209*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2210*bed243d3SAndroid Build Coastguard Worker 
2211*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2212*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2213*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:sat
2214*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyo_VwVh_s1_sat(HVX_Vector Vu, HVX_Vector Vv)
2215*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2216*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2217*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2218*bed243d3SAndroid Build Coastguard Worker 
2219*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyo_VwVh_s1_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh)(Vu,Vv)
2220*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2221*bed243d3SAndroid Build Coastguard Worker 
2222*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2223*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2224*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat
2225*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyo_VwVh_s1_rnd_sat(HVX_Vector Vu, HVX_Vector Vv)
2226*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2227*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2228*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2229*bed243d3SAndroid Build Coastguard Worker 
2230*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyo_VwVh_s1_rnd_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_rnd)(Vu,Vv)
2231*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2232*bed243d3SAndroid Build Coastguard Worker 
2233*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2234*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2235*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat:shift
2236*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyoacc_VwVwVh_s1_rnd_sat_shift(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2237*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2238*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2239*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2240*bed243d3SAndroid Build Coastguard Worker 
2241*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2243*bed243d3SAndroid Build Coastguard Worker 
2244*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2245*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2246*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:sat:shift
2247*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyoacc_VwVwVh_s1_sat_shift(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2248*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2249*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2250*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2251*bed243d3SAndroid Build Coastguard Worker 
2252*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyoacc_VwVwVh_s1_sat_shift(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_sacc)(Vx,Vu,Vv)
2253*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2254*bed243d3SAndroid Build Coastguard Worker 
2255*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2256*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2257*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uh=vmpy(Vu32.ub,Rt32.ub)
2258*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpy_VubRub(HVX_Vector Vu, Word32 Rt)
2259*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2260*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2261*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2262*bed243d3SAndroid Build Coastguard Worker 
2263*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuh_vmpy_VubRub(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyub)(Vu,Rt)
2264*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2265*bed243d3SAndroid Build Coastguard Worker 
2266*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2267*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2268*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.uh+=vmpy(Vu32.ub,Rt32.ub)
2269*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpyacc_WuhVubRub(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
2270*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2271*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2272*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2273*bed243d3SAndroid Build Coastguard Worker 
2274*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuh_vmpyacc_WuhVubRub(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyub_acc)(Vxx,Vu,Rt)
2275*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2276*bed243d3SAndroid Build Coastguard Worker 
2277*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2278*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2279*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uh=vmpy(Vu32.ub,Vv32.ub)
2280*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpy_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2281*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2282*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2283*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2284*bed243d3SAndroid Build Coastguard Worker 
2285*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuh_vmpy_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyubv)(Vu,Vv)
2286*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2287*bed243d3SAndroid Build Coastguard Worker 
2288*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2289*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2290*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.uh+=vmpy(Vu32.ub,Vv32.ub)
2291*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vmpyacc_WuhVubVub(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2292*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2293*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2294*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2295*bed243d3SAndroid Build Coastguard Worker 
2296*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuh_vmpyacc_WuhVubVub(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyubv_acc)(Vxx,Vu,Vv)
2297*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2298*bed243d3SAndroid Build Coastguard Worker 
2299*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2300*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2301*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uw=vmpy(Vu32.uh,Rt32.uh)
2302*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpy_VuhRuh(HVX_Vector Vu, Word32 Rt)
2303*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2304*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2305*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2306*bed243d3SAndroid Build Coastguard Worker 
2307*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vmpy_VuhRuh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuh)(Vu,Rt)
2308*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2309*bed243d3SAndroid Build Coastguard Worker 
2310*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2311*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2312*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.uw+=vmpy(Vu32.uh,Rt32.uh)
2313*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpyacc_WuwVuhRuh(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
2314*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2315*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2316*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2317*bed243d3SAndroid Build Coastguard Worker 
2318*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vmpyacc_WuwVuhRuh(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuh_acc)(Vxx,Vu,Rt)
2319*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2320*bed243d3SAndroid Build Coastguard Worker 
2321*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2322*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2323*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uw=vmpy(Vu32.uh,Vv32.uh)
2324*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpy_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
2325*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2326*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2327*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2328*bed243d3SAndroid Build Coastguard Worker 
2329*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vmpy_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhv)(Vu,Vv)
2330*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2331*bed243d3SAndroid Build Coastguard Worker 
2332*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2333*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2334*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.uw+=vmpy(Vu32.uh,Vv32.uh)
2335*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vmpyacc_WuwVuhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
2336*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2337*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2338*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2339*bed243d3SAndroid Build Coastguard Worker 
2340*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vmpyacc_WuwVuhVuh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhv_acc)(Vxx,Vu,Vv)
2341*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2342*bed243d3SAndroid Build Coastguard Worker 
2343*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2344*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2345*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vmux(Qt4,Vu32,Vv32)
2346*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vmux_QVV(HVX_VectorPred Qt, HVX_Vector Vu, HVX_Vector Vv)
2347*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2348*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2349*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2350*bed243d3SAndroid Build Coastguard Worker 
2351*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2353*bed243d3SAndroid Build Coastguard Worker 
2354*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2355*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2356*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vnavg(Vu32.h,Vv32.h)
2357*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vnavg_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2358*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2359*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2360*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2361*bed243d3SAndroid Build Coastguard Worker 
2362*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vnavg_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgh)(Vu,Vv)
2363*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2364*bed243d3SAndroid Build Coastguard Worker 
2365*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2366*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2367*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vnavg(Vu32.ub,Vv32.ub)
2368*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vnavg_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2369*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2370*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2371*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2372*bed243d3SAndroid Build Coastguard Worker 
2373*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vnavg_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgub)(Vu,Vv)
2374*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2375*bed243d3SAndroid Build Coastguard Worker 
2376*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2377*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2378*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vnavg(Vu32.w,Vv32.w)
2379*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vnavg_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2380*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2381*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2382*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2383*bed243d3SAndroid Build Coastguard Worker 
2384*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vnavg_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgw)(Vu,Vv)
2385*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2386*bed243d3SAndroid Build Coastguard Worker 
2387*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2388*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2389*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vnormamt(Vu32.h)
2390*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vnormamt_Vh(HVX_Vector Vu)
2391*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
2392*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2393*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2394*bed243d3SAndroid Build Coastguard Worker 
2395*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vnormamt_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnormamth)(Vu)
2396*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2397*bed243d3SAndroid Build Coastguard Worker 
2398*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2399*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2400*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vnormamt(Vu32.w)
2401*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vnormamt_Vw(HVX_Vector Vu)
2402*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
2403*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2404*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2405*bed243d3SAndroid Build Coastguard Worker 
2406*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vnormamt_Vw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnormamtw)(Vu)
2407*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2408*bed243d3SAndroid Build Coastguard Worker 
2409*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2410*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2411*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vnot(Vu32)
2412*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vnot_V(HVX_Vector Vu)
2413*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2414*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2415*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2416*bed243d3SAndroid Build Coastguard Worker 
2417*bed243d3SAndroid Build Coastguard Worker #define Q6_V_vnot_V(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnot)(Vu)
2418*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2419*bed243d3SAndroid Build Coastguard Worker 
2420*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2421*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2422*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vor(Vu32,Vv32)
2423*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vor_VV(HVX_Vector Vu, HVX_Vector Vv)
2424*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2425*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2426*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2427*bed243d3SAndroid Build Coastguard Worker 
2428*bed243d3SAndroid Build Coastguard Worker #define Q6_V_vor_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vor)(Vu,Vv)
2429*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2430*bed243d3SAndroid Build Coastguard Worker 
2431*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2432*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2433*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vpacke(Vu32.h,Vv32.h)
2434*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vpacke_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2435*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
2436*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2437*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2438*bed243d3SAndroid Build Coastguard Worker 
2439*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vpacke_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackeb)(Vu,Vv)
2440*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2441*bed243d3SAndroid Build Coastguard Worker 
2442*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2443*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2444*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vpacke(Vu32.w,Vv32.w)
2445*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vpacke_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2446*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
2447*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2448*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2449*bed243d3SAndroid Build Coastguard Worker 
2450*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vpacke_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackeh)(Vu,Vv)
2451*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2452*bed243d3SAndroid Build Coastguard Worker 
2453*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2454*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2455*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vpack(Vu32.h,Vv32.h):sat
2456*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vpack_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2457*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
2458*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2459*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2460*bed243d3SAndroid Build Coastguard Worker 
2461*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vpack_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackhb_sat)(Vu,Vv)
2462*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2463*bed243d3SAndroid Build Coastguard Worker 
2464*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2465*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2466*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vpack(Vu32.h,Vv32.h):sat
2467*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vpack_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2468*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
2469*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2470*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2471*bed243d3SAndroid Build Coastguard Worker 
2472*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vpack_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackhub_sat)(Vu,Vv)
2473*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2474*bed243d3SAndroid Build Coastguard Worker 
2475*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2476*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2477*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vpacko(Vu32.h,Vv32.h)
2478*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vpacko_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2479*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
2480*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2481*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2482*bed243d3SAndroid Build Coastguard Worker 
2483*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vpacko_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackob)(Vu,Vv)
2484*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2485*bed243d3SAndroid Build Coastguard Worker 
2486*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2487*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2488*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vpacko(Vu32.w,Vv32.w)
2489*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vpacko_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2490*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
2491*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2492*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2493*bed243d3SAndroid Build Coastguard Worker 
2494*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vpacko_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackoh)(Vu,Vv)
2495*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2496*bed243d3SAndroid Build Coastguard Worker 
2497*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2498*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2499*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vpack(Vu32.w,Vv32.w):sat
2500*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vpack_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2501*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
2502*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2503*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2504*bed243d3SAndroid Build Coastguard Worker 
2505*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vpack_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackwh_sat)(Vu,Vv)
2506*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2507*bed243d3SAndroid Build Coastguard Worker 
2508*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2509*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2510*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vpack(Vu32.w,Vv32.w):sat
2511*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vpack_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2512*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
2513*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2514*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2515*bed243d3SAndroid Build Coastguard Worker 
2516*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vpack_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpackwuh_sat)(Vu,Vv)
2517*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2518*bed243d3SAndroid Build Coastguard Worker 
2519*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2520*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2521*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vpopcount(Vu32.h)
2522*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vpopcount_Vh(HVX_Vector Vu)
2523*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
2524*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2525*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2526*bed243d3SAndroid Build Coastguard Worker 
2527*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vpopcount_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vpopcounth)(Vu)
2528*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2529*bed243d3SAndroid Build Coastguard Worker 
2530*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2531*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2532*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vrdelta(Vu32,Vv32)
2533*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vrdelta_VV(HVX_Vector Vu, HVX_Vector Vv)
2534*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
2535*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2536*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2537*bed243d3SAndroid Build Coastguard Worker 
2538*bed243d3SAndroid Build Coastguard Worker #define Q6_V_vrdelta_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrdelta)(Vu,Vv)
2539*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2540*bed243d3SAndroid Build Coastguard Worker 
2541*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2542*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2543*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vrmpy(Vu32.ub,Rt32.b)
2544*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VubRb(HVX_Vector Vu, Word32 Rt)
2545*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2546*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2547*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2548*bed243d3SAndroid Build Coastguard Worker 
2549*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vrmpy_VubRb(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybus)(Vu,Rt)
2550*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2551*bed243d3SAndroid Build Coastguard Worker 
2552*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2553*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2554*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vrmpy(Vu32.ub,Rt32.b)
2555*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVubRb(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2556*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2557*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2558*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2559*bed243d3SAndroid Build Coastguard Worker 
2560*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vrmpyacc_VwVubRb(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybus_acc)(Vx,Vu,Rt)
2561*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2562*bed243d3SAndroid Build Coastguard Worker 
2563*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2564*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2565*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vrmpy(Vuu32.ub,Rt32.b,#u1)
2566*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vrmpy_WubRbI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2567*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2568*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2569*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2570*bed243d3SAndroid Build Coastguard Worker 
2571*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vrmpy_WubRbI(Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusi)(Vuu,Rt,Iu1)
2572*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2573*bed243d3SAndroid Build Coastguard Worker 
2574*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2575*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2576*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=vrmpy(Vuu32.ub,Rt32.b,#u1)
2577*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vrmpyacc_WwWubRbI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2578*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2579*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2580*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2581*bed243d3SAndroid Build Coastguard Worker 
2582*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vrmpyacc_WwWubRbI(Vxx,Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusi_acc)(Vxx,Vuu,Rt,Iu1)
2583*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2584*bed243d3SAndroid Build Coastguard Worker 
2585*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2586*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2587*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vrmpy(Vu32.ub,Vv32.b)
2588*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VubVb(HVX_Vector Vu, HVX_Vector Vv)
2589*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2590*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2591*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2592*bed243d3SAndroid Build Coastguard Worker 
2593*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vrmpy_VubVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusv)(Vu,Vv)
2594*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2595*bed243d3SAndroid Build Coastguard Worker 
2596*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2597*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2598*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vrmpy(Vu32.ub,Vv32.b)
2599*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVubVb(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2600*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2601*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2602*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2603*bed243d3SAndroid Build Coastguard Worker 
2604*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vrmpyacc_VwVubVb(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybusv_acc)(Vx,Vu,Vv)
2605*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2606*bed243d3SAndroid Build Coastguard Worker 
2607*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2608*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2609*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vrmpy(Vu32.b,Vv32.b)
2610*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpy_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2611*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2612*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2613*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2614*bed243d3SAndroid Build Coastguard Worker 
2615*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vrmpy_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybv)(Vu,Vv)
2616*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2617*bed243d3SAndroid Build Coastguard Worker 
2618*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2619*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2620*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vrmpy(Vu32.b,Vv32.b)
2621*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vrmpyacc_VwVbVb(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2622*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2623*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2624*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2625*bed243d3SAndroid Build Coastguard Worker 
2626*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vrmpyacc_VwVbVb(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpybv_acc)(Vx,Vu,Vv)
2627*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2628*bed243d3SAndroid Build Coastguard Worker 
2629*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2630*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2631*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uw=vrmpy(Vu32.ub,Rt32.ub)
2632*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpy_VubRub(HVX_Vector Vu, Word32 Rt)
2633*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2634*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2635*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2636*bed243d3SAndroid Build Coastguard Worker 
2637*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vrmpy_VubRub(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyub)(Vu,Rt)
2638*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2639*bed243d3SAndroid Build Coastguard Worker 
2640*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2641*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2642*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.uw+=vrmpy(Vu32.ub,Rt32.ub)
2643*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpyacc_VuwVubRub(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
2644*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2645*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2646*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2647*bed243d3SAndroid Build Coastguard Worker 
2648*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vrmpyacc_VuwVubRub(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyub_acc)(Vx,Vu,Rt)
2649*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2650*bed243d3SAndroid Build Coastguard Worker 
2651*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2652*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2653*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uw=vrmpy(Vuu32.ub,Rt32.ub,#u1)
2654*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrmpy_WubRubI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2655*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2656*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2657*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2658*bed243d3SAndroid Build Coastguard Worker 
2659*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vrmpy_WubRubI(Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubi)(Vuu,Rt,Iu1)
2660*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2661*bed243d3SAndroid Build Coastguard Worker 
2662*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2663*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2664*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.uw+=vrmpy(Vuu32.ub,Rt32.ub,#u1)
2665*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrmpyacc_WuwWubRubI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2666*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2667*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2668*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2669*bed243d3SAndroid Build Coastguard Worker 
2670*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vrmpyacc_WuwWubRubI(Vxx,Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubi_acc)(Vxx,Vuu,Rt,Iu1)
2671*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2672*bed243d3SAndroid Build Coastguard Worker 
2673*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2674*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2675*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uw=vrmpy(Vu32.ub,Vv32.ub)
2676*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpy_VubVub(HVX_Vector Vu, HVX_Vector Vv)
2677*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2678*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2679*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2680*bed243d3SAndroid Build Coastguard Worker 
2681*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vrmpy_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubv)(Vu,Vv)
2682*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2683*bed243d3SAndroid Build Coastguard Worker 
2684*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2685*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2686*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.uw+=vrmpy(Vu32.ub,Vv32.ub)
2687*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrmpyacc_VuwVubVub(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
2688*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
2689*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2690*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2691*bed243d3SAndroid Build Coastguard Worker 
2692*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vrmpyacc_VuwVubVub(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrmpyubv_acc)(Vx,Vu,Vv)
2693*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2694*bed243d3SAndroid Build Coastguard Worker 
2695*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2696*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2697*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vror(Vu32,Rt32)
2698*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vror_VR(HVX_Vector Vu, Word32 Rt)
2699*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
2700*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2701*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2702*bed243d3SAndroid Build Coastguard Worker 
2703*bed243d3SAndroid Build Coastguard Worker #define Q6_V_vror_VR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vror)(Vu,Rt)
2704*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2705*bed243d3SAndroid Build Coastguard Worker 
2706*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2707*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2708*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vround(Vu32.h,Vv32.h):sat
2709*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vround_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2710*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
2711*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2712*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2713*bed243d3SAndroid Build Coastguard Worker 
2714*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vround_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundhb)(Vu,Vv)
2715*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2716*bed243d3SAndroid Build Coastguard Worker 
2717*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2718*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2719*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vround(Vu32.h,Vv32.h):sat
2720*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vround_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
2721*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
2722*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2723*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2724*bed243d3SAndroid Build Coastguard Worker 
2725*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vround_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundhub)(Vu,Vv)
2726*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2727*bed243d3SAndroid Build Coastguard Worker 
2728*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2729*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2730*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vround(Vu32.w,Vv32.w):sat
2731*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vround_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2732*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
2733*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2734*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2735*bed243d3SAndroid Build Coastguard Worker 
2736*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vround_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundwh)(Vu,Vv)
2737*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2738*bed243d3SAndroid Build Coastguard Worker 
2739*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2740*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2741*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vround(Vu32.w,Vv32.w):sat
2742*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vround_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
2743*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
2744*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2745*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2746*bed243d3SAndroid Build Coastguard Worker 
2747*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vround_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vroundwuh)(Vu,Vv)
2748*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2749*bed243d3SAndroid Build Coastguard Worker 
2750*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2751*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2752*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uw=vrsad(Vuu32.ub,Rt32.ub,#u1)
2753*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrsad_WubRubI(HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2754*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2755*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2756*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2757*bed243d3SAndroid Build Coastguard Worker 
2758*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vrsad_WubRubI(Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrsadubi)(Vuu,Rt,Iu1)
2759*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2760*bed243d3SAndroid Build Coastguard Worker 
2761*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2762*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2763*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.uw+=vrsad(Vuu32.ub,Rt32.ub,#u1)
2764*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vrsadacc_WuwWubRubI(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt, Word32 Iu1)
2765*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
2766*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
2767*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2768*bed243d3SAndroid Build Coastguard Worker 
2769*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vrsadacc_WuwWubRubI(Vxx,Vuu,Rt,Iu1) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrsadubi_acc)(Vxx,Vuu,Rt,Iu1)
2770*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2771*bed243d3SAndroid Build Coastguard Worker 
2772*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2773*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2774*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vsat(Vu32.h,Vv32.h)
2775*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vsat_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2776*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2777*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2778*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2779*bed243d3SAndroid Build Coastguard Worker 
2780*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vsat_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsathub)(Vu,Vv)
2781*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2782*bed243d3SAndroid Build Coastguard Worker 
2783*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2784*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2785*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vsat(Vu32.w,Vv32.w)
2786*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vsat_VwVw(HVX_Vector Vu, HVX_Vector Vv)
2787*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2788*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2789*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2790*bed243d3SAndroid Build Coastguard Worker 
2791*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vsat_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatwh)(Vu,Vv)
2792*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2793*bed243d3SAndroid Build Coastguard Worker 
2794*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2795*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2796*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vsxt(Vu32.b)
2797*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsxt_Vb(HVX_Vector Vu)
2798*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
2799*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2800*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2801*bed243d3SAndroid Build Coastguard Worker 
2802*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vsxt_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsb)(Vu)
2803*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2804*bed243d3SAndroid Build Coastguard Worker 
2805*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2806*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2807*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vsxt(Vu32.h)
2808*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsxt_Vh(HVX_Vector Vu)
2809*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
2810*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2811*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2812*bed243d3SAndroid Build Coastguard Worker 
2813*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vsxt_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsh)(Vu)
2814*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2815*bed243d3SAndroid Build Coastguard Worker 
2816*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2817*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2818*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vshuffe(Vu32.h,Vv32.h)
2819*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuffe_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2820*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2821*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2822*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2823*bed243d3SAndroid Build Coastguard Worker 
2824*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vshuffe_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufeh)(Vu,Vv)
2825*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2826*bed243d3SAndroid Build Coastguard Worker 
2827*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2828*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2829*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vshuff(Vu32.b)
2830*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuff_Vb(HVX_Vector Vu)
2831*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
2832*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2833*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2834*bed243d3SAndroid Build Coastguard Worker 
2835*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vshuff_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffb)(Vu)
2836*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2837*bed243d3SAndroid Build Coastguard Worker 
2838*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2839*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2840*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vshuffe(Vu32.b,Vv32.b)
2841*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuffe_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2842*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2843*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2844*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2845*bed243d3SAndroid Build Coastguard Worker 
2846*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vshuffe_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffeb)(Vu,Vv)
2847*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2848*bed243d3SAndroid Build Coastguard Worker 
2849*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2850*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2851*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vshuff(Vu32.h)
2852*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuff_Vh(HVX_Vector Vu)
2853*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
2854*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2855*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2856*bed243d3SAndroid Build Coastguard Worker 
2857*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vshuff_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffh)(Vu)
2858*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2859*bed243d3SAndroid Build Coastguard Worker 
2860*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2861*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2862*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vshuffo(Vu32.b,Vv32.b)
2863*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vshuffo_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2864*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2865*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2866*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2867*bed243d3SAndroid Build Coastguard Worker 
2868*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vshuffo_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffob)(Vu,Vv)
2869*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2870*bed243d3SAndroid Build Coastguard Worker 
2871*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2872*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2873*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32=vshuff(Vu32,Vv32,Rt8)
2874*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_W_vshuff_VVR(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
2875*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
2876*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2877*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2878*bed243d3SAndroid Build Coastguard Worker 
2879*bed243d3SAndroid Build Coastguard Worker #define Q6_W_vshuff_VVR(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshuffvdd)(Vu,Vv,Rt)
2880*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2881*bed243d3SAndroid Build Coastguard Worker 
2882*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2883*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2884*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.b=vshuffoe(Vu32.b,Vv32.b)
2885*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vshuffoe_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2886*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
2887*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2888*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2889*bed243d3SAndroid Build Coastguard Worker 
2890*bed243d3SAndroid Build Coastguard Worker #define Q6_Wb_vshuffoe_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoeb)(Vu,Vv)
2891*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2892*bed243d3SAndroid Build Coastguard Worker 
2893*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2894*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2895*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vshuffoe(Vu32.h,Vv32.h)
2896*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vshuffoe_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2897*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
2898*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2899*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2900*bed243d3SAndroid Build Coastguard Worker 
2901*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vshuffoe_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoeh)(Vu,Vv)
2902*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2903*bed243d3SAndroid Build Coastguard Worker 
2904*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2905*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2906*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vshuffo(Vu32.h,Vv32.h)
2907*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vshuffo_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2908*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2909*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2910*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2911*bed243d3SAndroid Build Coastguard Worker 
2912*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vshuffo_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vshufoh)(Vu,Vv)
2913*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2914*bed243d3SAndroid Build Coastguard Worker 
2915*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2916*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2917*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vsub(Vu32.b,Vv32.b)
2918*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vsub_VbVb(HVX_Vector Vu, HVX_Vector Vv)
2919*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2920*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2921*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2922*bed243d3SAndroid Build Coastguard Worker 
2923*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vsub_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubb)(Vu,Vv)
2924*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2925*bed243d3SAndroid Build Coastguard Worker 
2926*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2927*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2928*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.b=vsub(Vuu32.b,Vvv32.b)
2929*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vsub_WbWb(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
2930*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
2931*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2932*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2933*bed243d3SAndroid Build Coastguard Worker 
2934*bed243d3SAndroid Build Coastguard Worker #define Q6_Wb_vsub_WbWb(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubb_dv)(Vuu,Vvv)
2935*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2936*bed243d3SAndroid Build Coastguard Worker 
2937*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2938*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2939*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (!Qv4) Vx32.b-=Vu32.b
2940*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_condnac_QnVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2941*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2942*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2943*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2944*bed243d3SAndroid Build Coastguard Worker 
2945*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2947*bed243d3SAndroid Build Coastguard Worker 
2948*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2949*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2950*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qv4) Vx32.b-=Vu32.b
2951*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_condnac_QVbVb(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2952*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2953*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2954*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2955*bed243d3SAndroid Build Coastguard Worker 
2956*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2958*bed243d3SAndroid Build Coastguard Worker 
2959*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2960*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2961*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vsub(Vu32.h,Vv32.h)
2962*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vsub_VhVh(HVX_Vector Vu, HVX_Vector Vv)
2963*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2964*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2965*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2966*bed243d3SAndroid Build Coastguard Worker 
2967*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vsub_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubh)(Vu,Vv)
2968*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2969*bed243d3SAndroid Build Coastguard Worker 
2970*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2971*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2972*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vsub(Vuu32.h,Vvv32.h)
2973*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_WhWh(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
2974*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
2975*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2976*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2977*bed243d3SAndroid Build Coastguard Worker 
2978*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vsub_WhWh(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubh_dv)(Vuu,Vvv)
2979*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2980*bed243d3SAndroid Build Coastguard Worker 
2981*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2982*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2983*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (!Qv4) Vx32.h-=Vu32.h
2984*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_condnac_QnVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2985*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2986*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2987*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2988*bed243d3SAndroid Build Coastguard Worker 
2989*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
2991*bed243d3SAndroid Build Coastguard Worker 
2992*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
2993*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
2994*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qv4) Vx32.h-=Vu32.h
2995*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_condnac_QVhVh(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
2996*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
2997*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
2998*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
2999*bed243d3SAndroid Build Coastguard Worker 
3000*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3002*bed243d3SAndroid Build Coastguard Worker 
3003*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3004*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3005*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vsub(Vu32.h,Vv32.h):sat
3006*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vsub_VhVh_sat(HVX_Vector Vu, HVX_Vector Vv)
3007*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3008*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3009*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3010*bed243d3SAndroid Build Coastguard Worker 
3011*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vsub_VhVh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhsat)(Vu,Vv)
3012*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3013*bed243d3SAndroid Build Coastguard Worker 
3014*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3015*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3016*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vsub(Vuu32.h,Vvv32.h):sat
3017*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_WhWh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3018*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3019*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3020*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3021*bed243d3SAndroid Build Coastguard Worker 
3022*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vsub_WhWh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhsat_dv)(Vuu,Vvv)
3023*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3024*bed243d3SAndroid Build Coastguard Worker 
3025*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3026*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3027*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vsub(Vu32.h,Vv32.h)
3028*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_VhVh(HVX_Vector Vu, HVX_Vector Vv)
3029*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3030*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3031*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3032*bed243d3SAndroid Build Coastguard Worker 
3033*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vsub_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubhw)(Vu,Vv)
3034*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3035*bed243d3SAndroid Build Coastguard Worker 
3036*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3037*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3038*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vsub(Vu32.ub,Vv32.ub)
3039*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vsub_VubVub(HVX_Vector Vu, HVX_Vector Vv)
3040*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3041*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3042*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3043*bed243d3SAndroid Build Coastguard Worker 
3044*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vsub_VubVub(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububh)(Vu,Vv)
3045*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3046*bed243d3SAndroid Build Coastguard Worker 
3047*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3048*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3049*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vsub(Vu32.ub,Vv32.ub):sat
3050*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vsub_VubVub_sat(HVX_Vector Vu, HVX_Vector Vv)
3051*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3052*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3053*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3054*bed243d3SAndroid Build Coastguard Worker 
3055*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vsub_VubVub_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububsat)(Vu,Vv)
3056*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3057*bed243d3SAndroid Build Coastguard Worker 
3058*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3059*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3060*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.ub=vsub(Vuu32.ub,Vvv32.ub):sat
3061*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wub_vsub_WubWub_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3062*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3063*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3064*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3065*bed243d3SAndroid Build Coastguard Worker 
3066*bed243d3SAndroid Build Coastguard Worker #define Q6_Wub_vsub_WubWub_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsububsat_dv)(Vuu,Vvv)
3067*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3068*bed243d3SAndroid Build Coastguard Worker 
3069*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3070*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3071*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vsub(Vu32.uh,Vv32.uh):sat
3072*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vsub_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
3073*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3074*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3075*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3076*bed243d3SAndroid Build Coastguard Worker 
3077*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vsub_VuhVuh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhsat)(Vu,Vv)
3078*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3079*bed243d3SAndroid Build Coastguard Worker 
3080*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3081*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3082*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uh=vsub(Vuu32.uh,Vvv32.uh):sat
3083*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vsub_WuhWuh_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3084*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3085*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3086*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3087*bed243d3SAndroid Build Coastguard Worker 
3088*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuh_vsub_WuhWuh_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhsat_dv)(Vuu,Vvv)
3089*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3090*bed243d3SAndroid Build Coastguard Worker 
3091*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3092*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3093*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vsub(Vu32.uh,Vv32.uh)
3094*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_VuhVuh(HVX_Vector Vu, HVX_Vector Vv)
3095*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3096*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3097*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3098*bed243d3SAndroid Build Coastguard Worker 
3099*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vsub_VuhVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuhw)(Vu,Vv)
3100*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3101*bed243d3SAndroid Build Coastguard Worker 
3102*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3103*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3104*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vsub(Vu32.w,Vv32.w)
3105*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVw(HVX_Vector Vu, HVX_Vector Vv)
3106*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3107*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3108*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3109*bed243d3SAndroid Build Coastguard Worker 
3110*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vsub_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubw)(Vu,Vv)
3111*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3112*bed243d3SAndroid Build Coastguard Worker 
3113*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3114*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3115*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vsub(Vuu32.w,Vvv32.w)
3116*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_WwWw(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3117*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3118*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3119*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3120*bed243d3SAndroid Build Coastguard Worker 
3121*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vsub_WwWw(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubw_dv)(Vuu,Vvv)
3122*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3123*bed243d3SAndroid Build Coastguard Worker 
3124*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3125*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3126*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (!Qv4) Vx32.w-=Vu32.w
3127*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_condnac_QnVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
3128*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3129*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3130*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3131*bed243d3SAndroid Build Coastguard Worker 
3132*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3134*bed243d3SAndroid Build Coastguard Worker 
3135*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3136*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3137*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qv4) Vx32.w-=Vu32.w
3138*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_condnac_QVwVw(HVX_VectorPred Qv, HVX_Vector Vx, HVX_Vector Vu)
3139*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3140*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3141*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3142*bed243d3SAndroid Build Coastguard Worker 
3143*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3145*bed243d3SAndroid Build Coastguard Worker 
3146*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3147*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3148*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vsub(Vu32.w,Vv32.w):sat
3149*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVw_sat(HVX_Vector Vu, HVX_Vector Vv)
3150*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3151*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3152*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3153*bed243d3SAndroid Build Coastguard Worker 
3154*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vsub_VwVw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwsat)(Vu,Vv)
3155*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3156*bed243d3SAndroid Build Coastguard Worker 
3157*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3158*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3159*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vsub(Vuu32.w,Vvv32.w):sat
3160*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vsub_WwWw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3161*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3162*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3163*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3164*bed243d3SAndroid Build Coastguard Worker 
3165*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vsub_WwWw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubwsat_dv)(Vuu,Vvv)
3166*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3167*bed243d3SAndroid Build Coastguard Worker 
3168*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3169*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3170*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32=vswap(Qt4,Vu32,Vv32)
3171*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_W_vswap_QVV(HVX_VectorPred Qt, HVX_Vector Vu, HVX_Vector Vv)
3172*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3173*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3174*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3175*bed243d3SAndroid Build Coastguard Worker 
3176*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3178*bed243d3SAndroid Build Coastguard Worker 
3179*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3180*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3181*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vtmpy(Vuu32.b,Rt32.b)
3182*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpy_WbRb(HVX_VectorPair Vuu, Word32 Rt)
3183*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3184*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3185*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3186*bed243d3SAndroid Build Coastguard Worker 
3187*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vtmpy_WbRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyb)(Vuu,Rt)
3188*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3189*bed243d3SAndroid Build Coastguard Worker 
3190*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3191*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3192*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.h+=vtmpy(Vuu32.b,Rt32.b)
3193*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpyacc_WhWbRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3194*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3195*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3196*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3197*bed243d3SAndroid Build Coastguard Worker 
3198*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vtmpyacc_WhWbRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyb_acc)(Vxx,Vuu,Rt)
3199*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3200*bed243d3SAndroid Build Coastguard Worker 
3201*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3202*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3203*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vtmpy(Vuu32.ub,Rt32.b)
3204*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpy_WubRb(HVX_VectorPair Vuu, Word32 Rt)
3205*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3206*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3207*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3208*bed243d3SAndroid Build Coastguard Worker 
3209*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vtmpy_WubRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpybus)(Vuu,Rt)
3210*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3211*bed243d3SAndroid Build Coastguard Worker 
3212*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3213*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3214*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.h+=vtmpy(Vuu32.ub,Rt32.b)
3215*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vtmpyacc_WhWubRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3216*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3217*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3218*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3219*bed243d3SAndroid Build Coastguard Worker 
3220*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vtmpyacc_WhWubRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpybus_acc)(Vxx,Vuu,Rt)
3221*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3222*bed243d3SAndroid Build Coastguard Worker 
3223*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3224*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3225*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vtmpy(Vuu32.h,Rt32.b)
3226*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vtmpy_WhRb(HVX_VectorPair Vuu, Word32 Rt)
3227*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3228*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3229*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3230*bed243d3SAndroid Build Coastguard Worker 
3231*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vtmpy_WhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyhb)(Vuu,Rt)
3232*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3233*bed243d3SAndroid Build Coastguard Worker 
3234*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3235*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3236*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=vtmpy(Vuu32.h,Rt32.b)
3237*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vtmpyacc_WwWhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3238*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3239*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3240*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3241*bed243d3SAndroid Build Coastguard Worker 
3242*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vtmpyacc_WwWhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vtmpyhb_acc)(Vxx,Vuu,Rt)
3243*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3244*bed243d3SAndroid Build Coastguard Worker 
3245*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3246*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3247*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vunpack(Vu32.b)
3248*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vunpack_Vb(HVX_Vector Vu)
3249*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
3250*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3251*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3252*bed243d3SAndroid Build Coastguard Worker 
3253*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vunpack_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackb)(Vu)
3254*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3255*bed243d3SAndroid Build Coastguard Worker 
3256*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3257*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3258*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vunpack(Vu32.h)
3259*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vunpack_Vh(HVX_Vector Vu)
3260*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
3261*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3262*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3263*bed243d3SAndroid Build Coastguard Worker 
3264*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vunpack_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackh)(Vu)
3265*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3266*bed243d3SAndroid Build Coastguard Worker 
3267*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3268*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3269*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.h|=vunpacko(Vu32.b)
3270*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vunpackoor_WhVb(HVX_VectorPair Vxx, HVX_Vector Vu)
3271*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
3272*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3273*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3274*bed243d3SAndroid Build Coastguard Worker 
3275*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vunpackoor_WhVb(Vxx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackob)(Vxx,Vu)
3276*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3277*bed243d3SAndroid Build Coastguard Worker 
3278*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3279*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3280*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w|=vunpacko(Vu32.h)
3281*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vunpackoor_WwVh(HVX_VectorPair Vxx, HVX_Vector Vu)
3282*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
3283*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3284*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3285*bed243d3SAndroid Build Coastguard Worker 
3286*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vunpackoor_WwVh(Vxx,Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackoh)(Vxx,Vu)
3287*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3288*bed243d3SAndroid Build Coastguard Worker 
3289*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3290*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3291*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uh=vunpack(Vu32.ub)
3292*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vunpack_Vub(HVX_Vector Vu)
3293*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
3294*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3295*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3296*bed243d3SAndroid Build Coastguard Worker 
3297*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuh_vunpack_Vub(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackub)(Vu)
3298*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3299*bed243d3SAndroid Build Coastguard Worker 
3300*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3301*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3302*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uw=vunpack(Vu32.uh)
3303*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vunpack_Vuh(HVX_Vector Vu)
3304*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
3305*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3306*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3307*bed243d3SAndroid Build Coastguard Worker 
3308*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vunpack_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vunpackuh)(Vu)
3309*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3310*bed243d3SAndroid Build Coastguard Worker 
3311*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3312*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3313*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vxor(Vu32,Vv32)
3314*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vxor_VV(HVX_Vector Vu, HVX_Vector Vv)
3315*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3316*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3317*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3318*bed243d3SAndroid Build Coastguard Worker 
3319*bed243d3SAndroid Build Coastguard Worker #define Q6_V_vxor_VV(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vxor)(Vu,Vv)
3320*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3321*bed243d3SAndroid Build Coastguard Worker 
3322*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3323*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3324*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uh=vzxt(Vu32.ub)
3325*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuh_vzxt_Vub(HVX_Vector Vu)
3326*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3327*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3328*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3329*bed243d3SAndroid Build Coastguard Worker 
3330*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuh_vzxt_Vub(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vzb)(Vu)
3331*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3332*bed243d3SAndroid Build Coastguard Worker 
3333*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 60
3334*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3335*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uw=vzxt(Vu32.uh)
3336*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vzxt_Vuh(HVX_Vector Vu)
3337*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3338*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3339*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3340*bed243d3SAndroid Build Coastguard Worker 
3341*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vzxt_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vzh)(Vu)
3342*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 60 */
3343*bed243d3SAndroid Build Coastguard Worker 
3344*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3345*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3346*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vsplat(Rt32)
3347*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vsplat_R(Word32 Rt)
3348*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
3349*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3350*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3351*bed243d3SAndroid Build Coastguard Worker 
3352*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vsplat_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplatb)(Rt)
3353*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3354*bed243d3SAndroid Build Coastguard Worker 
3355*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3356*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3357*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vsplat(Rt32)
3358*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vsplat_R(Word32 Rt)
3359*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
3360*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3361*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3362*bed243d3SAndroid Build Coastguard Worker 
3363*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vsplat_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_lvsplath)(Rt)
3364*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3365*bed243d3SAndroid Build Coastguard Worker 
3366*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3367*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3368*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vsetq2(Rt32)
3369*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vsetq2_R(Word32 Rt)
3370*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
3371*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3372*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3373*bed243d3SAndroid Build Coastguard Worker 
3374*bed243d3SAndroid Build Coastguard Worker #define Q6_Q_vsetq2_R(Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandqrt)((__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_pred_scalar2v2)(Rt)),-1)
3375*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3376*bed243d3SAndroid Build Coastguard Worker 
3377*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3378*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3379*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4.b=vshuffe(Qs4.h,Qt4.h)
3380*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Qb_vshuffe_QhQh(HVX_VectorPred Qs, HVX_VectorPred Qt)
3381*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3382*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3383*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3384*bed243d3SAndroid Build Coastguard Worker 
3385*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3387*bed243d3SAndroid Build Coastguard Worker 
3388*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3389*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3390*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4.h=vshuffe(Qs4.w,Qt4.w)
3391*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Qh_vshuffe_QwQw(HVX_VectorPred Qs, HVX_VectorPred Qt)
3392*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3393*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3394*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3395*bed243d3SAndroid Build Coastguard Worker 
3396*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3398*bed243d3SAndroid Build Coastguard Worker 
3399*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3400*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3401*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vadd(Vu32.b,Vv32.b):sat
3402*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vadd_VbVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3403*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3404*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3405*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3406*bed243d3SAndroid Build Coastguard Worker 
3407*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vadd_VbVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbsat)(Vu,Vv)
3408*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3409*bed243d3SAndroid Build Coastguard Worker 
3410*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3411*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3412*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.b=vadd(Vuu32.b,Vvv32.b):sat
3413*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vadd_WbWb_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3414*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3415*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3416*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3417*bed243d3SAndroid Build Coastguard Worker 
3418*bed243d3SAndroid Build Coastguard Worker #define Q6_Wb_vadd_WbWb_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddbsat_dv)(Vuu,Vvv)
3419*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3420*bed243d3SAndroid Build Coastguard Worker 
3421*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3422*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3423*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vadd(Vu32.w,Vv32.w,Qx4):carry
3424*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVwQ_carry(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred* Qx)
3425*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3426*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3427*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3428*bed243d3SAndroid Build Coastguard Worker 
3429*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vadd_VwVwQ_carry(Vu,Vv,Qx) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddcarry)(Vu,Vv,Qx)
3430*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3431*bed243d3SAndroid Build Coastguard Worker 
3432*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3433*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3434*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vadd(vclb(Vu32.h),Vv32.h)
3435*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vadd_vclb_VhVh(HVX_Vector Vu, HVX_Vector Vv)
3436*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3437*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3438*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3439*bed243d3SAndroid Build Coastguard Worker 
3440*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vadd_vclb_VhVh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddclbh)(Vu,Vv)
3441*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3442*bed243d3SAndroid Build Coastguard Worker 
3443*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3444*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3445*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vadd(vclb(Vu32.w),Vv32.w)
3446*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_vclb_VwVw(HVX_Vector Vu, HVX_Vector Vv)
3447*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3448*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3449*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3450*bed243d3SAndroid Build Coastguard Worker 
3451*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vadd_vclb_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddclbw)(Vu,Vv)
3452*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3453*bed243d3SAndroid Build Coastguard Worker 
3454*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3455*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3456*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=vadd(Vu32.h,Vv32.h)
3457*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vaddacc_WwVhVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3458*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3459*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3460*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3461*bed243d3SAndroid Build Coastguard Worker 
3462*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vaddacc_WwVhVh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddhw_acc)(Vxx,Vu,Vv)
3463*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3464*bed243d3SAndroid Build Coastguard Worker 
3465*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3466*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3467*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.h+=vadd(Vu32.ub,Vv32.ub)
3468*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vaddacc_WhVubVub(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3469*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3470*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3471*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3472*bed243d3SAndroid Build Coastguard Worker 
3473*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vaddacc_WhVubVub(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddubh_acc)(Vxx,Vu,Vv)
3474*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3475*bed243d3SAndroid Build Coastguard Worker 
3476*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3477*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3478*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vadd(Vu32.ub,Vv32.b):sat
3479*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vadd_VubVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3480*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3481*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3482*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3483*bed243d3SAndroid Build Coastguard Worker 
3484*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vadd_VubVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaddububb_sat)(Vu,Vv)
3485*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3486*bed243d3SAndroid Build Coastguard Worker 
3487*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3488*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3489*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=vadd(Vu32.uh,Vv32.uh)
3490*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vaddacc_WwVuhVuh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3491*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3492*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3493*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3494*bed243d3SAndroid Build Coastguard Worker 
3495*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vaddacc_WwVuhVuh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduhw_acc)(Vxx,Vu,Vv)
3496*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3497*bed243d3SAndroid Build Coastguard Worker 
3498*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3499*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3500*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uw=vadd(Vu32.uw,Vv32.uw):sat
3501*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vadd_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3502*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3503*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3504*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3505*bed243d3SAndroid Build Coastguard Worker 
3506*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vadd_VuwVuw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduwsat)(Vu,Vv)
3507*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3508*bed243d3SAndroid Build Coastguard Worker 
3509*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3510*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3511*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uw=vadd(Vuu32.uw,Vvv32.uw):sat
3512*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vadd_WuwWuw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3513*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3514*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3515*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3516*bed243d3SAndroid Build Coastguard Worker 
3517*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vadd_WuwWuw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadduwsat_dv)(Vuu,Vvv)
3518*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3519*bed243d3SAndroid Build Coastguard Worker 
3520*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3521*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3522*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vand(!Qu4,Rt32)
3523*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vand_QnR(HVX_VectorPred Qu, Word32 Rt)
3524*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
3525*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3526*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3527*bed243d3SAndroid Build Coastguard Worker 
3528*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3530*bed243d3SAndroid Build Coastguard Worker 
3531*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3532*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3533*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32|=vand(!Qu4,Rt32)
3534*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vandor_VQnR(HVX_Vector Vx, HVX_VectorPred Qu, Word32 Rt)
3535*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
3536*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3537*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3538*bed243d3SAndroid Build Coastguard Worker 
3539*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3541*bed243d3SAndroid Build Coastguard Worker 
3542*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3543*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3544*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vand(!Qv4,Vu32)
3545*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vand_QnV(HVX_VectorPred Qv, HVX_Vector Vu)
3546*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3547*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3548*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3549*bed243d3SAndroid Build Coastguard Worker 
3550*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3552*bed243d3SAndroid Build Coastguard Worker 
3553*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3554*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3555*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32=vand(Qv4,Vu32)
3556*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_V_vand_QV(HVX_VectorPred Qv, HVX_Vector Vu)
3557*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3558*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3559*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3560*bed243d3SAndroid Build Coastguard Worker 
3561*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3563*bed243d3SAndroid Build Coastguard Worker 
3564*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3565*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3566*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):sat
3567*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vasr_VhVhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3568*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3569*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3570*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3571*bed243d3SAndroid Build Coastguard Worker 
3572*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vasr_VhVhR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrhbsat)(Vu,Vv,Rt)
3573*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3574*bed243d3SAndroid Build Coastguard Worker 
3575*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3576*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3577*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):rnd:sat
3578*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VuwVuwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3579*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3580*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3581*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3582*bed243d3SAndroid Build Coastguard Worker 
3583*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vasr_VuwVuwR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruwuhrndsat)(Vu,Vv,Rt)
3584*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3585*bed243d3SAndroid Build Coastguard Worker 
3586*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3587*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3588*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
3589*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VwVwR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3590*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3591*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3592*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3593*bed243d3SAndroid Build Coastguard Worker 
3594*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vasr_VwVwR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrwuhrndsat)(Vu,Vv,Rt)
3595*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3596*bed243d3SAndroid Build Coastguard Worker 
3597*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3598*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3599*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vlsr(Vu32.ub,Rt32)
3600*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vlsr_VubR(HVX_Vector Vu, Word32 Rt)
3601*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3602*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3603*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3604*bed243d3SAndroid Build Coastguard Worker 
3605*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vlsr_VubR(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlsrb)(Vu,Rt)
3606*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3607*bed243d3SAndroid Build Coastguard Worker 
3608*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3609*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3610*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8):nomatch
3611*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbR_nomatch(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3612*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
3613*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3614*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3615*bed243d3SAndroid Build Coastguard Worker 
3616*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vlut32_VbVbR_nomatch(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_nm)(Vu,Vv,Rt)
3617*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3618*bed243d3SAndroid Build Coastguard Worker 
3619*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3620*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3621*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.b|=vlut32(Vu32.b,Vv32.b,#u3)
3622*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32or_VbVbVbI(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3623*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
3624*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3625*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3626*bed243d3SAndroid Build Coastguard Worker 
3627*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vlut32or_VbVbVbI(Vx,Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvb_oracci)(Vx,Vu,Vv,Iu3)
3628*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3629*bed243d3SAndroid Build Coastguard Worker 
3630*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3631*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3632*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vlut32(Vu32.b,Vv32.b,#u3)
3633*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vlut32_VbVbI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3634*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP
3635*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3636*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3637*bed243d3SAndroid Build Coastguard Worker 
3638*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vlut32_VbVbI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvvbi)(Vu,Vv,Iu3)
3639*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3640*bed243d3SAndroid Build Coastguard Worker 
3641*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3642*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3643*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8):nomatch
3644*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhR_nomatch(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3645*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
3646*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3647*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3648*bed243d3SAndroid Build Coastguard Worker 
3649*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vlut16_VbVhR_nomatch(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_nm)(Vu,Vv,Rt)
3650*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3651*bed243d3SAndroid Build Coastguard Worker 
3652*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3653*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3654*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.h|=vlut16(Vu32.b,Vv32.h,#u3)
3655*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16or_WhVbVhI(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3656*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
3657*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3658*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3659*bed243d3SAndroid Build Coastguard Worker 
3660*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vlut16or_WhVbVhI(Vxx,Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwh_oracci)(Vxx,Vu,Vv,Iu3)
3661*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3662*bed243d3SAndroid Build Coastguard Worker 
3663*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3664*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3665*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vlut16(Vu32.b,Vv32.h,#u3)
3666*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vlut16_VbVhI(HVX_Vector Vu, HVX_Vector Vv, Word32 Iu3)
3667*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
3668*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3669*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3670*bed243d3SAndroid Build Coastguard Worker 
3671*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vlut16_VbVhI(Vu,Vv,Iu3) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlutvwhi)(Vu,Vv,Iu3)
3672*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3673*bed243d3SAndroid Build Coastguard Worker 
3674*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3675*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3676*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vmax(Vu32.b,Vv32.b)
3677*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vmax_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3678*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3679*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3680*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3681*bed243d3SAndroid Build Coastguard Worker 
3682*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vmax_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmaxb)(Vu,Vv)
3683*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3684*bed243d3SAndroid Build Coastguard Worker 
3685*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3686*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3687*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vmin(Vu32.b,Vv32.b)
3688*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vmin_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3689*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3690*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3691*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3692*bed243d3SAndroid Build Coastguard Worker 
3693*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vmin_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vminb)(Vu,Vv)
3694*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3695*bed243d3SAndroid Build Coastguard Worker 
3696*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3697*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3698*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=vmpa(Vuu32.uh,Rt32.b)
3699*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpa_WuhRb(HVX_VectorPair Vuu, Word32 Rt)
3700*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3701*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3702*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3703*bed243d3SAndroid Build Coastguard Worker 
3704*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vmpa_WuhRb(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhb)(Vuu,Rt)
3705*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3706*bed243d3SAndroid Build Coastguard Worker 
3707*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3708*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3709*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=vmpa(Vuu32.uh,Rt32.b)
3710*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpaacc_WwWuhRb(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
3711*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3712*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3713*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3714*bed243d3SAndroid Build Coastguard Worker 
3715*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vmpaacc_WwWuhRb(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhb_acc)(Vxx,Vuu,Rt)
3716*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3717*bed243d3SAndroid Build Coastguard Worker 
3718*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3719*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3720*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32=vmpye(Vu32.w,Vv32.uh)
3721*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_W_vmpye_VwVuh(HVX_Vector Vu, HVX_Vector Vv)
3722*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3723*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3724*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3725*bed243d3SAndroid Build Coastguard Worker 
3726*bed243d3SAndroid Build Coastguard Worker #define Q6_W_vmpye_VwVuh(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyewuh_64)(Vu,Vv)
3727*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3728*bed243d3SAndroid Build Coastguard Worker 
3729*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3730*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3731*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vmpyi(Vu32.w,Rt32.ub)
3732*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyi_VwRub(HVX_Vector Vu, Word32 Rt)
3733*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
3734*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3735*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3736*bed243d3SAndroid Build Coastguard Worker 
3737*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyi_VwRub(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwub)(Vu,Rt)
3738*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3739*bed243d3SAndroid Build Coastguard Worker 
3740*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3741*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3742*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.w+=vmpyi(Vu32.w,Rt32.ub)
3743*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vmpyiacc_VwVwRub(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3744*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
3745*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3746*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3747*bed243d3SAndroid Build Coastguard Worker 
3748*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vmpyiacc_VwVwRub(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyiwub_acc)(Vx,Vu,Rt)
3749*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3750*bed243d3SAndroid Build Coastguard Worker 
3751*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3752*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3753*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32+=vmpyo(Vu32.w,Vv32.h)
3754*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_W_vmpyoacc_WVwVh(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
3755*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
3756*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
3757*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3758*bed243d3SAndroid Build Coastguard Worker 
3759*bed243d3SAndroid Build Coastguard Worker #define Q6_W_vmpyoacc_WVwVh(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyowh_64_acc)(Vxx,Vu,Vv)
3760*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3761*bed243d3SAndroid Build Coastguard Worker 
3762*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3763*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3764*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vround(Vu32.uh,Vv32.uh):sat
3765*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vround_VuhVuh_sat(HVX_Vector Vu, HVX_Vector Vv)
3766*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3767*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3768*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3769*bed243d3SAndroid Build Coastguard Worker 
3770*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vround_VuhVuh_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrounduhub)(Vu,Vv)
3771*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3772*bed243d3SAndroid Build Coastguard Worker 
3773*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3774*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3775*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vround(Vu32.uw,Vv32.uw):sat
3776*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vround_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3777*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3778*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3779*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3780*bed243d3SAndroid Build Coastguard Worker 
3781*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vround_VuwVuw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrounduwuh)(Vu,Vv)
3782*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3783*bed243d3SAndroid Build Coastguard Worker 
3784*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3785*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3786*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vsat(Vu32.uw,Vv32.uw)
3787*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vsat_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
3788*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3789*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3790*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3791*bed243d3SAndroid Build Coastguard Worker 
3792*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vsat_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatuwuh)(Vu,Vv)
3793*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3794*bed243d3SAndroid Build Coastguard Worker 
3795*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3796*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3797*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vsub(Vu32.b,Vv32.b):sat
3798*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vsub_VbVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3799*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3800*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3801*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3802*bed243d3SAndroid Build Coastguard Worker 
3803*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vsub_VbVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbsat)(Vu,Vv)
3804*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3805*bed243d3SAndroid Build Coastguard Worker 
3806*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3807*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3808*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.b=vsub(Vuu32.b,Vvv32.b):sat
3809*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wb_vsub_WbWb_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3810*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3811*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3812*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3813*bed243d3SAndroid Build Coastguard Worker 
3814*bed243d3SAndroid Build Coastguard Worker #define Q6_Wb_vsub_WbWb_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubbsat_dv)(Vuu,Vvv)
3815*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3816*bed243d3SAndroid Build Coastguard Worker 
3817*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3818*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3819*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vsub(Vu32.w,Vv32.w,Qx4):carry
3820*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vsub_VwVwQ_carry(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred* Qx)
3821*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3822*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3823*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3824*bed243d3SAndroid Build Coastguard Worker 
3825*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vsub_VwVwQ_carry(Vu,Vv,Qx) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubcarry)(Vu,Vv,Qx)
3826*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3827*bed243d3SAndroid Build Coastguard Worker 
3828*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3829*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3830*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vsub(Vu32.ub,Vv32.b):sat
3831*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vsub_VubVb_sat(HVX_Vector Vu, HVX_Vector Vv)
3832*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3833*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3834*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3835*bed243d3SAndroid Build Coastguard Worker 
3836*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vsub_VubVb_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubububb_sat)(Vu,Vv)
3837*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3838*bed243d3SAndroid Build Coastguard Worker 
3839*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3840*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3841*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uw=vsub(Vu32.uw,Vv32.uw):sat
3842*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vsub_VuwVuw_sat(HVX_Vector Vu, HVX_Vector Vv)
3843*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3844*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3845*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3846*bed243d3SAndroid Build Coastguard Worker 
3847*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vsub_VuwVuw_sat(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuwsat)(Vu,Vv)
3848*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3849*bed243d3SAndroid Build Coastguard Worker 
3850*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 62
3851*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3852*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.uw=vsub(Vuu32.uw,Vvv32.uw):sat
3853*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wuw_vsub_WuwWuw_sat(HVX_VectorPair Vuu, HVX_VectorPair Vvv)
3854*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA_DV
3855*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3856*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3857*bed243d3SAndroid Build Coastguard Worker 
3858*bed243d3SAndroid Build Coastguard Worker #define Q6_Wuw_vsub_WuwWuw_sat(Vuu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsubuwsat_dv)(Vuu,Vvv)
3859*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 62 */
3860*bed243d3SAndroid Build Coastguard Worker 
3861*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3862*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3863*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vabs(Vu32.b)
3864*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vabs_Vb(HVX_Vector Vu)
3865*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3866*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3867*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3868*bed243d3SAndroid Build Coastguard Worker 
3869*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vabs_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsb)(Vu)
3870*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
3871*bed243d3SAndroid Build Coastguard Worker 
3872*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3873*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3874*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vabs(Vu32.b):sat
3875*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vabs_Vb_sat(HVX_Vector Vu)
3876*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3877*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3878*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3879*bed243d3SAndroid Build Coastguard Worker 
3880*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vabs_Vb_sat(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabsb_sat)(Vu)
3881*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
3882*bed243d3SAndroid Build Coastguard Worker 
3883*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3884*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3885*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.h+=vasl(Vu32.h,Rt32)
3886*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vaslacc_VhVhR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3887*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3888*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3889*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3890*bed243d3SAndroid Build Coastguard Worker 
3891*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vaslacc_VhVhR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vaslh_acc)(Vx,Vu,Rt)
3892*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
3893*bed243d3SAndroid Build Coastguard Worker 
3894*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3895*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3896*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.h+=vasr(Vu32.h,Rt32)
3897*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vasracc_VhVhR(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
3898*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3899*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3900*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3901*bed243d3SAndroid Build Coastguard Worker 
3902*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vasracc_VhVhR(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrh_acc)(Vx,Vu,Rt)
3903*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
3904*bed243d3SAndroid Build Coastguard Worker 
3905*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3906*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3907*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):rnd:sat
3908*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VuhVuhR_rnd_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3909*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3910*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3911*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3912*bed243d3SAndroid Build Coastguard Worker 
3913*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vasr_VuhVuhR_rnd_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruhubrndsat)(Vu,Vv,Rt)
3914*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
3915*bed243d3SAndroid Build Coastguard Worker 
3916*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3917*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3918*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):sat
3919*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_VuhVuhR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3920*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3921*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3922*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3923*bed243d3SAndroid Build Coastguard Worker 
3924*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vasr_VuhVuhR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruhubsat)(Vu,Vv,Rt)
3925*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
3926*bed243d3SAndroid Build Coastguard Worker 
3927*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3928*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3929*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):sat
3930*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_VuwVuwR_sat(HVX_Vector Vu, HVX_Vector Vv, Word32 Rt)
3931*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
3932*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3933*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3934*bed243d3SAndroid Build Coastguard Worker 
3935*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vasr_VuwVuwR_sat(Vu,Vv,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasruwuhsat)(Vu,Vv,Rt)
3936*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
3937*bed243d3SAndroid Build Coastguard Worker 
3938*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3939*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3940*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vavg(Vu32.b,Vv32.b)
3941*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vavg_VbVb(HVX_Vector Vu, HVX_Vector Vv)
3942*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3943*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3944*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3945*bed243d3SAndroid Build Coastguard Worker 
3946*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vavg_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgb)(Vu,Vv)
3947*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
3948*bed243d3SAndroid Build Coastguard Worker 
3949*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3950*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3951*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vavg(Vu32.b,Vv32.b):rnd
3952*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vavg_VbVb_rnd(HVX_Vector Vu, HVX_Vector Vv)
3953*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3954*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3955*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3956*bed243d3SAndroid Build Coastguard Worker 
3957*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vavg_VbVb_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavgbrnd)(Vu,Vv)
3958*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
3959*bed243d3SAndroid Build Coastguard Worker 
3960*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3961*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3962*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uw=vavg(Vu32.uw,Vv32.uw)
3963*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vavg_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
3964*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3965*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3966*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3967*bed243d3SAndroid Build Coastguard Worker 
3968*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vavg_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguw)(Vu,Vv)
3969*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
3970*bed243d3SAndroid Build Coastguard Worker 
3971*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3972*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3973*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uw=vavg(Vu32.uw,Vv32.uw):rnd
3974*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vavg_VuwVuw_rnd(HVX_Vector Vu, HVX_Vector Vv)
3975*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
3976*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3977*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3978*bed243d3SAndroid Build Coastguard Worker 
3979*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vavg_VuwVuw_rnd(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vavguwrnd)(Vu,Vv)
3980*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
3981*bed243d3SAndroid Build Coastguard Worker 
3982*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3983*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3984*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32=#0
3985*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_W_vzero()
3986*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      MAPPING
3987*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
3988*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
3989*bed243d3SAndroid Build Coastguard Worker 
3990*bed243d3SAndroid Build Coastguard Worker #define Q6_W_vzero() __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdd0)()
3991*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
3992*bed243d3SAndroid Build Coastguard Worker 
3993*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
3994*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
3995*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       vtmp.h=vgather(Rt32,Mu2,Vv32.h).h
3996*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vgather_ARMVh(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
3997*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_GATHER
3998*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT01
3999*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4000*bed243d3SAndroid Build Coastguard Worker 
4001*bed243d3SAndroid Build Coastguard Worker #define Q6_vgather_ARMVh(Rs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermh)(Rs,Rt,Mu,Vv)
4002*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4003*bed243d3SAndroid Build Coastguard Worker 
4004*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4005*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4006*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vv32.h).h
4007*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vgather_AQRMVh(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4008*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_GATHER
4009*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT01
4010*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4011*bed243d3SAndroid Build Coastguard Worker 
4012*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4014*bed243d3SAndroid Build Coastguard Worker 
4015*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4016*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4017*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h
4018*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vgather_ARMWw(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv)
4019*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_GATHER_DV
4020*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT01
4021*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4022*bed243d3SAndroid Build Coastguard Worker 
4023*bed243d3SAndroid Build Coastguard Worker #define Q6_vgather_ARMWw(Rs,Rt,Mu,Vvv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermhw)(Rs,Rt,Mu,Vvv)
4024*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4025*bed243d3SAndroid Build Coastguard Worker 
4026*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4027*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4028*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h
4029*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vgather_AQRMWw(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv)
4030*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_GATHER_DV
4031*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT01
4032*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4033*bed243d3SAndroid Build Coastguard Worker 
4034*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4036*bed243d3SAndroid Build Coastguard Worker 
4037*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4038*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4039*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       vtmp.w=vgather(Rt32,Mu2,Vv32.w).w
4040*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vgather_ARMVw(HVX_Vector* Rs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4041*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_GATHER
4042*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT01
4043*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4044*bed243d3SAndroid Build Coastguard Worker 
4045*bed243d3SAndroid Build Coastguard Worker #define Q6_vgather_ARMVw(Rs,Rt,Mu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vgathermw)(Rs,Rt,Mu,Vv)
4046*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4047*bed243d3SAndroid Build Coastguard Worker 
4048*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4049*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4050*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qs4) vtmp.w=vgather(Rt32,Mu2,Vv32.w).w
4051*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vgather_AQRMVw(HVX_Vector* Rs, HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv)
4052*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_GATHER
4053*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT01
4054*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4055*bed243d3SAndroid Build Coastguard Worker 
4056*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4058*bed243d3SAndroid Build Coastguard Worker 
4059*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4060*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4061*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vlut4(Vu32.uh,Rtt32.h)
4062*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vlut4_VuhPh(HVX_Vector Vu, Word64 Rtt)
4063*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4064*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT2
4065*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4066*bed243d3SAndroid Build Coastguard Worker 
4067*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vlut4_VuhPh(Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vlut4)(Vu,Rtt)
4068*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4069*bed243d3SAndroid Build Coastguard Worker 
4070*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4071*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4072*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.h=vmpa(Vuu32.ub,Rt32.ub)
4073*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpa_WubRub(HVX_VectorPair Vuu, Word32 Rt)
4074*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4075*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4076*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4077*bed243d3SAndroid Build Coastguard Worker 
4078*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vmpa_WubRub(Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuu)(Vuu,Rt)
4079*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4080*bed243d3SAndroid Build Coastguard Worker 
4081*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4082*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4083*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.h+=vmpa(Vuu32.ub,Rt32.ub)
4084*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wh_vmpaacc_WhWubRub(HVX_VectorPair Vxx, HVX_VectorPair Vuu, Word32 Rt)
4085*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4086*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4087*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4088*bed243d3SAndroid Build Coastguard Worker 
4089*bed243d3SAndroid Build Coastguard Worker #define Q6_Wh_vmpaacc_WhWubRub(Vxx,Vuu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpabuu_acc)(Vxx,Vuu,Rt)
4090*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4091*bed243d3SAndroid Build Coastguard Worker 
4092*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4093*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4094*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.h=vmpa(Vx32.h,Vu32.h,Rtt32.h):sat
4095*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpa_VhVhVhPh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4096*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4097*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT2
4098*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4099*bed243d3SAndroid Build Coastguard Worker 
4100*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vmpa_VhVhVhPh_sat(Vx,Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpahhsat)(Vx,Vu,Rtt)
4101*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4102*bed243d3SAndroid Build Coastguard Worker 
4103*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4104*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4105*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.h=vmpa(Vx32.h,Vu32.uh,Rtt32.uh):sat
4106*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vmpa_VhVhVuhPuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4107*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4108*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT2
4109*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4110*bed243d3SAndroid Build Coastguard Worker 
4111*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vmpa_VhVhVuhPuh_sat(Vx,Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpauhuhsat)(Vx,Vu,Rtt)
4112*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4113*bed243d3SAndroid Build Coastguard Worker 
4114*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4115*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4116*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.h=vmps(Vx32.h,Vu32.uh,Rtt32.uh):sat
4117*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vmps_VhVhVuhPuh_sat(HVX_Vector Vx, HVX_Vector Vu, Word64 Rtt)
4118*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4119*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT2
4120*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4121*bed243d3SAndroid Build Coastguard Worker 
4122*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vmps_VhVhVuhPuh_sat(Vx,Vu,Rtt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpsuhuhsat)(Vx,Vu,Rtt)
4123*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4124*bed243d3SAndroid Build Coastguard Worker 
4125*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4126*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4127*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=vmpy(Vu32.h,Rt32.h)
4128*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vmpyacc_WwVhRh(HVX_VectorPair Vxx, HVX_Vector Vu, Word32 Rt)
4129*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4130*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4131*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4132*bed243d3SAndroid Build Coastguard Worker 
4133*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vmpyacc_WwVhRh(Vxx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyh_acc)(Vxx,Vu,Rt)
4134*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4135*bed243d3SAndroid Build Coastguard Worker 
4136*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4137*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4138*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uw=vmpye(Vu32.uh,Rt32.uh)
4139*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vmpye_VuhRuh(HVX_Vector Vu, Word32 Rt)
4140*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4141*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4142*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4143*bed243d3SAndroid Build Coastguard Worker 
4144*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vmpye_VuhRuh(Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhe)(Vu,Rt)
4145*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4146*bed243d3SAndroid Build Coastguard Worker 
4147*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4148*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4149*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.uw+=vmpye(Vu32.uh,Rt32.uh)
4150*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vmpyeacc_VuwVuhRuh(HVX_Vector Vx, HVX_Vector Vu, Word32 Rt)
4151*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4152*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4153*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4154*bed243d3SAndroid Build Coastguard Worker 
4155*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vmpyeacc_VuwVuhRuh(Vx,Vu,Rt) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhe_acc)(Vx,Vu,Rt)
4156*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4157*bed243d3SAndroid Build Coastguard Worker 
4158*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4159*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4160*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vnavg(Vu32.b,Vv32.b)
4161*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vnavg_VbVb(HVX_Vector Vu, HVX_Vector Vv)
4162*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4163*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4164*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4165*bed243d3SAndroid Build Coastguard Worker 
4166*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vnavg_VbVb(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vnavgb)(Vu,Vv)
4167*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4168*bed243d3SAndroid Build Coastguard Worker 
4169*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4170*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4171*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=prefixsum(Qv4)
4172*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_prefixsum_Q(HVX_VectorPred Qv)
4173*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4174*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4175*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4176*bed243d3SAndroid Build Coastguard Worker 
4177*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_prefixsum_Q(Qv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqb)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1))
4178*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4179*bed243d3SAndroid Build Coastguard Worker 
4180*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4181*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4182*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=prefixsum(Qv4)
4183*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_prefixsum_Q(HVX_VectorPred Qv)
4184*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4185*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4186*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4187*bed243d3SAndroid Build Coastguard Worker 
4188*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_prefixsum_Q(Qv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqh)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1))
4189*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4190*bed243d3SAndroid Build Coastguard Worker 
4191*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4192*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4193*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=prefixsum(Qv4)
4194*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_prefixsum_Q(HVX_VectorPred Qv)
4195*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4196*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4197*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4198*bed243d3SAndroid Build Coastguard Worker 
4199*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_prefixsum_Q(Qv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vprefixqw)(__BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vandvrt)((Qv),-1))
4200*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4201*bed243d3SAndroid Build Coastguard Worker 
4202*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4203*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4204*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       vscatter(Rt32,Mu2,Vv32.h).h=Vw32
4205*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vscatter_RMVhV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4206*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_SCATTER
4207*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
4208*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4209*bed243d3SAndroid Build Coastguard Worker 
4210*bed243d3SAndroid Build Coastguard Worker #define Q6_vscatter_RMVhV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermh)(Rt,Mu,Vv,Vw)
4211*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4212*bed243d3SAndroid Build Coastguard Worker 
4213*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4214*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4215*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       vscatter(Rt32,Mu2,Vv32.h).h+=Vw32
4216*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vscatteracc_RMVhV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4217*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_SCATTER
4218*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
4219*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4220*bed243d3SAndroid Build Coastguard Worker 
4221*bed243d3SAndroid Build Coastguard Worker #define Q6_vscatteracc_RMVhV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermh_add)(Rt,Mu,Vv,Vw)
4222*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4223*bed243d3SAndroid Build Coastguard Worker 
4224*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4225*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4226*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qs4) vscatter(Rt32,Mu2,Vv32.h).h=Vw32
4227*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vscatter_QRMVhV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4228*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_SCATTER
4229*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
4230*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4231*bed243d3SAndroid Build Coastguard Worker 
4232*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4234*bed243d3SAndroid Build Coastguard Worker 
4235*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4236*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4237*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       vscatter(Rt32,Mu2,Vvv32.w).h=Vw32
4238*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vscatter_RMWwV(Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4239*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_SCATTER_DV
4240*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
4241*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4242*bed243d3SAndroid Build Coastguard Worker 
4243*bed243d3SAndroid Build Coastguard Worker #define Q6_vscatter_RMWwV(Rt,Mu,Vvv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhw)(Rt,Mu,Vvv,Vw)
4244*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4245*bed243d3SAndroid Build Coastguard Worker 
4246*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4247*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4248*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       vscatter(Rt32,Mu2,Vvv32.w).h+=Vw32
4249*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vscatteracc_RMWwV(Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4250*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_SCATTER_DV
4251*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
4252*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4253*bed243d3SAndroid Build Coastguard Worker 
4254*bed243d3SAndroid Build Coastguard Worker #define Q6_vscatteracc_RMWwV(Rt,Mu,Vvv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermhw_add)(Rt,Mu,Vvv,Vw)
4255*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4256*bed243d3SAndroid Build Coastguard Worker 
4257*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4258*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4259*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qs4) vscatter(Rt32,Mu2,Vvv32.w).h=Vw32
4260*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vscatter_QRMWwV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_VectorPair Vvv, HVX_Vector Vw)
4261*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_SCATTER_DV
4262*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
4263*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4264*bed243d3SAndroid Build Coastguard Worker 
4265*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4267*bed243d3SAndroid Build Coastguard Worker 
4268*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4269*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4270*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       vscatter(Rt32,Mu2,Vv32.w).w=Vw32
4271*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vscatter_RMVwV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4272*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_SCATTER
4273*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
4274*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4275*bed243d3SAndroid Build Coastguard Worker 
4276*bed243d3SAndroid Build Coastguard Worker #define Q6_vscatter_RMVwV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermw)(Rt,Mu,Vv,Vw)
4277*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4278*bed243d3SAndroid Build Coastguard Worker 
4279*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4280*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4281*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       vscatter(Rt32,Mu2,Vv32.w).w+=Vw32
4282*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vscatteracc_RMVwV(Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4283*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_SCATTER
4284*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
4285*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4286*bed243d3SAndroid Build Coastguard Worker 
4287*bed243d3SAndroid Build Coastguard Worker #define Q6_vscatteracc_RMVwV(Rt,Mu,Vv,Vw) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vscattermw_add)(Rt,Mu,Vv,Vw)
4288*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4289*bed243d3SAndroid Build Coastguard Worker 
4290*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 65
4291*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4292*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       if (Qs4) vscatter(Rt32,Mu2,Vv32.w).w=Vw32
4293*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: void Q6_vscatter_QRMVwV(HVX_VectorPred Qs, Word32 Rt, Word32 Mu, HVX_Vector Vv, HVX_Vector Vw)
4294*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_SCATTER
4295*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0
4296*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4297*bed243d3SAndroid Build Coastguard Worker 
4298*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 65 */
4300*bed243d3SAndroid Build Coastguard Worker 
4301*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 66
4302*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4303*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vadd(Vu32.w,Vv32.w,Qs4):carry:sat
4304*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vadd_VwVwQ_carry_sat(HVX_Vector Vu, HVX_Vector Vv, HVX_VectorPred Qs)
4305*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4306*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4307*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4308*bed243d3SAndroid Build Coastguard Worker 
4309*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 66 */
4311*bed243d3SAndroid Build Coastguard Worker 
4312*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 66
4313*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4314*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w=vasrinto(Vu32.w,Vv32.w)
4315*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_vasrinto_WwVwVw(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
4316*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VP_VS
4317*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4318*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4319*bed243d3SAndroid Build Coastguard Worker 
4320*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_vasrinto_WwVwVw(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasr_into)(Vxx,Vu,Vv)
4321*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 66 */
4322*bed243d3SAndroid Build Coastguard Worker 
4323*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 66
4324*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4325*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uw=vrotr(Vu32.uw,Vv32.uw)
4326*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuw_vrotr_VuwVuw(HVX_Vector Vu, HVX_Vector Vv)
4327*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4328*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4329*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4330*bed243d3SAndroid Build Coastguard Worker 
4331*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuw_vrotr_VuwVuw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vrotr)(Vu,Vv)
4332*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 66 */
4333*bed243d3SAndroid Build Coastguard Worker 
4334*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 66
4335*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4336*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vsatdw(Vu32.w,Vv32.w)
4337*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vsatdw_VwVw(HVX_Vector Vu, HVX_Vector Vv)
4338*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4339*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4340*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4341*bed243d3SAndroid Build Coastguard Worker 
4342*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vsatdw_VwVw(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsatdw)(Vu,Vv)
4343*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 66 */
4344*bed243d3SAndroid Build Coastguard Worker 
4345*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4346*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4347*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=v6mpy(Vuu32.ub,Vvv32.b,#u2):h
4348*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpy_WubWbI_h(HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4349*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4350*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4351*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4352*bed243d3SAndroid Build Coastguard Worker 
4353*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_v6mpy_WubWbI_h(Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyhubs10)(Vuu,Vvv,Iu2)
4354*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4355*bed243d3SAndroid Build Coastguard Worker 
4356*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4357*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4358*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=v6mpy(Vuu32.ub,Vvv32.b,#u2):h
4359*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpyacc_WwWubWbI_h(HVX_VectorPair Vxx, HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4360*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4361*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4362*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4363*bed243d3SAndroid Build Coastguard Worker 
4364*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_v6mpyacc_WwWubWbI_h(Vxx,Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyhubs10_vxx)(Vxx,Vuu,Vvv,Iu2)
4365*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4366*bed243d3SAndroid Build Coastguard Worker 
4367*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4368*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4369*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.w=v6mpy(Vuu32.ub,Vvv32.b,#u2):v
4370*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpy_WubWbI_v(HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4371*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4372*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4373*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4374*bed243d3SAndroid Build Coastguard Worker 
4375*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_v6mpy_WubWbI_v(Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyvubs10)(Vuu,Vvv,Iu2)
4376*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4377*bed243d3SAndroid Build Coastguard Worker 
4378*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4379*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4380*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.w+=v6mpy(Vuu32.ub,Vvv32.b,#u2):v
4381*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Ww_v6mpyacc_WwWubWbI_v(HVX_VectorPair Vxx, HVX_VectorPair Vuu, HVX_VectorPair Vvv, Word32 Iu2)
4382*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4383*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4384*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4385*bed243d3SAndroid Build Coastguard Worker 
4386*bed243d3SAndroid Build Coastguard Worker #define Q6_Ww_v6mpyacc_WwWubWbI_v(Vxx,Vuu,Vvv,Iu2) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_v6mpyvubs10_vxx)(Vxx,Vuu,Vvv,Iu2)
4387*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4388*bed243d3SAndroid Build Coastguard Worker 
4389*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4390*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4391*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=vabs(Vu32.hf)
4392*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vabs_Vhf(HVX_Vector Vu)
4393*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
4394*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4395*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4396*bed243d3SAndroid Build Coastguard Worker 
4397*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vabs_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabs_hf)(Vu)
4398*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4399*bed243d3SAndroid Build Coastguard Worker 
4400*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4401*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4402*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.sf=vabs(Vu32.sf)
4403*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vsf_vabs_Vsf(HVX_Vector Vu)
4404*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
4405*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4406*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4407*bed243d3SAndroid Build Coastguard Worker 
4408*bed243d3SAndroid Build Coastguard Worker #define Q6_Vsf_vabs_Vsf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vabs_sf)(Vu)
4409*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4410*bed243d3SAndroid Build Coastguard Worker 
4411*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4412*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4413*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf16=vadd(Vu32.hf,Vv32.hf)
4414*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vadd_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4415*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4416*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4417*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4418*bed243d3SAndroid Build Coastguard Worker 
4419*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf16_vadd_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_hf)(Vu,Vv)
4420*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4421*bed243d3SAndroid Build Coastguard Worker 
4422*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4423*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4424*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=vadd(Vu32.hf,Vv32.hf)
4425*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vadd_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4426*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4427*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4428*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4429*bed243d3SAndroid Build Coastguard Worker 
4430*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vadd_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_hf_hf)(Vu,Vv)
4431*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4432*bed243d3SAndroid Build Coastguard Worker 
4433*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4434*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4435*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf16=vadd(Vu32.qf16,Vv32.qf16)
4436*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vadd_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
4437*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4438*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4439*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4440*bed243d3SAndroid Build Coastguard Worker 
4441*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf16_vadd_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf16)(Vu,Vv)
4442*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4443*bed243d3SAndroid Build Coastguard Worker 
4444*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4445*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4446*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf16=vadd(Vu32.qf16,Vv32.hf)
4447*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vadd_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
4448*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4449*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4450*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4451*bed243d3SAndroid Build Coastguard Worker 
4452*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf16_vadd_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf16_mix)(Vu,Vv)
4453*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4454*bed243d3SAndroid Build Coastguard Worker 
4455*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4456*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4457*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf32=vadd(Vu32.qf32,Vv32.qf32)
4458*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vadd_Vqf32Vqf32(HVX_Vector Vu, HVX_Vector Vv)
4459*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4460*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4461*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4462*bed243d3SAndroid Build Coastguard Worker 
4463*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf32_vadd_Vqf32Vqf32(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf32)(Vu,Vv)
4464*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4465*bed243d3SAndroid Build Coastguard Worker 
4466*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4467*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4468*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf32=vadd(Vu32.qf32,Vv32.sf)
4469*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vadd_Vqf32Vsf(HVX_Vector Vu, HVX_Vector Vv)
4470*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4471*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4472*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4473*bed243d3SAndroid Build Coastguard Worker 
4474*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf32_vadd_Vqf32Vsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_qf32_mix)(Vu,Vv)
4475*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4476*bed243d3SAndroid Build Coastguard Worker 
4477*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4478*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4479*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf32=vadd(Vu32.sf,Vv32.sf)
4480*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vadd_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4481*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4482*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4483*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4484*bed243d3SAndroid Build Coastguard Worker 
4485*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf32_vadd_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_sf)(Vu,Vv)
4486*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4487*bed243d3SAndroid Build Coastguard Worker 
4488*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4489*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4490*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.sf=vadd(Vu32.hf,Vv32.hf)
4491*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vadd_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4492*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4493*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4494*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4495*bed243d3SAndroid Build Coastguard Worker 
4496*bed243d3SAndroid Build Coastguard Worker #define Q6_Wsf_vadd_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_sf_hf)(Vu,Vv)
4497*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4498*bed243d3SAndroid Build Coastguard Worker 
4499*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4500*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4501*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.sf=vadd(Vu32.sf,Vv32.sf)
4502*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vsf_vadd_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4503*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4504*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4505*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4506*bed243d3SAndroid Build Coastguard Worker 
4507*bed243d3SAndroid Build Coastguard Worker #define Q6_Vsf_vadd_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vadd_sf_sf)(Vu,Vv)
4508*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4509*bed243d3SAndroid Build Coastguard Worker 
4510*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4511*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4512*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.w=vfmv(Vu32.w)
4513*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vw_vfmv_Vw(HVX_Vector Vu)
4514*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
4515*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4516*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4517*bed243d3SAndroid Build Coastguard Worker 
4518*bed243d3SAndroid Build Coastguard Worker #define Q6_Vw_vfmv_Vw(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vassign_fp)(Vu)
4519*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4520*bed243d3SAndroid Build Coastguard Worker 
4521*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4522*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4523*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=Vu32.qf16
4524*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_equals_Vqf16(HVX_Vector Vu)
4525*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4526*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4527*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4528*bed243d3SAndroid Build Coastguard Worker 
4529*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_equals_Vqf16(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vconv_hf_qf16)(Vu)
4530*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4531*bed243d3SAndroid Build Coastguard Worker 
4532*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4533*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4534*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=Vuu32.qf32
4535*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_equals_Wqf32(HVX_VectorPair Vuu)
4536*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4537*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4538*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4539*bed243d3SAndroid Build Coastguard Worker 
4540*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_equals_Wqf32(Vuu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vconv_hf_qf32)(Vuu)
4541*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4542*bed243d3SAndroid Build Coastguard Worker 
4543*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4544*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4545*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.sf=Vu32.qf32
4546*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vsf_equals_Vqf32(HVX_Vector Vu)
4547*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
4548*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4549*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4550*bed243d3SAndroid Build Coastguard Worker 
4551*bed243d3SAndroid Build Coastguard Worker #define Q6_Vsf_equals_Vqf32(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vconv_sf_qf32)(Vu)
4552*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4553*bed243d3SAndroid Build Coastguard Worker 
4554*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4555*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4556*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.b=vcvt(Vu32.hf,Vv32.hf)
4557*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vb_vcvt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4558*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4559*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4560*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4561*bed243d3SAndroid Build Coastguard Worker 
4562*bed243d3SAndroid Build Coastguard Worker #define Q6_Vb_vcvt_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_b_hf)(Vu,Vv)
4563*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4564*bed243d3SAndroid Build Coastguard Worker 
4565*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4566*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4567*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.h=vcvt(Vu32.hf)
4568*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vh_vcvt_Vhf(HVX_Vector Vu)
4569*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4570*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4571*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4572*bed243d3SAndroid Build Coastguard Worker 
4573*bed243d3SAndroid Build Coastguard Worker #define Q6_Vh_vcvt_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_h_hf)(Vu)
4574*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4575*bed243d3SAndroid Build Coastguard Worker 
4576*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4577*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4578*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.hf=vcvt(Vu32.b)
4579*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vcvt_Vb(HVX_Vector Vu)
4580*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4581*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4582*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4583*bed243d3SAndroid Build Coastguard Worker 
4584*bed243d3SAndroid Build Coastguard Worker #define Q6_Whf_vcvt_Vb(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_b)(Vu)
4585*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4586*bed243d3SAndroid Build Coastguard Worker 
4587*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4588*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4589*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=vcvt(Vu32.h)
4590*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vcvt_Vh(HVX_Vector Vu)
4591*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4592*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4593*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4594*bed243d3SAndroid Build Coastguard Worker 
4595*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vcvt_Vh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_h)(Vu)
4596*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4597*bed243d3SAndroid Build Coastguard Worker 
4598*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4599*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4600*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=vcvt(Vu32.sf,Vv32.sf)
4601*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vcvt_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4602*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4603*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4604*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4605*bed243d3SAndroid Build Coastguard Worker 
4606*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vcvt_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_sf)(Vu,Vv)
4607*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4608*bed243d3SAndroid Build Coastguard Worker 
4609*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4610*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4611*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.hf=vcvt(Vu32.ub)
4612*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Whf_vcvt_Vub(HVX_Vector Vu)
4613*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4614*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4615*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4616*bed243d3SAndroid Build Coastguard Worker 
4617*bed243d3SAndroid Build Coastguard Worker #define Q6_Whf_vcvt_Vub(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_ub)(Vu)
4618*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4619*bed243d3SAndroid Build Coastguard Worker 
4620*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4621*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4622*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=vcvt(Vu32.uh)
4623*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vcvt_Vuh(HVX_Vector Vu)
4624*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4625*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4626*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4627*bed243d3SAndroid Build Coastguard Worker 
4628*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vcvt_Vuh(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_hf_uh)(Vu)
4629*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4630*bed243d3SAndroid Build Coastguard Worker 
4631*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4632*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4633*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.sf=vcvt(Vu32.hf)
4634*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vcvt_Vhf(HVX_Vector Vu)
4635*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4636*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4637*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4638*bed243d3SAndroid Build Coastguard Worker 
4639*bed243d3SAndroid Build Coastguard Worker #define Q6_Wsf_vcvt_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_sf_hf)(Vu)
4640*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4641*bed243d3SAndroid Build Coastguard Worker 
4642*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4643*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4644*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vcvt(Vu32.hf,Vv32.hf)
4645*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vcvt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4646*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4647*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4648*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4649*bed243d3SAndroid Build Coastguard Worker 
4650*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vcvt_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_ub_hf)(Vu,Vv)
4651*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4652*bed243d3SAndroid Build Coastguard Worker 
4653*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4654*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4655*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vcvt(Vu32.hf)
4656*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vcvt_Vhf(HVX_Vector Vu)
4657*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4658*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4659*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4660*bed243d3SAndroid Build Coastguard Worker 
4661*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vcvt_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vcvt_uh_hf)(Vu)
4662*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4663*bed243d3SAndroid Build Coastguard Worker 
4664*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4665*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4666*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.sf=vdmpy(Vu32.hf,Vv32.hf)
4667*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vsf_vdmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4668*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4669*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4670*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4671*bed243d3SAndroid Build Coastguard Worker 
4672*bed243d3SAndroid Build Coastguard Worker #define Q6_Vsf_vdmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpy_sf_hf)(Vu,Vv)
4673*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4674*bed243d3SAndroid Build Coastguard Worker 
4675*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4676*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4677*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.sf+=vdmpy(Vu32.hf,Vv32.hf)
4678*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vsf_vdmpyacc_VsfVhfVhf(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
4679*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4680*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4681*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4682*bed243d3SAndroid Build Coastguard Worker 
4683*bed243d3SAndroid Build Coastguard Worker #define Q6_Vsf_vdmpyacc_VsfVhfVhf(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vdmpy_sf_hf_acc)(Vx,Vu,Vv)
4684*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4685*bed243d3SAndroid Build Coastguard Worker 
4686*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4687*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4688*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=vfmax(Vu32.hf,Vv32.hf)
4689*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vfmax_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4690*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
4691*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4692*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4693*bed243d3SAndroid Build Coastguard Worker 
4694*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vfmax_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmax_hf)(Vu,Vv)
4695*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4696*bed243d3SAndroid Build Coastguard Worker 
4697*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4698*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4699*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.sf=vfmax(Vu32.sf,Vv32.sf)
4700*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vsf_vfmax_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4701*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
4702*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4703*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4704*bed243d3SAndroid Build Coastguard Worker 
4705*bed243d3SAndroid Build Coastguard Worker #define Q6_Vsf_vfmax_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmax_sf)(Vu,Vv)
4706*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4707*bed243d3SAndroid Build Coastguard Worker 
4708*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4709*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4710*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=vfmin(Vu32.hf,Vv32.hf)
4711*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vfmin_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4712*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
4713*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4714*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4715*bed243d3SAndroid Build Coastguard Worker 
4716*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vfmin_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmin_hf)(Vu,Vv)
4717*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4718*bed243d3SAndroid Build Coastguard Worker 
4719*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4720*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4721*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.sf=vfmin(Vu32.sf,Vv32.sf)
4722*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vsf_vfmin_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4723*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
4724*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4725*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4726*bed243d3SAndroid Build Coastguard Worker 
4727*bed243d3SAndroid Build Coastguard Worker #define Q6_Vsf_vfmin_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfmin_sf)(Vu,Vv)
4728*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4729*bed243d3SAndroid Build Coastguard Worker 
4730*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4731*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4732*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=vfneg(Vu32.hf)
4733*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vfneg_Vhf(HVX_Vector Vu)
4734*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
4735*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4736*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4737*bed243d3SAndroid Build Coastguard Worker 
4738*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vfneg_Vhf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfneg_hf)(Vu)
4739*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4740*bed243d3SAndroid Build Coastguard Worker 
4741*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4742*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4743*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.sf=vfneg(Vu32.sf)
4744*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vsf_vfneg_Vsf(HVX_Vector Vu)
4745*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_LATE
4746*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4747*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4748*bed243d3SAndroid Build Coastguard Worker 
4749*bed243d3SAndroid Build Coastguard Worker #define Q6_Vsf_vfneg_Vsf(Vu) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vfneg_sf)(Vu)
4750*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4751*bed243d3SAndroid Build Coastguard Worker 
4752*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4753*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4754*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vcmp.gt(Vu32.hf,Vv32.hf)
4755*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4756*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4757*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4758*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4759*bed243d3SAndroid Build Coastguard Worker 
4760*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4762*bed243d3SAndroid Build Coastguard Worker 
4763*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4764*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4765*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4&=vcmp.gt(Vu32.hf,Vv32.hf)
4766*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4767*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4768*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4769*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4770*bed243d3SAndroid Build Coastguard Worker 
4771*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4773*bed243d3SAndroid Build Coastguard Worker 
4774*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4775*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4776*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4|=vcmp.gt(Vu32.hf,Vv32.hf)
4777*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4778*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4779*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4780*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4781*bed243d3SAndroid Build Coastguard Worker 
4782*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4784*bed243d3SAndroid Build Coastguard Worker 
4785*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4786*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4787*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4^=vcmp.gt(Vu32.hf,Vv32.hf)
4788*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVhfVhf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4789*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4790*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4791*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4792*bed243d3SAndroid Build Coastguard Worker 
4793*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4795*bed243d3SAndroid Build Coastguard Worker 
4796*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4797*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4798*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qd4=vcmp.gt(Vu32.sf,Vv32.sf)
4799*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gt_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4800*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4801*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4802*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4803*bed243d3SAndroid Build Coastguard Worker 
4804*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4806*bed243d3SAndroid Build Coastguard Worker 
4807*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4808*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4809*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4&=vcmp.gt(Vu32.sf,Vv32.sf)
4810*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtand_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4811*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4812*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4813*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4814*bed243d3SAndroid Build Coastguard Worker 
4815*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4817*bed243d3SAndroid Build Coastguard Worker 
4818*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4819*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4820*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4|=vcmp.gt(Vu32.sf,Vv32.sf)
4821*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtor_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4822*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4823*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4824*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4825*bed243d3SAndroid Build Coastguard Worker 
4826*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4828*bed243d3SAndroid Build Coastguard Worker 
4829*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4830*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4831*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Qx4^=vcmp.gt(Vu32.sf,Vv32.sf)
4832*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPred Q6_Q_vcmp_gtxacc_QVsfVsf(HVX_VectorPred Qx, HVX_Vector Vu, HVX_Vector Vv)
4833*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4834*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4835*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4836*bed243d3SAndroid Build Coastguard Worker 
4837*bed243d3SAndroid Build Coastguard Worker #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*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4839*bed243d3SAndroid Build Coastguard Worker 
4840*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4841*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4842*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=vmax(Vu32.hf,Vv32.hf)
4843*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmax_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4844*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4845*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4846*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4847*bed243d3SAndroid Build Coastguard Worker 
4848*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vmax_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmax_hf)(Vu,Vv)
4849*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4850*bed243d3SAndroid Build Coastguard Worker 
4851*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4852*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4853*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.sf=vmax(Vu32.sf,Vv32.sf)
4854*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vsf_vmax_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4855*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4856*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4857*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4858*bed243d3SAndroid Build Coastguard Worker 
4859*bed243d3SAndroid Build Coastguard Worker #define Q6_Vsf_vmax_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmax_sf)(Vu,Vv)
4860*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4861*bed243d3SAndroid Build Coastguard Worker 
4862*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4863*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4864*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=vmin(Vu32.hf,Vv32.hf)
4865*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmin_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4866*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4867*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4868*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4869*bed243d3SAndroid Build Coastguard Worker 
4870*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vmin_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmin_hf)(Vu,Vv)
4871*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4872*bed243d3SAndroid Build Coastguard Worker 
4873*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4874*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4875*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.sf=vmin(Vu32.sf,Vv32.sf)
4876*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vsf_vmin_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4877*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VA
4878*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
4879*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4880*bed243d3SAndroid Build Coastguard Worker 
4881*bed243d3SAndroid Build Coastguard Worker #define Q6_Vsf_vmin_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmin_sf)(Vu,Vv)
4882*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4883*bed243d3SAndroid Build Coastguard Worker 
4884*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4885*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4886*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=vmpy(Vu32.hf,Vv32.hf)
4887*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4888*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4889*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4890*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4891*bed243d3SAndroid Build Coastguard Worker 
4892*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_hf_hf)(Vu,Vv)
4893*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4894*bed243d3SAndroid Build Coastguard Worker 
4895*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4896*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4897*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vx32.hf+=vmpy(Vu32.hf,Vv32.hf)
4898*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vmpyacc_VhfVhfVhf(HVX_Vector Vx, HVX_Vector Vu, HVX_Vector Vv)
4899*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
4900*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4901*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4902*bed243d3SAndroid Build Coastguard Worker 
4903*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vmpyacc_VhfVhfVhf(Vx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_hf_hf_acc)(Vx,Vu,Vv)
4904*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4905*bed243d3SAndroid Build Coastguard Worker 
4906*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4907*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4908*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf16=vmpy(Vu32.qf16,Vv32.qf16)
4909*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
4910*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4911*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4912*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4913*bed243d3SAndroid Build Coastguard Worker 
4914*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf16_vmpy_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf16)(Vu,Vv)
4915*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4916*bed243d3SAndroid Build Coastguard Worker 
4917*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4918*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4919*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf16=vmpy(Vu32.hf,Vv32.hf)
4920*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4921*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4922*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4923*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4924*bed243d3SAndroid Build Coastguard Worker 
4925*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf16_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf16_hf)(Vu,Vv)
4926*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4927*bed243d3SAndroid Build Coastguard Worker 
4928*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4929*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4930*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf16=vmpy(Vu32.qf16,Vv32.hf)
4931*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vmpy_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
4932*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4933*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4934*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4935*bed243d3SAndroid Build Coastguard Worker 
4936*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf16_vmpy_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf16_mix_hf)(Vu,Vv)
4937*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4938*bed243d3SAndroid Build Coastguard Worker 
4939*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4940*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4941*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf32=vmpy(Vu32.qf32,Vv32.qf32)
4942*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vmpy_Vqf32Vqf32(HVX_Vector Vu, HVX_Vector Vv)
4943*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4944*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4945*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4946*bed243d3SAndroid Build Coastguard Worker 
4947*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf32_vmpy_Vqf32Vqf32(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32)(Vu,Vv)
4948*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4949*bed243d3SAndroid Build Coastguard Worker 
4950*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4951*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4952*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.qf32=vmpy(Vu32.hf,Vv32.hf)
4953*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wqf32_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4954*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4955*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4956*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4957*bed243d3SAndroid Build Coastguard Worker 
4958*bed243d3SAndroid Build Coastguard Worker #define Q6_Wqf32_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_hf)(Vu,Vv)
4959*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4960*bed243d3SAndroid Build Coastguard Worker 
4961*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4962*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4963*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.qf32=vmpy(Vu32.qf16,Vv32.hf)
4964*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wqf32_vmpy_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
4965*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4966*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4967*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4968*bed243d3SAndroid Build Coastguard Worker 
4969*bed243d3SAndroid Build Coastguard Worker #define Q6_Wqf32_vmpy_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_mix_hf)(Vu,Vv)
4970*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4971*bed243d3SAndroid Build Coastguard Worker 
4972*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4973*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4974*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.qf32=vmpy(Vu32.qf16,Vv32.qf16)
4975*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wqf32_vmpy_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
4976*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4977*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4978*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4979*bed243d3SAndroid Build Coastguard Worker 
4980*bed243d3SAndroid Build Coastguard Worker #define Q6_Wqf32_vmpy_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_qf16)(Vu,Vv)
4981*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4982*bed243d3SAndroid Build Coastguard Worker 
4983*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4984*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4985*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf32=vmpy(Vu32.sf,Vv32.sf)
4986*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vmpy_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
4987*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4988*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
4989*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
4990*bed243d3SAndroid Build Coastguard Worker 
4991*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf32_vmpy_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_qf32_sf)(Vu,Vv)
4992*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
4993*bed243d3SAndroid Build Coastguard Worker 
4994*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
4995*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
4996*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.sf=vmpy(Vu32.hf,Vv32.hf)
4997*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vmpy_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
4998*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
4999*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
5000*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5001*bed243d3SAndroid Build Coastguard Worker 
5002*bed243d3SAndroid Build Coastguard Worker #define Q6_Wsf_vmpy_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_sf_hf)(Vu,Vv)
5003*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
5004*bed243d3SAndroid Build Coastguard Worker 
5005*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
5006*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5007*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vxx32.sf+=vmpy(Vu32.hf,Vv32.hf)
5008*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vmpyacc_WsfVhfVhf(HVX_VectorPair Vxx, HVX_Vector Vu, HVX_Vector Vv)
5009*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
5010*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
5011*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5012*bed243d3SAndroid Build Coastguard Worker 
5013*bed243d3SAndroid Build Coastguard Worker #define Q6_Wsf_vmpyacc_WsfVhfVhf(Vxx,Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_sf_hf_acc)(Vxx,Vu,Vv)
5014*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
5015*bed243d3SAndroid Build Coastguard Worker 
5016*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
5017*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5018*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.sf=vmpy(Vu32.sf,Vv32.sf)
5019*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vsf_vmpy_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5020*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
5021*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
5022*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5023*bed243d3SAndroid Build Coastguard Worker 
5024*bed243d3SAndroid Build Coastguard Worker #define Q6_Vsf_vmpy_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpy_sf_sf)(Vu,Vv)
5025*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
5026*bed243d3SAndroid Build Coastguard Worker 
5027*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
5028*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5029*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf16=vsub(Vu32.hf,Vv32.hf)
5030*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5031*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
5032*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
5033*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5034*bed243d3SAndroid Build Coastguard Worker 
5035*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf16_vsub_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_hf)(Vu,Vv)
5036*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
5037*bed243d3SAndroid Build Coastguard Worker 
5038*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
5039*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5040*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.hf=vsub(Vu32.hf,Vv32.hf)
5041*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vhf_vsub_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5042*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
5043*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
5044*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5045*bed243d3SAndroid Build Coastguard Worker 
5046*bed243d3SAndroid Build Coastguard Worker #define Q6_Vhf_vsub_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_hf_hf)(Vu,Vv)
5047*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
5048*bed243d3SAndroid Build Coastguard Worker 
5049*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
5050*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5051*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf16=vsub(Vu32.qf16,Vv32.qf16)
5052*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_Vqf16Vqf16(HVX_Vector Vu, HVX_Vector Vv)
5053*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
5054*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
5055*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5056*bed243d3SAndroid Build Coastguard Worker 
5057*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf16_vsub_Vqf16Vqf16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf16)(Vu,Vv)
5058*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
5059*bed243d3SAndroid Build Coastguard Worker 
5060*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
5061*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5062*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf16=vsub(Vu32.qf16,Vv32.hf)
5063*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf16_vsub_Vqf16Vhf(HVX_Vector Vu, HVX_Vector Vv)
5064*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
5065*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
5066*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5067*bed243d3SAndroid Build Coastguard Worker 
5068*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf16_vsub_Vqf16Vhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf16_mix)(Vu,Vv)
5069*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
5070*bed243d3SAndroid Build Coastguard Worker 
5071*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
5072*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5073*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf32=vsub(Vu32.qf32,Vv32.qf32)
5074*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_Vqf32Vqf32(HVX_Vector Vu, HVX_Vector Vv)
5075*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
5076*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
5077*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5078*bed243d3SAndroid Build Coastguard Worker 
5079*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf32_vsub_Vqf32Vqf32(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf32)(Vu,Vv)
5080*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
5081*bed243d3SAndroid Build Coastguard Worker 
5082*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
5083*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5084*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf32=vsub(Vu32.qf32,Vv32.sf)
5085*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_Vqf32Vsf(HVX_Vector Vu, HVX_Vector Vv)
5086*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
5087*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
5088*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5089*bed243d3SAndroid Build Coastguard Worker 
5090*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf32_vsub_Vqf32Vsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_qf32_mix)(Vu,Vv)
5091*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
5092*bed243d3SAndroid Build Coastguard Worker 
5093*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
5094*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5095*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.qf32=vsub(Vu32.sf,Vv32.sf)
5096*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vqf32_vsub_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5097*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
5098*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
5099*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5100*bed243d3SAndroid Build Coastguard Worker 
5101*bed243d3SAndroid Build Coastguard Worker #define Q6_Vqf32_vsub_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_sf)(Vu,Vv)
5102*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
5103*bed243d3SAndroid Build Coastguard Worker 
5104*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
5105*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5106*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vdd32.sf=vsub(Vu32.hf,Vv32.hf)
5107*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_VectorPair Q6_Wsf_vsub_VhfVhf(HVX_Vector Vu, HVX_Vector Vv)
5108*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX_DV
5109*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
5110*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5111*bed243d3SAndroid Build Coastguard Worker 
5112*bed243d3SAndroid Build Coastguard Worker #define Q6_Wsf_vsub_VhfVhf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_sf_hf)(Vu,Vv)
5113*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
5114*bed243d3SAndroid Build Coastguard Worker 
5115*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 68
5116*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5117*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.sf=vsub(Vu32.sf,Vv32.sf)
5118*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vsf_vsub_VsfVsf(HVX_Vector Vu, HVX_Vector Vv)
5119*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
5120*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
5121*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5122*bed243d3SAndroid Build Coastguard Worker 
5123*bed243d3SAndroid Build Coastguard Worker #define Q6_Vsf_vsub_VsfVsf(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vsub_sf_sf)(Vu,Vv)
5124*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 68 */
5125*bed243d3SAndroid Build Coastguard Worker 
5126*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 69
5127*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5128*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vasr(Vuu32.uh,Vv32.ub):rnd:sat
5129*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_WuhVub_rnd_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5130*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
5131*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
5132*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5133*bed243d3SAndroid Build Coastguard Worker 
5134*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vasr_WuhVub_rnd_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvuhubrndsat)(Vuu,Vv)
5135*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 69 */
5136*bed243d3SAndroid Build Coastguard Worker 
5137*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 69
5138*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5139*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.ub=vasr(Vuu32.uh,Vv32.ub):sat
5140*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vub_vasr_WuhVub_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5141*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
5142*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
5143*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5144*bed243d3SAndroid Build Coastguard Worker 
5145*bed243d3SAndroid Build Coastguard Worker #define Q6_Vub_vasr_WuhVub_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvuhubsat)(Vuu,Vv)
5146*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 69 */
5147*bed243d3SAndroid Build Coastguard Worker 
5148*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 69
5149*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5150*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vasr(Vuu32.w,Vv32.uh):rnd:sat
5151*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_WwVuh_rnd_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5152*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
5153*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
5154*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5155*bed243d3SAndroid Build Coastguard Worker 
5156*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vasr_WwVuh_rnd_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvwuhrndsat)(Vuu,Vv)
5157*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 69 */
5158*bed243d3SAndroid Build Coastguard Worker 
5159*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 69
5160*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5161*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vasr(Vuu32.w,Vv32.uh):sat
5162*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vasr_WwVuh_sat(HVX_VectorPair Vuu, HVX_Vector Vv)
5163*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VS
5164*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT0123
5165*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5166*bed243d3SAndroid Build Coastguard Worker 
5167*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vasr_WwVuh_sat(Vuu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vasrvwuhsat)(Vuu,Vv)
5168*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 69 */
5169*bed243d3SAndroid Build Coastguard Worker 
5170*bed243d3SAndroid Build Coastguard Worker #if __HVX_ARCH__ >= 69
5171*bed243d3SAndroid Build Coastguard Worker /* ==========================================================================
5172*bed243d3SAndroid Build Coastguard Worker    Assembly Syntax:       Vd32.uh=vmpy(Vu32.uh,Vv32.uh):>>16
5173*bed243d3SAndroid Build Coastguard Worker    C Intrinsic Prototype: HVX_Vector Q6_Vuh_vmpy_VuhVuh_rs16(HVX_Vector Vu, HVX_Vector Vv)
5174*bed243d3SAndroid Build Coastguard Worker    Instruction Type:      CVI_VX
5175*bed243d3SAndroid Build Coastguard Worker    Execution Slots:       SLOT23
5176*bed243d3SAndroid Build Coastguard Worker    ========================================================================== */
5177*bed243d3SAndroid Build Coastguard Worker 
5178*bed243d3SAndroid Build Coastguard Worker #define Q6_Vuh_vmpy_VuhVuh_rs16(Vu,Vv) __BUILTIN_VECTOR_WRAP(__builtin_HEXAGON_V6_vmpyuhvs)(Vu,Vv)
5179*bed243d3SAndroid Build Coastguard Worker #endif /* __HEXAGON_ARCH___ >= 69 */
5180*bed243d3SAndroid Build Coastguard Worker 
5181*bed243d3SAndroid Build Coastguard Worker #endif /* __HVX__ */
5182*bed243d3SAndroid Build Coastguard Worker 
5183*bed243d3SAndroid Build Coastguard Worker #endif
5184