Hi Srinath,

> -----Original Message-----
> From: Srinath Parvathaneni <srinath.parvathan...@arm.com>
> Sent: 10 March 2020 18:23
> To: gcc-patches@gcc.gnu.org
> Cc: Kyrylo Tkachov <kyrylo.tkac...@arm.com>
> Subject: [PATCH v2][ARM][GCC][5/2x]: MVE intrinsics with binary operands.
> 
> Hello Kyrill,
> 
> Following patch is the rebased version of v1.
> (version v1) https://gcc.gnu.org/pipermail/gcc-patches/2019-
> November/534330.html
> 
> ####
> 
> 
> Hello,
> 
> This patch supports following MVE ACLE intrinsics with binary operands.
> 
> vqmovntq_u16, vqmovnbq_u16, vmulltq_poly_p8, vmullbq_poly_p8,
> vmovntq_u16, vmovnbq_u16, vmlaldavxq_u16, vmlaldavq_u16,
> vqmovuntq_s16, vqmovunbq_s16, vshlltq_n_u8, vshllbq_n_u8, vorrq_n_u16,
> vbicq_n_u16, vcmpneq_n_f16, vcmpneq_f16, vcmpltq_n_f16, vcmpltq_f16,
> vcmpleq_n_f16, vcmpleq_f16, vcmpgtq_n_f16, vcmpgtq_f16, vcmpgeq_n_f16,
> vcmpgeq_f16, vcmpeqq_n_f16, vcmpeqq_f16, vsubq_f16, vqmovntq_s16,
> vqmovnbq_s16, vqdmulltq_s16, vqdmulltq_n_s16, vqdmullbq_s16,
> vqdmullbq_n_s16, vorrq_f16, vornq_f16, vmulq_n_f16, vmulq_f16,
> vmovntq_s16, vmovnbq_s16, vmlsldavxq_s16, vmlsldavq_s16,
> vmlaldavxq_s16, vmlaldavq_s16, vminnmvq_f16, vminnmq_f16,
> vminnmavq_f16, vminnmaq_f16, vmaxnmvq_f16, vmaxnmq_f16,
> vmaxnmavq_f16, vmaxnmaq_f16, veorq_f16, vcmulq_rot90_f16,
> vcmulq_rot270_f16, vcmulq_rot180_f16, vcmulq_f16, vcaddq_rot90_f16,
> vcaddq_rot270_f16, vbicq_f16, vandq_f16, vaddq_n_f16, vabdq_f16,
> vshlltq_n_s8, vshllbq_n_s8, vorrq_n_s16, vbicq_n_s16, vqmovntq_u32,
> vqmovnbq_u32, vmulltq_poly_p16, vmullbq_poly_p16, vmovntq_u32,
> vmovnbq_u32, vmlaldavxq_u32, vmlaldavq_u32, vqmovuntq_s32,
> vqmovunbq_s32, vshlltq_n_u16, vshllbq_n_u16, vorrq_n_u32, vbicq_n_u32,
> vcmpneq_n_f32, vcmpneq_f32, vcmpltq_n_f32, vcmpltq_f32, vcmpleq_n_f32,
> vcmpleq_f32, vcmpgtq_n_f32, vcmpgtq_f32, vcmpgeq_n_f32, vcmpgeq_f32,
> vcmpeqq_n_f32, vcmpeqq_f32, vsubq_f32, vqmovntq_s32, vqmovnbq_s32,
> vqdmulltq_s32, vqdmulltq_n_s32, vqdmullbq_s32, vqdmullbq_n_s32,
> vorrq_f32, vornq_f32, vmulq_n_f32, vmulq_f32, vmovntq_s32,
> vmovnbq_s32, vmlsldavxq_s32, vmlsldavq_s32, vmlaldavxq_s32,
> vmlaldavq_s32, vminnmvq_f32, vminnmq_f32, vminnmavq_f32,
> vminnmaq_f32, vmaxnmvq_f32, vmaxnmq_f32, vmaxnmavq_f32,
> vmaxnmaq_f32, veorq_f32, vcmulq_rot90_f32, vcmulq_rot270_f32,
> vcmulq_rot180_f32, vcmulq_f32, vcaddq_rot90_f32, vcaddq_rot270_f32,
> vbicq_f32, vandq_f32, vaddq_n_f32, vabdq_f32, vshlltq_n_s16,
> vshllbq_n_s16, vorrq_n_s32, vbicq_n_s32, vrmlaldavhq_u32, vctp8q_m,
> vctp64q_m, vctp32q_m, vctp16q_m, vaddlvaq_u32, vrmlsldavhxq_s32,
> vrmlsldavhq_s32, vrmlaldavhxq_s32, vrmlaldavhq_s32, vcvttq_f16_f32,
> vcvtbq_f16_f32, vaddlvaq_s32.
> 
> Please refer to M-profile Vector Extension (MVE) intrinsics [1]  for more
> details.
> [1] https://developer.arm.com/architectures/instruction-sets/simd-
> isas/helium/mve-intrinsics
> 
> The above intrinsics are defined using the already defined builtin qualifiers
> BINOP_NONE_NONE_IMM, BINOP_NONE_NONE_NONE,
> BINOP_UNONE_NONE_NONE, BINOP_UNONE_UNONE_IMM,
> BINOP_UNONE_UNONE_NONE, BINOP_UNONE_UNONE_UNONE.
> 
> Regression tested on target arm-none-eabi and armeb-none-eabi and found
> no regressions.
> 
> Ok for trunk?
> 

