Commit dccc54d2 by Srinath Parvathaneni

[PATCH][GCC] arm: Fix the MVE ACLE vaddq_m polymorphic variants.

Hello,

This patch fixes the MVE ACLE vaddq_m polymorphic variants by modifying the corresponding
intrinsic parameters and vaddq_m polymorphic variant's _Generic case entries in "arm_mve.h"
header file.

2020-06-04  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>

gcc/
	* config/arm/arm_mve.h (__arm_vaddq_m_n_s8): Correct the intrinsic
	arguments.
	(__arm_vaddq_m_n_s32): Likewise.
	(__arm_vaddq_m_n_s16): Likewise.
	(__arm_vaddq_m_n_u8): Likewise.
	(__arm_vaddq_m_n_u32): Likewise.
	(__arm_vaddq_m_n_u16): Likewise.
	(__arm_vaddq_m): Modify polymorphic variant.

gcc/testsuite/
	* gcc.target/arm/mve/intrinsics/mve_vaddq_m.c: New test.

(cherry picked from commit dc39db873670bea8d8e655444387ceaa53a01a79)
parent 824d48ec
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
/* { dg-add-options arm_v8_1m_mve_fp } */
/* { dg-additional-options "-O2" } */
#include <arm_mve.h>
mve_pred16_t p;
int32x4_t fn1 (int32x4_t vecIdx)
{
return vaddq_m(vuninitializedq_s32(), vecIdx, 1, p);
}
int16x8_t fn2 (int16x8_t vecIdx)
{
return vaddq_m(vuninitializedq_s16(), vecIdx, 1, p);
}
int8x16_t fn3 (int8x16_t vecIdx)
{
return vaddq_m(vuninitializedq_s8(), vecIdx, 1, p);
}
uint32x4_t fn4 (uint32x4_t vecIdx)
{
return vaddq_m(vuninitializedq_u32(), vecIdx, 1, p);
}
uint16x8_t fn5 (uint16x8_t vecIdx)
{
return vaddq_m(vuninitializedq_u16(), vecIdx, 1, p);
}
uint8x16_t fn6 (uint8x16_t vecIdx)
{
return vaddq_m(vuninitializedq_u8(), vecIdx, 1, p);
}
float32x4_t fn7 (float32x4_t vecIdx)
{
return vaddq_m(vuninitializedq_f32(), vecIdx, (float32_t) 1.23, p);
}
float16x8_t fn8 (float16x8_t vecIdx)
{
return vaddq_m(vuninitializedq_f16(), vecIdx, (float16_t) 1.40, p);
}
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
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