Commit 0f3cc1b3 by Andre Simoes Dias Vieira Committed by Andre Vieira

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.
parent 434fe1a4
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -15,7 +15,7 @@ foo (float16x8_t a, float16_t b)
float16x8_t
foo1 (float16x8_t a, float16_t b)
{
return vmulq_n (a, b);
return vmulq (a, b);
}
/* { dg-final { scan-assembler "vmul.f16" } } */
......@@ -15,7 +15,7 @@ foo (float32x4_t a, float32_t b)
float32x4_t
foo1 (float32x4_t a, float32_t b)
{
return vmulq_n (a, b);
return vmulq (a, b);
}
/* { dg-final { scan-assembler "vmul.f32" } } */
......@@ -15,7 +15,7 @@ foo (int16x8_t a, int16_t b)
int16x8_t
foo1 (int16x8_t a, int16_t b)
{
return vmulq_n (a, b);
return vmulq (a, b);
}
/* { dg-final { scan-assembler "vmul.i16" } } */
......@@ -15,7 +15,7 @@ foo (int32x4_t a, int32_t b)
int32x4_t
foo1 (int32x4_t a, int32_t b)
{
return vmulq_n (a, b);
return vmulq (a, b);
}
/* { dg-final { scan-assembler "vmul.i32" } } */
......@@ -15,7 +15,7 @@ foo (int8x16_t a, int8_t b)
int8x16_t
foo1 (int8x16_t a, int8_t b)
{
return vmulq_n (a, b);
return vmulq (a, b);
}
/* { dg-final { scan-assembler "vmul.i8" } } */
......@@ -15,7 +15,7 @@ foo (uint16x8_t a, uint16_t b)
uint16x8_t
foo1 (uint16x8_t a, uint16_t b)
{
return vmulq_n (a, b);
return vmulq (a, b);
}
/* { dg-final { scan-assembler "vmul.i16" } } */
......@@ -15,7 +15,7 @@ foo (uint32x4_t a, uint32_t b)
uint32x4_t
foo1 (uint32x4_t a, uint32_t b)
{
return vmulq_n (a, b);
return vmulq (a, b);
}
/* { dg-final { scan-assembler "vmul.i32" } } */
......@@ -15,7 +15,7 @@ foo (uint8x16_t a, uint8_t b)
uint8x16_t
foo1 (uint8x16_t a, uint8_t b)
{
return vmulq_n (a, b);
return vmulq (a, b);
}
/* { dg-final { scan-assembler "vmul.i8" } } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment