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