arm: MVE: Fix polymorphism for scalars and constants
authorAndre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
Tue, 7 Apr 2020 10:13:42 +0000 (11:13 +0100)
committerAndre Vieira <andre.simoesdiasvieira@arm.com>
Tue, 7 Apr 2020 14:43:50 +0000 (15:43 +0100)
commit0f3cc1b3994caca4ee0e470e423208ee5784c67d
treea45a97bc350d28006b2c07c162bffa2636ef7b77
parent434fe1a4092e12e5b518ef0716dc5b315e06118d
arm: MVE: Fix polymorphism for scalars and constants

This patch merges some polymorphic functions that were uncorrectly separating
scalar variants. It also simplifies the way we detect scalars and constants in
mve_typeid.

I also fixed some polymorphic intrinsics that were splitting of scalar cases.

gcc/ChangeLog:
2020-04-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm_mve.h (vsubq_n): Merge with...
(vsubq): ... this.
(vmulq_n): Merge with...
(vmulq): ... this.
(__ARM_mve_typeid): Simplify scalar and constant detection.

gcc/testsuite/ChangeLog:
2020-04-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/arm/mve/intrinsics/vmulq_n_f16.c: Fix test.
* gcc.target/arm/mve/intrinsics/vmulq_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vmulq_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vmulq_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vmulq_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vmulq_n_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vmulq_n_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vmulq_n_u8.c: Likewise.
gcc/config/arm/arm_mve.h
gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_n_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_n_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_n_u8.c