Hi Srinath, > -----Original Message----- > From: Srinath Parvathaneni <srinath.parvathan...@arm.com> > Sent: 30 September 2020 12:51 > To: gcc-patches@gcc.gnu.org > Cc: Kyrylo Tkachov <kyrylo.tkac...@arm.com> > Subject: [GCC][PATCH] arm: Fix MVE intrinsics polymorphic variants wrongly > generating __ARM_undef type (pr96795). > > Hello, > > This patch fixes (PR96795) MVE intrinsic polymorphic variants vaddq, > vaddq_m, vaddq_x, vcmpeqq_m, > vcmpeqq, vcmpgeq_m, vcmpgeq, vcmpgtq_m, vcmpgtq, vcmpleq_m, > vcmpleq, vcmpltq_m, vcmpltq, > vcmpneq_m, vcmpneq, vfmaq_m, vfmaq, vfmasq_m, vfmasq, vmaxnmavq, > vmaxnmavq_p, vmaxnmvq, > vmaxnmvq_p, vminnmavq, vminnmavq_p, vminnmvq, vminnmvq_p, vmulq_m, > vmulq, vmulq_x, vsetq_lane, > vsubq_m, vsubq and vsubq_x which are incorrectly generating __ARM_undef > and mismatching the passed > floating point scalar arguments. > > Bootstrapped on arm-none-linux-gnueabihf and regression tested on arm- > none-eabi and found no regressions. > > Ok for master? Ok for GCC-10 branch?
Ok for both. Thanks, Kyrill > > Regards, > Srinath. > > gcc/ChangeLog: > > 2020-09-30 Srinath Parvathaneni <srinath.parvathan...@arm.com> > > PR target/96795 > * config/arm/arm_mve.h (__ARM_mve_coerce2): Define. > (__arm_vaddq): Correct the scalar argument. > (__arm_vaddq_m): Likewise. > (__arm_vaddq_x): Likewise. > (__arm_vcmpeqq_m): Likewise. > (__arm_vcmpeqq): Likewise. > (__arm_vcmpgeq_m): Likewise. > (__arm_vcmpgeq): Likewise. > (__arm_vcmpgtq_m): Likewise. > (__arm_vcmpgtq): Likewise. > (__arm_vcmpleq_m): Likewise. > (__arm_vcmpleq): Likewise. > (__arm_vcmpltq_m): Likewise. > (__arm_vcmpltq): Likewise. > (__arm_vcmpneq_m): Likewise. > (__arm_vcmpneq): Likewise. > (__arm_vfmaq_m): Likewise. > (__arm_vfmaq): Likewise. > (__arm_vfmasq_m): Likewise. > (__arm_vfmasq): Likewise. > (__arm_vmaxnmavq): Likewise. > (__arm_vmaxnmavq_p): Likewise. > (__arm_vmaxnmvq): Likewise. > (__arm_vmaxnmvq_p): Likewise. > (__arm_vminnmavq): Likewise. > (__arm_vminnmavq_p): Likewise. > (__arm_vminnmvq): Likewise. > (__arm_vminnmvq_p): Likewise. > (__arm_vmulq_m): Likewise. > (__arm_vmulq): Likewise. > (__arm_vmulq_x): Likewise. > (__arm_vsetq_lane): Likewise. > (__arm_vsubq_m): Likewise. > (__arm_vsubq): Likewise. > (__arm_vsubq_x): Likewise. > > gcc/testsuite/ChangeLog: > > PR target/96795 > * gcc.target/arm/mve/intrinsics/mve_fp_vaddq_n.c: New Test. > * gcc.target/arm/mve/intrinsics/mve_vaddq_n.c: Likewise. > * gcc.target/arm/mve/intrinsics/vaddq_m_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vaddq_m_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vaddq_x_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vaddq_x_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpeqq_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpeqq_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpgeq_m_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpgeq_m_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpgeq_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpgeq_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpgtq_m_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpgtq_m_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpgtq_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpgtq_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpleq_m_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpleq_m_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpleq_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpleq_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpltq_m_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpltq_m_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpltq_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpltq_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpneq_m_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpneq_m_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpneq_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vcmpneq_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vfmaq_m_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vfmaq_m_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vfmaq_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vfmaq_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vfmasq_m_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vfmasq_m_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vfmasq_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vfmasq_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmaxnmavq_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmaxnmavq_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmaxnmavq_p_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmaxnmavq_p_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmaxnmvq_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmaxnmvq_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmaxnmvq_p_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmaxnmvq_p_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vminnmavq_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vminnmavq_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vminnmavq_p_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vminnmavq_p_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vminnmvq_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vminnmvq_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vminnmvq_p_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vminnmvq_p_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulq_m_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulq_m_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulq_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulq_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulq_x_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulq_x_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vsetq_lane_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vsetq_lane_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vsubq_m_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vsubq_m_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vsubq_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vsubq_n_f32-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vsubq_x_n_f16-1.c: Likewise. > * gcc.target/arm/mve/intrinsics/vsubq_x_n_f32-1.c: Likewise.