Thanks, I've pushed this patch to trunk.
Kyrill

> Thanks,
> Srinath.
> 
> gcc/ChangeLog:
> 
> 2019-10-23  Andre Vieira  <andre.simoesdiasvie...@arm.com>
>           Mihail Ionescu  <mihail.ione...@arm.com>
>           Srinath Parvathaneni  <srinath.parvathan...@arm.com>
> 
>       * config/arm/arm_mve.h (vqmovntq_u16): Define macro.
>       (vqmovnbq_u16): Likewise.
>       (vmulltq_poly_p8): Likewise.
>       (vmullbq_poly_p8): Likewise.
>       (vmovntq_u16): Likewise.
>       (vmovnbq_u16): Likewise.
>       (vmlaldavxq_u16): Likewise.
>       (vmlaldavq_u16): Likewise.
>       (vqmovuntq_s16): Likewise.
>       (vqmovunbq_s16): Likewise.
>       (vshlltq_n_u8): Likewise.
>       (vshllbq_n_u8): Likewise.
>       (vorrq_n_u16): Likewise.
>       (vbicq_n_u16): Likewise.
>       (vcmpneq_n_f16): Likewise.
>       (vcmpneq_f16): Likewise.
>       (vcmpltq_n_f16): Likewise.
>       (vcmpltq_f16): Likewise.
>       (vcmpleq_n_f16): Likewise.
>       (vcmpleq_f16): Likewise.
>       (vcmpgtq_n_f16): Likewise.
>       (vcmpgtq_f16): Likewise.
>       (vcmpgeq_n_f16): Likewise.
>       (vcmpgeq_f16): Likewise.
>       (vcmpeqq_n_f16): Likewise.
>       (vcmpeqq_f16): Likewise.
>       (vsubq_f16): Likewise.
>       (vqmovntq_s16): Likewise.
>       (vqmovnbq_s16): Likewise.
>       (vqdmulltq_s16): Likewise.
>       (vqdmulltq_n_s16): Likewise.
>       (vqdmullbq_s16): Likewise.
>       (vqdmullbq_n_s16): Likewise.
>       (vorrq_f16): Likewise.
>       (vornq_f16): Likewise.
>       (vmulq_n_f16): Likewise.
>       (vmulq_f16): Likewise.
>       (vmovntq_s16): Likewise.
>       (vmovnbq_s16): Likewise.
>       (vmlsldavxq_s16): Likewise.
>       (vmlsldavq_s16): Likewise.
>       (vmlaldavxq_s16): Likewise.
>       (vmlaldavq_s16): Likewise.
>       (vminnmvq_f16): Likewise.
>       (vminnmq_f16): Likewise.
>       (vminnmavq_f16): Likewise.
>       (vminnmaq_f16): Likewise.
>       (vmaxnmvq_f16): Likewise.
>       (vmaxnmq_f16): Likewise.
>       (vmaxnmavq_f16): Likewise.
>       (vmaxnmaq_f16): Likewise.
>       (veorq_f16): Likewise.
>       (vcmulq_rot90_f16): Likewise.
>       (vcmulq_rot270_f16): Likewise.
>       (vcmulq_rot180_f16): Likewise.
>       (vcmulq_f16): Likewise.
>       (vcaddq_rot90_f16): Likewise.
>       (vcaddq_rot270_f16): Likewise.
>       (vbicq_f16): Likewise.
>       (vandq_f16): Likewise.
>       (vaddq_n_f16): Likewise.
>       (vabdq_f16): Likewise.
>       (vshlltq_n_s8): Likewise.
>       (vshllbq_n_s8): Likewise.
>       (vorrq_n_s16): Likewise.
>       (vbicq_n_s16): Likewise.
>       (vqmovntq_u32): Likewise.
>       (vqmovnbq_u32): Likewise.
>       (vmulltq_poly_p16): Likewise.
>       (vmullbq_poly_p16): Likewise.
>       (vmovntq_u32): Likewise.
>       (vmovnbq_u32): Likewise.
>       (vmlaldavxq_u32): Likewise.
>       (vmlaldavq_u32): Likewise.
>       (vqmovuntq_s32): Likewise.
>       (vqmovunbq_s32): Likewise.
>       (vshlltq_n_u16): Likewise.
>       (vshllbq_n_u16): Likewise.
>       (vorrq_n_u32): Likewise.
>       (vbicq_n_u32): Likewise.
>       (vcmpneq_n_f32): Likewise.
>       (vcmpneq_f32): Likewise.
>       (vcmpltq_n_f32): Likewise.
>       (vcmpltq_f32): Likewise.
>       (vcmpleq_n_f32): Likewise.
>       (vcmpleq_f32): Likewise.
>       (vcmpgtq_n_f32): Likewise.
>       (vcmpgtq_f32): Likewise.
>       (vcmpgeq_n_f32): Likewise.
>       (vcmpgeq_f32): Likewise.
>       (vcmpeqq_n_f32): Likewise.
>       (vcmpeqq_f32): Likewise.
>       (vsubq_f32): Likewise.
>       (vqmovntq_s32): Likewise.
>       (vqmovnbq_s32): Likewise.
>       (vqdmulltq_s32): Likewise.
>       (vqdmulltq_n_s32): Likewise.
>       (vqdmullbq_s32): Likewise.
>       (vqdmullbq_n_s32): Likewise.
>       (vorrq_f32): Likewise.
>       (vornq_f32): Likewise.
>       (vmulq_n_f32): Likewise.
>       (vmulq_f32): Likewise.
>       (vmovntq_s32): Likewise.
>       (vmovnbq_s32): Likewise.
>       (vmlsldavxq_s32): Likewise.
>       (vmlsldavq_s32): Likewise.
>       (vmlaldavxq_s32): Likewise.
>       (vmlaldavq_s32): Likewise.
>       (vminnmvq_f32): Likewise.
>       (vminnmq_f32): Likewise.
>       (vminnmavq_f32): Likewise.
>       (vminnmaq_f32): Likewise.
>       (vmaxnmvq_f32): Likewise.
>       (vmaxnmq_f32): Likewise.
>       (vmaxnmavq_f32): Likewise.
>       (vmaxnmaq_f32): Likewise.
>       (veorq_f32): Likewise.
>       (vcmulq_rot90_f32): Likewise.
>       (vcmulq_rot270_f32): Likewise.
>       (vcmulq_rot180_f32): Likewise.
>       (vcmulq_f32): Likewise.
>       (vcaddq_rot90_f32): Likewise.
>       (vcaddq_rot270_f32): Likewise.
>       (vbicq_f32): Likewise.
>       (vandq_f32): Likewise.
>       (vaddq_n_f32): Likewise.
>       (vabdq_f32): Likewise.
>       (vshlltq_n_s16): Likewise.
>       (vshllbq_n_s16): Likewise.
>       (vorrq_n_s32): Likewise.
>       (vbicq_n_s32): Likewise.
>       (vrmlaldavhq_u32): Likewise.
>       (vctp8q_m): Likewise.
>       (vctp64q_m): Likewise.
>       (vctp32q_m): Likewise.
>       (vctp16q_m): Likewise.
>       (vaddlvaq_u32): Likewise.
>       (vrmlsldavhxq_s32): Likewise.
>       (vrmlsldavhq_s32): Likewise.
>       (vrmlaldavhxq_s32): Likewise.
>       (vrmlaldavhq_s32): Likewise.
>       (vcvttq_f16_f32): Likewise.
>       (vcvtbq_f16_f32): Likewise.
>       (vaddlvaq_s32): Likewise.
>       (__arm_vqmovntq_u16): Define intrinsic.
>       (__arm_vqmovnbq_u16): Likewise.
>       (__arm_vmulltq_poly_p8): Likewise.
>       (__arm_vmullbq_poly_p8): Likewise.
>       (__arm_vmovntq_u16): Likewise.
>       (__arm_vmovnbq_u16): Likewise.
>       (__arm_vmlaldavxq_u16): Likewise.
>       (__arm_vmlaldavq_u16): Likewise.
>       (__arm_vqmovuntq_s16): Likewise.
>       (__arm_vqmovunbq_s16): Likewise.
>       (__arm_vshlltq_n_u8): Likewise.
>       (__arm_vshllbq_n_u8): Likewise.
>       (__arm_vorrq_n_u16): Likewise.
>       (__arm_vbicq_n_u16): Likewise.
>       (__arm_vcmpneq_n_f16): Likewise.
>       (__arm_vcmpneq_f16): Likewise.
>       (__arm_vcmpltq_n_f16): Likewise.
>       (__arm_vcmpltq_f16): Likewise.
>       (__arm_vcmpleq_n_f16): Likewise.
>       (__arm_vcmpleq_f16): Likewise.
>       (__arm_vcmpgtq_n_f16): Likewise.
>       (__arm_vcmpgtq_f16): Likewise.
>       (__arm_vcmpgeq_n_f16): Likewise.
>       (__arm_vcmpgeq_f16): Likewise.
>       (__arm_vcmpeqq_n_f16): Likewise.
>       (__arm_vcmpeqq_f16): Likewise.
>       (__arm_vsubq_f16): Likewise.
>       (__arm_vqmovntq_s16): Likewise.
>       (__arm_vqmovnbq_s16): Likewise.
>       (__arm_vqdmulltq_s16): Likewise.
>       (__arm_vqdmulltq_n_s16): Likewise.
>       (__arm_vqdmullbq_s16): Likewise.
>       (__arm_vqdmullbq_n_s16): Likewise.
>       (__arm_vorrq_f16): Likewise.
>       (__arm_vornq_f16): Likewise.
>       (__arm_vmulq_n_f16): Likewise.
>       (__arm_vmulq_f16): Likewise.
>       (__arm_vmovntq_s16): Likewise.
>       (__arm_vmovnbq_s16): Likewise.
>       (__arm_vmlsldavxq_s16): Likewise.
>       (__arm_vmlsldavq_s16): Likewise.
>       (__arm_vmlaldavxq_s16): Likewise.
>       (__arm_vmlaldavq_s16): Likewise.
>       (__arm_vminnmvq_f16): Likewise.
>       (__arm_vminnmq_f16): Likewise.
>       (__arm_vminnmavq_f16): Likewise.
>       (__arm_vminnmaq_f16): Likewise.
>       (__arm_vmaxnmvq_f16): Likewise.
>       (__arm_vmaxnmq_f16): Likewise.
>       (__arm_vmaxnmavq_f16): Likewise.
>       (__arm_vmaxnmaq_f16): Likewise.
>       (__arm_veorq_f16): Likewise.
>       (__arm_vcmulq_rot90_f16): Likewise.
>       (__arm_vcmulq_rot270_f16): Likewise.
>       (__arm_vcmulq_rot180_f16): Likewise.
>       (__arm_vcmulq_f16): Likewise.
>       (__arm_vcaddq_rot90_f16): Likewise.
>       (__arm_vcaddq_rot270_f16): Likewise.
>       (__arm_vbicq_f16): Likewise.
>       (__arm_vandq_f16): Likewise.
>       (__arm_vaddq_n_f16): Likewise.
>       (__arm_vabdq_f16): Likewise.
>       (__arm_vshlltq_n_s8): Likewise.
>       (__arm_vshllbq_n_s8): Likewise.
>       (__arm_vorrq_n_s16): Likewise.
>       (__arm_vbicq_n_s16): Likewise.
>       (__arm_vqmovntq_u32): Likewise.
>       (__arm_vqmovnbq_u32): Likewise.
>       (__arm_vmulltq_poly_p16): Likewise.
>       (__arm_vmullbq_poly_p16): Likewise.
>       (__arm_vmovntq_u32): Likewise.
>       (__arm_vmovnbq_u32): Likewise.
>       (__arm_vmlaldavxq_u32): Likewise.
>       (__arm_vmlaldavq_u32): Likewise.
>       (__arm_vqmovuntq_s32): Likewise.
>       (__arm_vqmovunbq_s32): Likewise.
>       (__arm_vshlltq_n_u16): Likewise.
>       (__arm_vshllbq_n_u16): Likewise.
>       (__arm_vorrq_n_u32): Likewise.
>       (__arm_vbicq_n_u32): Likewise.
>       (__arm_vcmpneq_n_f32): Likewise.
>       (__arm_vcmpneq_f32): Likewise.
>       (__arm_vcmpltq_n_f32): Likewise.
>       (__arm_vcmpltq_f32): Likewise.
>       (__arm_vcmpleq_n_f32): Likewise.
>       (__arm_vcmpleq_f32): Likewise.
>       (__arm_vcmpgtq_n_f32): Likewise.
>       (__arm_vcmpgtq_f32): Likewise.
>       (__arm_vcmpgeq_n_f32): Likewise.
>       (__arm_vcmpgeq_f32): Likewise.
>       (__arm_vcmpeqq_n_f32): Likewise.
>       (__arm_vcmpeqq_f32): Likewise.
>       (__arm_vsubq_f32): Likewise.
>       (__arm_vqmovntq_s32): Likewise.
>       (__arm_vqmovnbq_s32): Likewise.
>       (__arm_vqdmulltq_s32): Likewise.
>       (__arm_vqdmulltq_n_s32): Likewise.
>       (__arm_vqdmullbq_s32): Likewise.
>       (__arm_vqdmullbq_n_s32): Likewise.
>       (__arm_vorrq_f32): Likewise.
>       (__arm_vornq_f32): Likewise.
>       (__arm_vmulq_n_f32): Likewise.
>       (__arm_vmulq_f32): Likewise.
>       (__arm_vmovntq_s32): Likewise.
>       (__arm_vmovnbq_s32): Likewise.
>       (__arm_vmlsldavxq_s32): Likewise.
>       (__arm_vmlsldavq_s32): Likewise.
>       (__arm_vmlaldavxq_s32): Likewise.
>       (__arm_vmlaldavq_s32): Likewise.
>       (__arm_vminnmvq_f32): Likewise.
>       (__arm_vminnmq_f32): Likewise.
>       (__arm_vminnmavq_f32): Likewise.
>       (__arm_vminnmaq_f32): Likewise.
>       (__arm_vmaxnmvq_f32): Likewise.
>       (__arm_vmaxnmq_f32): Likewise.
>       (__arm_vmaxnmavq_f32): Likewise.
>       (__arm_vmaxnmaq_f32): Likewise.
>       (__arm_veorq_f32): Likewise.
>       (__arm_vcmulq_rot90_f32): Likewise.
>       (__arm_vcmulq_rot270_f32): Likewise.
>       (__arm_vcmulq_rot180_f32): Likewise.
>       (__arm_vcmulq_f32): Likewise.
>       (__arm_vcaddq_rot90_f32): Likewise.
>       (__arm_vcaddq_rot270_f32): Likewise.
>       (__arm_vbicq_f32): Likewise.
>       (__arm_vandq_f32): Likewise.
>       (__arm_vaddq_n_f32): Likewise.
>       (__arm_vabdq_f32): Likewise.
>       (__arm_vshlltq_n_s16): Likewise.
>       (__arm_vshllbq_n_s16): Likewise.
>       (__arm_vorrq_n_s32): Likewise.
>       (__arm_vbicq_n_s32): Likewise.
>       (__arm_vrmlaldavhq_u32): Likewise.
>       (__arm_vctp8q_m): Likewise.
>       (__arm_vctp64q_m): Likewise.
>       (__arm_vctp32q_m): Likewise.
>       (__arm_vctp16q_m): Likewise.
>       (__arm_vaddlvaq_u32): Likewise.
>       (__arm_vrmlsldavhxq_s32): Likewise.
>       (__arm_vrmlsldavhq_s32): Likewise.
>       (__arm_vrmlaldavhxq_s32): Likewise.
>       (__arm_vrmlaldavhq_s32): Likewise.
>       (__arm_vcvttq_f16_f32): Likewise.
>       (__arm_vcvtbq_f16_f32): Likewise.
>       (__arm_vaddlvaq_s32): Likewise.
>       (vst4q): Define polymorphic variant.
>       (vrndxq): Likewise.
>       (vrndq): Likewise.
>       (vrndpq): Likewise.
>       (vrndnq): Likewise.
>       (vrndmq): Likewise.
>       (vrndaq): Likewise.
>       (vrev64q): Likewise.
>       (vnegq): Likewise.
>       (vdupq_n): Likewise.
>       (vabsq): Likewise.
>       (vrev32q): Likewise.
>       (vcvtbq_f32): Likewise.
>       (vcvttq_f32): Likewise.
>       (vcvtq): Likewise.
>       (vsubq_n): Likewise.
>       (vbrsrq_n): Likewise.
>       (vcvtq_n): Likewise.
>       (vsubq): Likewise.
>       (vorrq): Likewise.
>       (vabdq): Likewise.
>       (vaddq_n): Likewise.
>       (vandq): Likewise.
>       (vbicq): Likewise.
>       (vornq): Likewise.
>       (vmulq_n): Likewise.
>       (vmulq): Likewise.
>       (vcaddq_rot270): Likewise.
>       (vcmpeqq_n): Likewise.
>       (vcmpeqq): Likewise.
>       (vcaddq_rot90): Likewise.
>       (vcmpgeq_n): Likewise.
>       (vcmpgeq): Likewise.
>       (vcmpgtq_n): Likewise.
>       (vcmpgtq): Likewise.
>       (vcmpgtq): Likewise.
>       (vcmpleq_n): Likewise.
>       (vcmpleq_n): Likewise.
>       (vcmpleq): Likewise.
>       (vcmpleq): Likewise.
>       (vcmpltq_n): Likewise.
>       (vcmpltq_n): Likewise.
>       (vcmpltq): Likewise.
>       (vcmpltq): Likewise.
>       (vcmpneq_n): Likewise.
>       (vcmpneq_n): Likewise.
>       (vcmpneq): Likewise.
>       (vcmpneq): Likewise.
>       (vcmulq): Likewise.
>       (vcmulq): Likewise.
>       (vcmulq_rot180): Likewise.
>       (vcmulq_rot180): Likewise.
>       (vcmulq_rot270): Likewise.
>       (vcmulq_rot270): Likewise.
>       (vcmulq_rot90): Likewise.
>       (vcmulq_rot90): Likewise.
>       (veorq): Likewise.
>       (veorq): Likewise.
>       (vmaxnmaq): Likewise.
>       (vmaxnmaq): Likewise.
>       (vmaxnmavq): Likewise.
>       (vmaxnmavq): Likewise.
>       (vmaxnmq): Likewise.
>       (vmaxnmq): Likewise.
>       (vmaxnmvq): Likewise.
>       (vmaxnmvq): Likewise.
>       (vminnmaq): Likewise.
>       (vminnmaq): Likewise.
>       (vminnmavq): Likewise.
>       (vminnmavq): Likewise.
>       (vminnmq): Likewise.
>       (vminnmq): Likewise.
>       (vminnmvq): Likewise.
>       (vminnmvq): Likewise.
>       (vbicq_n): Likewise.
>       (vqmovntq): Likewise.
>       (vqmovntq): Likewise.
>       (vqmovnbq): Likewise.
>       (vqmovnbq): Likewise.
>       (vmulltq_poly): Likewise.
>       (vmulltq_poly): Likewise.
>       (vmullbq_poly): Likewise.
>       (vmullbq_poly): Likewise.
>       (vmovntq): Likewise.
>       (vmovntq): Likewise.
>       (vmovnbq): Likewise.
>       (vmovnbq): Likewise.
>       (vmlaldavxq): Likewise.
>       (vmlaldavxq): Likewise.
>       (vqmovuntq): Likewise.
>       (vqmovuntq): Likewise.
>       (vshlltq_n): Likewise.
>       (vshlltq_n): Likewise.
>       (vshllbq_n): Likewise.
>       (vshllbq_n): Likewise.
>       (vorrq_n): Likewise.
>       (vorrq_n): Likewise.
>       (vmlaldavq): Likewise.
>       (vmlaldavq): Likewise.
>       (vqmovunbq): Likewise.
>       (vqmovunbq): Likewise.
>       (vqdmulltq_n): Likewise.
>       (vqdmulltq_n): Likewise.
>       (vqdmulltq): Likewise.
>       (vqdmulltq): Likewise.
>       (vqdmullbq_n): Likewise.
>       (vqdmullbq_n): Likewise.
>       (vqdmullbq): Likewise.
>       (vqdmullbq): Likewise.
>       (vaddlvaq): Likewise.
>       (vaddlvaq): Likewise.
>       (vrmlaldavhq): Likewise.
>       (vrmlaldavhq): Likewise.
>       (vrmlaldavhxq): Likewise.
>       (vrmlaldavhxq): Likewise.
>       (vrmlsldavhq): Likewise.
>       (vrmlsldavhq): Likewise.
>       (vrmlsldavhxq): Likewise.
>       (vrmlsldavhxq): Likewise.
>       (vmlsldavxq): Likewise.
>       (vmlsldavxq): Likewise.
>       (vmlsldavq): Likewise.
>       (vmlsldavq): Likewise.
>       * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM):
> Use it.
>       (BINOP_NONE_NONE_NONE): Likewise.
>       (BINOP_UNONE_NONE_NONE): Likewise.
>       (BINOP_UNONE_UNONE_IMM): Likewise.
>       (BINOP_UNONE_UNONE_NONE): Likewise.
>       (BINOP_UNONE_UNONE_UNONE): Likewise.
>       * config/arm/mve.md (mve_vabdq_f<mode>): Define RTL pattern.
>       (mve_vaddlvaq_<supf>v4si): Likewise.
>       (mve_vaddq_n_f<mode>): Likewise.
>       (mve_vandq_f<mode>): Likewise.
>       (mve_vbicq_f<mode>): Likewise.
>       (mve_vbicq_n_<supf><mode>): Likewise.
>       (mve_vcaddq_rot270_f<mode>): Likewise.
>       (mve_vcaddq_rot90_f<mode>): Likewise.
>       (mve_vcmpeqq_f<mode>): Likewise.
>       (mve_vcmpeqq_n_f<mode>): Likewise.
>       (mve_vcmpgeq_f<mode>): Likewise.
>       (mve_vcmpgeq_n_f<mode>): Likewise.
>       (mve_vcmpgtq_f<mode>): Likewise.
>       (mve_vcmpgtq_n_f<mode>): Likewise.
>       (mve_vcmpleq_f<mode>): Likewise.
>       (mve_vcmpleq_n_f<mode>): Likewise.
>       (mve_vcmpltq_f<mode>): Likewise.
>       (mve_vcmpltq_n_f<mode>): Likewise.
>       (mve_vcmpneq_f<mode>): Likewise.
>       (mve_vcmpneq_n_f<mode>): Likewise.
>       (mve_vcmulq_f<mode>): Likewise.
>       (mve_vcmulq_rot180_f<mode>): Likewise.
>       (mve_vcmulq_rot270_f<mode>): Likewise.
>       (mve_vcmulq_rot90_f<mode>): Likewise.
>       (mve_vctp<mode1>q_mhi): Likewise.
>       (mve_vcvtbq_f16_f32v8hf): Likewise.
>       (mve_vcvttq_f16_f32v8hf): Likewise.
>       (mve_veorq_f<mode>): Likewise.
>       (mve_vmaxnmaq_f<mode>): Likewise.
>       (mve_vmaxnmavq_f<mode>): Likewise.
>       (mve_vmaxnmq_f<mode>): Likewise.
>       (mve_vmaxnmvq_f<mode>): Likewise.
>       (mve_vminnmaq_f<mode>): Likewise.
>       (mve_vminnmavq_f<mode>): Likewise.
>       (mve_vminnmq_f<mode>): Likewise.
>       (mve_vminnmvq_f<mode>): Likewise.
>       (mve_vmlaldavq_<supf><mode>): Likewise.
>       (mve_vmlaldavxq_<supf><mode>): Likewise.
>       (mve_vmlsldavq_s<mode>): Likewise.
>       (mve_vmlsldavxq_s<mode>): Likewise.
>       (mve_vmovnbq_<supf><mode>): Likewise.
>       (mve_vmovntq_<supf><mode>): Likewise.
>       (mve_vmulq_f<mode>): Likewise.
>       (mve_vmulq_n_f<mode>): Likewise.
>       (mve_vornq_f<mode>): Likewise.
>       (mve_vorrq_f<mode>): Likewise.
>       (mve_vorrq_n_<supf><mode>): Likewise.
>       (mve_vqdmullbq_n_s<mode>): Likewise.
>       (mve_vqdmullbq_s<mode>): Likewise.
>       (mve_vqdmulltq_n_s<mode>): Likewise.
>       (mve_vqdmulltq_s<mode>): Likewise.
>       (mve_vqmovnbq_<supf><mode>): Likewise.
>       (mve_vqmovntq_<supf><mode>): Likewise.
>       (mve_vqmovunbq_s<mode>): Likewise.
>       (mve_vqmovuntq_s<mode>): Likewise.
>       (mve_vrmlaldavhxq_sv4si): Likewise.
>       (mve_vrmlsldavhq_sv4si): Likewise.
>       (mve_vrmlsldavhxq_sv4si): Likewise.
>       (mve_vshllbq_n_<supf><mode>): Likewise.
>       (mve_vshlltq_n_<supf><mode>): Likewise.
>       (mve_vsubq_f<mode>): Likewise.
>       (mve_vmulltq_poly_p<mode>): Likewise.
>       (mve_vmullbq_poly_p<mode>): Likewise.
>       (mve_vrmlaldavhq_<supf>v4si): Likewise.
> 
> gcc/testsuite/ChangeLog:
> 
> 2019-10-23  Andre Vieira  <andre.simoesdiasvie...@arm.com>
>           Mihail Ionescu  <mihail.ione...@arm.com>
>           Srinath Parvathaneni  <srinath.parvathan...@arm.com>
> 
>       * gcc.target/arm/mve/intrinsics/vabdq_f16.c: New test.
>       * gcc.target/arm/mve/intrinsics/vabdq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vaddlvaq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vaddlvaq_u32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vaddq_n_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vaddq_n_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vandq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vandq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vbicq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vbicq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vbicq_n_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vbicq_n_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vbicq_n_u16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vbicq_n_u32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcaddq_rot270_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcaddq_rot270_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcaddq_rot90_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcaddq_rot90_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpeqq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpeqq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpeqq_n_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpeqq_n_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpgeq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpgeq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpgeq_n_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpgeq_n_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpgtq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpgtq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpgtq_n_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpgtq_n_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpleq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpleq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpleq_n_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpleq_n_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpltq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpltq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpltq_n_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpltq_n_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpneq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpneq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpneq_n_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmpneq_n_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmulq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmulq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmulq_rot180_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmulq_rot180_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmulq_rot270_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmulq_rot270_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmulq_rot90_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcmulq_rot90_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vctp16q_m.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vctp32q_m.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vctp64q_m.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vctp8q_m.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcvtbq_f16_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vcvttq_f16_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/veorq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/veorq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmaxnmaq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmaxnmaq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmaxnmavq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmaxnmavq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmaxnmq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmaxnmq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmaxnmvq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmaxnmvq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vminnmaq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vminnmaq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vminnmavq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vminnmavq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vminnmq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vminnmq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vminnmvq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vminnmvq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmlaldavq_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmlaldavq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmlaldavq_u16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmlaldavq_u32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmlaldavxq_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmlaldavxq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmlaldavxq_u16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmlaldavxq_u32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmlsldavq_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmlsldavq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmlsldavxq_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmlsldavxq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmovnbq_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmovnbq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmovnbq_u16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmovnbq_u32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmovntq_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmovntq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmovntq_u16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmovntq_u32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmullbq_poly_p16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmullbq_poly_p8.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmulltq_poly_p16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmulltq_poly_p8.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmulq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmulq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmulq_n_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vmulq_n_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vornq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vornq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vorrq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vorrq_f32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vorrq_n_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vorrq_n_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vorrq_n_u16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vorrq_n_u32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqdmullbq_n_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqdmullbq_n_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqdmullbq_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqdmullbq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqdmulltq_n_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqdmulltq_n_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqdmulltq_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqdmulltq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqmovnbq_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqmovnbq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqmovnbq_u16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqmovnbq_u32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqmovntq_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqmovntq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqmovntq_u16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqmovntq_u32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqmovunbq_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqmovunbq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqmovuntq_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vqmovuntq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vrmlaldavhq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vrmlaldavhq_u32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vrmlaldavhxq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vrmlsldavhq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vrmlsldavhxq_s32.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vshllbq_n_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vshllbq_n_s8.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vshllbq_n_u16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vshllbq_n_u8.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vshlltq_n_s16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vshlltq_n_s8.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vshlltq_n_u16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vshlltq_n_u8.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vsubq_f16.c: Likewise.
>       * gcc.target/arm/mve/intrinsics/vsubq_f32.c: Likewise.

Reply via email to