arm: Mve testsuite improvements
Hello all, this patch improves a number of MVE tests in the testsuite for more precise and better coverage using check-function-bodies instead of scan-assembler checks. Also all intrusctions prescribed in the ACLE[1] are now checked. Best Regards Andrea [1] <https://github.com/ARM-software/acle> gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vld1q_f16.c: Use check-function-bodies instead of scan-assembler checks. Use extern "C" for C++ testing. * gcc.target/arm/mve/intrinsics/vld1q_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_z_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_z_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_z_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_z_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_z_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_z_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_z_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vld1q_z_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vld4q_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vld4q_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vld4q_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vld4q_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vld4q_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vld4q_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vld4q_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vld4q_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_gather_offset_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_gather_offset_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_gather_offset_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_gather_offset_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_gather_offset_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_gather_offset_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_gather_offset_z_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_gather_offset_z_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_gather_offset_z_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_gather_offset_z_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_gather_offset_z_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_gather_offset_z_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_z_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_z_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_z_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_z_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_z_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrbq_z_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_s64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_u64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_z_s64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_z_u64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_offset_s64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_offset_u64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_offset_z_s64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_offset_z_u64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_shifted_offset_s64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_shifted_offset_u64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_shifted_offset_z_s64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrdq_gather_shifted_offset_z_u64.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_offset_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_offset_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_offset_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_offset_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_offset_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_offset_z_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_offset_z_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_offset_z_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_offset_z_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_offset_z_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_shifted_offset_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_shifted_offset_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_shifted_offset_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_shifted_offset_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_shifted_offset_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_shifted_offset_z_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_shifted_offset_z_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_shifted_offset_z_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_shifted_offset_z_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_gather_shifted_offset_z_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_z_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_z_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_z_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_z_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrhq_z_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_base_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_base_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_base_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_base_wb_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_base_wb_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_base_wb_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_base_wb_z_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_base_wb_z_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_base_wb_z_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_base_z_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_base_z_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_base_z_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_offset_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_offset_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_offset_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_offset_z_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_offset_z_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_offset_z_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_shifted_offset_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_shifted_offset_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_shifted_offset_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_shifted_offset_z_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_shifted_offset_z_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_gather_shifted_offset_z_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_z_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_z_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vldrwq_z_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vst2q_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vst2q_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vst2q_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vst2q_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vst2q_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vst2q_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vst2q_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vst2q_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vst4q_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vst4q_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vst4q_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vst4q_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vst4q_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vst4q_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vst4q_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vst4q_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_p_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_p_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_p_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_p_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_p_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_p_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrbq_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_p_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_p_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_p_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_p_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_p_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_u16.c: Likewise. * gcc.target/arm/mve/intrinsics/vstrhq_u32.c: Likewise.
This commit is contained in:
parent
b14af30496
commit
ebce8ee899
194 changed files with 5171 additions and 1035 deletions
|
@ -1,20 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo (float16_t const * base)
|
||||
foo (float16_t const *base)
|
||||
{
|
||||
return vld1q_f16 (base);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo1 (float16_t const * base)
|
||||
foo1 (float16_t const *base)
|
||||
{
|
||||
return vld1q (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrh.16" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,20 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrw.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float32x4_t
|
||||
foo (float32_t const * base)
|
||||
foo (float32_t const *base)
|
||||
{
|
||||
return vld1q_f32 (base);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrw.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float32x4_t
|
||||
foo1 (float32_t const * base)
|
||||
foo1 (float32_t const *base)
|
||||
{
|
||||
return vld1q (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrw.32" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,20 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo (int16_t const * base)
|
||||
foo (int16_t const *base)
|
||||
{
|
||||
return vld1q_s16 (base);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo1 (int16_t const * base)
|
||||
foo1 (int16_t const *base)
|
||||
{
|
||||
return vld1q (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrh.16" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,20 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrw.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (int32_t const * base)
|
||||
foo (int32_t const *base)
|
||||
{
|
||||
return vld1q_s32 (base);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrw.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo1 (int32_t const * base)
|
||||
foo1 (int32_t const *base)
|
||||
{
|
||||
return vld1q (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrw.32" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,20 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.8 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int8x16_t
|
||||
foo (int8_t const * base)
|
||||
foo (int8_t const *base)
|
||||
{
|
||||
return vld1q_s8 (base);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrb.8 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int8x16_t
|
||||
foo1 (int8_t const * base)
|
||||
foo1 (int8_t const *base)
|
||||
{
|
||||
return vld1q (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrb.8" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,20 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo (uint16_t const * base)
|
||||
foo (uint16_t const *base)
|
||||
{
|
||||
return vld1q_u16 (base);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo1 (uint16_t const * base)
|
||||
foo1 (uint16_t const *base)
|
||||
{
|
||||
return vld1q (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrh.16" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,20 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrw.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint32_t const * base)
|
||||
foo (uint32_t const *base)
|
||||
{
|
||||
return vld1q_u32 (base);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrw.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo1 (uint32_t const * base)
|
||||
foo1 (uint32_t const *base)
|
||||
{
|
||||
return vld1q (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrw.32" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,20 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.8 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint8x16_t
|
||||
foo (uint8_t const * base)
|
||||
foo (uint8_t const *base)
|
||||
{
|
||||
return vld1q_u8 (base);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrb.8 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint8x16_t
|
||||
foo1 (uint8_t const * base)
|
||||
foo1 (uint8_t const *base)
|
||||
{
|
||||
return vld1q (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrb.8" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo (float16_t const * base, mve_pred16_t p)
|
||||
foo (float16_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z_f16 (base, p);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo1 (float16_t const * base, mve_pred16_t p)
|
||||
foo1 (float16_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrht.16" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrwt.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float32x4_t
|
||||
foo (float32_t const * base, mve_pred16_t p)
|
||||
foo (float32_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z_f32 (base, p);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrwt.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float32x4_t
|
||||
foo1 (float32_t const * base, mve_pred16_t p)
|
||||
foo1 (float32_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrwt.32" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo (int16_t const * base, mve_pred16_t p)
|
||||
foo (int16_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z_s16 (base, p);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo1 (int16_t const * base, mve_pred16_t p)
|
||||
foo1 (int16_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrht.16" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrwt.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (int32_t const * base, mve_pred16_t p)
|
||||
foo (int32_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z_s32 (base, p);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrwt.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo1 (int32_t const * base, mve_pred16_t p)
|
||||
foo1 (int32_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrwt.32" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.8 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int8x16_t
|
||||
foo (int8_t const * base, mve_pred16_t p)
|
||||
foo (int8_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z_s8 (base, p);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.8 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int8x16_t
|
||||
foo1 (int8_t const * base, mve_pred16_t p)
|
||||
foo1 (int8_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrbt.8" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo (uint16_t const * base, mve_pred16_t p)
|
||||
foo (uint16_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z_u16 (base, p);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo1 (uint16_t const * base, mve_pred16_t p)
|
||||
foo1 (uint16_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrht.16" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrwt.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint32_t const * base, mve_pred16_t p)
|
||||
foo (uint32_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z_u32 (base, p);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrwt.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo1 (uint32_t const * base, mve_pred16_t p)
|
||||
foo1 (uint32_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrwt.32" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.8 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint8x16_t
|
||||
foo (uint8_t const * base, mve_pred16_t p)
|
||||
foo (uint8_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z_u8 (base, p);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.8 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint8x16_t
|
||||
foo1 (uint8_t const * base, mve_pred16_t p)
|
||||
foo1 (uint8_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vld1q_z (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrbt.8" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,24 +1,47 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vld40.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
float16x8x4_t
|
||||
foo (float16_t const * addr)
|
||||
foo (float16_t const *addr)
|
||||
{
|
||||
return vld4q_f16 (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.16" } } */
|
||||
/* { dg-final { scan-assembler "vld41.16" } } */
|
||||
/* { dg-final { scan-assembler "vld42.16" } } */
|
||||
/* { dg-final { scan-assembler "vld43.16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vld40.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
float16x8x4_t
|
||||
foo1 (float16_t const * addr)
|
||||
foo1 (float16_t const *addr)
|
||||
{
|
||||
return vld4q (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,24 +1,47 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vld40.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
float32x4x4_t
|
||||
foo (float32_t const * addr)
|
||||
foo (float32_t const *addr)
|
||||
{
|
||||
return vld4q_f32 (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.32" } } */
|
||||
/* { dg-final { scan-assembler "vld41.32" } } */
|
||||
/* { dg-final { scan-assembler "vld42.32" } } */
|
||||
/* { dg-final { scan-assembler "vld43.32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vld40.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
float32x4x4_t
|
||||
foo1 (float32_t const * addr)
|
||||
foo1 (float32_t const *addr)
|
||||
{
|
||||
return vld4q (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,24 +1,47 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vld40.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
int16x8x4_t
|
||||
foo (int16_t const * addr)
|
||||
foo (int16_t const *addr)
|
||||
{
|
||||
return vld4q_s16 (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.16" } } */
|
||||
/* { dg-final { scan-assembler "vld41.16" } } */
|
||||
/* { dg-final { scan-assembler "vld42.16" } } */
|
||||
/* { dg-final { scan-assembler "vld43.16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vld40.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
int16x8x4_t
|
||||
foo1 (int16_t const * addr)
|
||||
foo1 (int16_t const *addr)
|
||||
{
|
||||
return vld4q (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,24 +1,47 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vld40.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
int32x4x4_t
|
||||
foo (int32_t const * addr)
|
||||
foo (int32_t const *addr)
|
||||
{
|
||||
return vld4q_s32 (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.32" } } */
|
||||
/* { dg-final { scan-assembler "vld41.32" } } */
|
||||
/* { dg-final { scan-assembler "vld42.32" } } */
|
||||
/* { dg-final { scan-assembler "vld43.32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vld40.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
int32x4x4_t
|
||||
foo1 (int32_t const * addr)
|
||||
foo1 (int32_t const *addr)
|
||||
{
|
||||
return vld4q (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,24 +1,47 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vld40.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
int8x16x4_t
|
||||
foo (int8_t const * addr)
|
||||
foo (int8_t const *addr)
|
||||
{
|
||||
return vld4q_s8 (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.8" } } */
|
||||
/* { dg-final { scan-assembler "vld41.8" } } */
|
||||
/* { dg-final { scan-assembler "vld42.8" } } */
|
||||
/* { dg-final { scan-assembler "vld43.8" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vld40.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
int8x16x4_t
|
||||
foo1 (int8_t const * addr)
|
||||
foo1 (int8_t const *addr)
|
||||
{
|
||||
return vld4q (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.8" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,24 +1,47 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vld40.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
uint16x8x4_t
|
||||
foo (uint16_t const * addr)
|
||||
foo (uint16_t const *addr)
|
||||
{
|
||||
return vld4q_u16 (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.16" } } */
|
||||
/* { dg-final { scan-assembler "vld41.16" } } */
|
||||
/* { dg-final { scan-assembler "vld42.16" } } */
|
||||
/* { dg-final { scan-assembler "vld43.16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vld40.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.16 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
uint16x8x4_t
|
||||
foo1 (uint16_t const * addr)
|
||||
foo1 (uint16_t const *addr)
|
||||
{
|
||||
return vld4q (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,24 +1,47 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vld40.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
uint32x4x4_t
|
||||
foo (uint32_t const * addr)
|
||||
foo (uint32_t const *addr)
|
||||
{
|
||||
return vld4q_u32 (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.32" } } */
|
||||
/* { dg-final { scan-assembler "vld41.32" } } */
|
||||
/* { dg-final { scan-assembler "vld42.32" } } */
|
||||
/* { dg-final { scan-assembler "vld43.32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vld40.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.32 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
uint32x4x4_t
|
||||
foo1 (uint32_t const * addr)
|
||||
foo1 (uint32_t const *addr)
|
||||
{
|
||||
return vld4q (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,24 +1,47 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vld40.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
uint8x16x4_t
|
||||
foo (uint8_t const * addr)
|
||||
foo (uint8_t const *addr)
|
||||
{
|
||||
return vld4q_u8 (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.8" } } */
|
||||
/* { dg-final { scan-assembler "vld41.8" } } */
|
||||
/* { dg-final { scan-assembler "vld42.8" } } */
|
||||
/* { dg-final { scan-assembler "vld43.8" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vld40.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld41.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld42.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** vld43.8 {q[0-9+], q[0-9+], q[0-9+], q[0-9+]}, \[r[0-9+]\]
|
||||
** ...
|
||||
*/
|
||||
uint8x16x4_t
|
||||
foo1 (uint8_t const * addr)
|
||||
foo1 (uint8_t const *addr)
|
||||
{
|
||||
return vld4q (addr);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vld40.8" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.s16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo (int8_t const * base, uint16x8_t offset)
|
||||
foo (int8_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrbq_gather_offset_s16 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.s16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrb.s16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo1 (int8_t const * base, uint16x8_t offset)
|
||||
foo1 (int8_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrbq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.s16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (int8_t const * base, uint32x4_t offset)
|
||||
foo (int8_t const *base, uint32x4_t offset)
|
||||
{
|
||||
return vldrbq_gather_offset_s32 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.s32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrb.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo1 (int8_t const * base, uint32x4_t offset)
|
||||
foo1 (int8_t const *base, uint32x4_t offset)
|
||||
{
|
||||
return vldrbq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.s32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.u8 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int8x16_t
|
||||
foo (int8_t const * base, uint8x16_t offset)
|
||||
foo (int8_t const *base, uint8x16_t offset)
|
||||
{
|
||||
return vldrbq_gather_offset_s8 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.u8" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrb.u8 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int8x16_t
|
||||
foo1 (int8_t const * base, uint8x16_t offset)
|
||||
foo1 (int8_t const *base, uint8x16_t offset)
|
||||
{
|
||||
return vldrbq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.u8" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo (uint8_t const * base, uint16x8_t offset)
|
||||
foo (uint8_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrbq_gather_offset_u16 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.u16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrb.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo1 (uint8_t const * base, uint16x8_t offset)
|
||||
foo1 (uint8_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrbq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.u16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint8_t const * base, uint32x4_t offset)
|
||||
foo (uint8_t const *base, uint32x4_t offset)
|
||||
{
|
||||
return vldrbq_gather_offset_u32 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.u32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrb.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo1 (uint8_t const * base, uint32x4_t offset)
|
||||
foo1 (uint8_t const *base, uint32x4_t offset)
|
||||
{
|
||||
return vldrbq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.u32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.u8 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint8x16_t
|
||||
foo (uint8_t const * base, uint8x16_t offset)
|
||||
foo (uint8_t const *base, uint8x16_t offset)
|
||||
{
|
||||
return vldrbq_gather_offset_u8 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.u8" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrb.u8 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint8x16_t
|
||||
foo1 (uint8_t const * base, uint8x16_t offset)
|
||||
foo1 (uint8_t const *base, uint8x16_t offset)
|
||||
{
|
||||
return vldrbq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.u8" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.s16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo (int8_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo (int8_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_gather_offset_z_s16 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.s16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.s16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo1 (int8_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo1 (int8_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.s16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (int8_t const * base, uint32x4_t offset, mve_pred16_t p)
|
||||
foo (int8_t const *base, uint32x4_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_gather_offset_z_s32 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.s32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo1 (int8_t const * base, uint32x4_t offset, mve_pred16_t p)
|
||||
foo1 (int8_t const *base, uint32x4_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.s32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.u8 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int8x16_t
|
||||
foo (int8_t const * base, uint8x16_t offset, mve_pred16_t p)
|
||||
foo (int8_t const *base, uint8x16_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_gather_offset_z_s8 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.u8" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.u8 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int8x16_t
|
||||
foo1 (int8_t const * base, uint8x16_t offset, mve_pred16_t p)
|
||||
foo1 (int8_t const *base, uint8x16_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.u8" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo (uint8_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo (uint8_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_gather_offset_z_u16 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.u16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo1 (uint8_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo1 (uint8_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.u16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint8_t const * base, uint32x4_t offset, mve_pred16_t p)
|
||||
foo (uint8_t const *base, uint32x4_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_gather_offset_z_u32 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.u32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo1 (uint8_t const * base, uint32x4_t offset, mve_pred16_t p)
|
||||
foo1 (uint8_t const *base, uint32x4_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.u32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.u8 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint8x16_t
|
||||
foo (uint8_t const * base, uint8x16_t offset, mve_pred16_t p)
|
||||
foo (uint8_t const *base, uint8x16_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_gather_offset_z_u8 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.u8" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.u8 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint8x16_t
|
||||
foo1 (uint8_t const * base, uint8x16_t offset, mve_pred16_t p)
|
||||
foo1 (uint8_t const *base, uint8x16_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.u8" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,13 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.s16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo (int8_t const * base)
|
||||
foo (int8_t const *base)
|
||||
{
|
||||
return vldrbq_s16 (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.s16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,13 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (int8_t const * base)
|
||||
foo (int8_t const *base)
|
||||
{
|
||||
return vldrbq_s32 (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.s32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,14 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.8 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int8x16_t
|
||||
foo (int8_t const * base)
|
||||
foo (int8_t const *base)
|
||||
{
|
||||
return vldrbq_s8 (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrb.8" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,13 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo (uint8_t const * base)
|
||||
foo (uint8_t const *base)
|
||||
{
|
||||
return vldrbq_u16 (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.u16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,13 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint8_t const * base)
|
||||
foo (uint8_t const *base)
|
||||
{
|
||||
return vldrbq_u32 (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrb.u32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,14 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrb.8 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint8x16_t
|
||||
foo (uint8_t const * base)
|
||||
foo (uint8_t const *base)
|
||||
{
|
||||
return vldrbq_u8 (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrb.8" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,13 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.s16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo (int8_t const * base, mve_pred16_t p)
|
||||
foo (int8_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_z_s16 (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.s16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,13 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (int8_t const * base, mve_pred16_t p)
|
||||
foo (int8_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_z_s32 (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.s32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,15 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.8 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int8x16_t
|
||||
foo (int8_t const * base, mve_pred16_t p)
|
||||
foo (int8_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_z_s8 (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrbt.8" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,13 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo (uint8_t const * base, mve_pred16_t p)
|
||||
foo (uint8_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_z_u16 (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.u16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,13 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint8_t const * base, mve_pred16_t p)
|
||||
foo (uint8_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_z_u32 (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrbt.u32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,15 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrbt.8 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint8x16_t
|
||||
foo (uint8_t const * base, mve_pred16_t p)
|
||||
foo (uint8_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vldrbq_z_u8 (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrbt.8" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,13 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrd.64 q[0-9]+, \[q[0-9]+, #[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int64x2_t
|
||||
foo (uint64x2_t addr)
|
||||
{
|
||||
return vldrdq_gather_base_s64 (addr, 8);
|
||||
return vldrdq_gather_base_s64 (addr, 0);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrd.64" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,13 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrd.64 q[0-9]+, \[q[0-9]+, #[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint64x2_t
|
||||
foo (uint64x2_t addr)
|
||||
{
|
||||
return vldrdq_gather_base_u64 (addr, 8);
|
||||
return vldrdq_gather_base_u64 (addr, 0);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrd.64" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,16 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrd.64 q[0-9]+, \[q[0-9]+, #[0-9]+\]!(?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int64x2_t
|
||||
foo (uint64x2_t * addr)
|
||||
foo (uint64x2_t *addr)
|
||||
{
|
||||
return vldrdq_gather_base_wb_s64 (addr, 8);
|
||||
return vldrdq_gather_base_wb_s64 (addr, 0);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrd.64\tq\[0-9\]+, \\\[q\[0-9\]+, #\[0-9\]+\\\]!" } } */
|
||||
/* { dg-final { scan-assembler-times "vldrw.u32" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vstrw.32" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,16 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrd.64 q[0-9]+, \[q[0-9]+, #[0-9]+\]!(?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint64x2_t
|
||||
foo (uint64x2_t * addr)
|
||||
foo (uint64x2_t *addr)
|
||||
{
|
||||
return vldrdq_gather_base_wb_u64 (addr, 8);
|
||||
return vldrdq_gather_base_wb_u64 (addr, 0);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrd.64\tq\[0-9\]+, \\\[q\[0-9\]+, #\[0-9\]+\\\]!" } } */
|
||||
/* { dg-final { scan-assembler-times "vldrw.u32" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vstrw.32" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,15 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
int64x2_t foo (uint64x2_t * addr, mve_pred16_t p)
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrdt.u64 q[0-9]+, \[q[0-9]+, #[0-9]+\]!(?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int64x2_t
|
||||
foo (uint64x2_t *addr, mve_pred16_t p)
|
||||
{
|
||||
return vldrdq_gather_base_wb_z_s64 (addr, 1016, p);
|
||||
return vldrdq_gather_base_wb_z_s64 (addr, 0, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vpst" } } */
|
||||
/* { dg-final { scan-assembler "vldrdt.u64\tq\[0-9\]+, \\\[q\[0-9\]+, #\[0-9\]+\\\]!" } } */
|
||||
/* { dg-final { scan-assembler-times "vldrw.u32" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vstrw.32" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,15 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
uint64x2_t foo (uint64x2_t * addr, mve_pred16_t p)
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrdt.u64 q[0-9]+, \[q[0-9]+, #[0-9]+\]!(?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint64x2_t
|
||||
foo (uint64x2_t *addr, mve_pred16_t p)
|
||||
{
|
||||
return vldrdq_gather_base_wb_z_u64 (addr, 8, p);
|
||||
return vldrdq_gather_base_wb_z_u64 (addr, 0, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vpst" } } */
|
||||
/* { dg-final { scan-assembler "vldrdt.u64\tq\[0-9\]+, \\\[q\[0-9\]+, #\[0-9\]+\\\]!" } } */
|
||||
/* { dg-final { scan-assembler-times "vldrw.u32" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vstrw.32" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,13 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrdt.u64 q[0-9]+, \[q[0-9]+, #[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int64x2_t
|
||||
foo (uint64x2_t addr, mve_pred16_t p)
|
||||
{
|
||||
return vldrdq_gather_base_z_s64 (addr, 8, p);
|
||||
return vldrdq_gather_base_z_s64 (addr, 0, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrdt.u64" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,13 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrdt.u64 q[0-9]+, \[q[0-9]+, #[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint64x2_t
|
||||
foo (uint64x2_t addr, mve_pred16_t p)
|
||||
{
|
||||
return vldrdq_gather_base_z_u64 (addr, 8, p);
|
||||
return vldrdq_gather_base_z_u64 (addr, 0, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrdt.u64" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrd.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int64x2_t
|
||||
foo (int64_t const * base, uint64x2_t offset)
|
||||
foo (int64_t const *base, uint64x2_t offset)
|
||||
{
|
||||
return vldrdq_gather_offset_s64 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrd.u64" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrd.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int64x2_t
|
||||
foo1 (int64_t const * base, uint64x2_t offset)
|
||||
foo1 (int64_t const *base, uint64x2_t offset)
|
||||
{
|
||||
return vldrdq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrd.u64" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrd.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint64x2_t
|
||||
foo (uint64_t const * base, uint64x2_t offset)
|
||||
foo (uint64_t const *base, uint64x2_t offset)
|
||||
{
|
||||
return vldrdq_gather_offset_u64 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrd.u64" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrd.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint64x2_t
|
||||
foo1 (uint64_t const * base, uint64x2_t offset)
|
||||
foo1 (uint64_t const *base, uint64x2_t offset)
|
||||
{
|
||||
return vldrdq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrd.u64" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrdt.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int64x2_t
|
||||
foo (int64_t const * base, uint64x2_t offset, mve_pred16_t p)
|
||||
foo (int64_t const *base, uint64x2_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrdq_gather_offset_z_s64 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrdt.u64" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrdt.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int64x2_t
|
||||
foo1 (int64_t const * base, uint64x2_t offset, mve_pred16_t p)
|
||||
foo1 (int64_t const *base, uint64x2_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrdq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrdt.u64" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrdt.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint64x2_t
|
||||
foo (uint64_t const * base, uint64x2_t offset, mve_pred16_t p)
|
||||
foo (uint64_t const *base, uint64x2_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrdq_gather_offset_z_u64 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrdt.u64" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrdt.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint64x2_t
|
||||
foo1 (uint64_t const * base, uint64x2_t offset, mve_pred16_t p)
|
||||
foo1 (uint64_t const *base, uint64x2_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrdq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrdt.u64" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrd.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #3\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int64x2_t
|
||||
foo (int64_t const * base, uint64x2_t offset)
|
||||
foo (int64_t const *base, uint64x2_t offset)
|
||||
{
|
||||
return vldrdq_gather_shifted_offset_s64 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrd.u64" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrd.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #3\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int64x2_t
|
||||
foo1 (int64_t const * base, uint64x2_t offset)
|
||||
foo1 (int64_t const *base, uint64x2_t offset)
|
||||
{
|
||||
return vldrdq_gather_shifted_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrd.u64" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrd.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #3\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint64x2_t
|
||||
foo (uint64_t const * base, uint64x2_t offset)
|
||||
foo (uint64_t const *base, uint64x2_t offset)
|
||||
{
|
||||
return vldrdq_gather_shifted_offset_u64 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrd.u64" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrd.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #3\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint64x2_t
|
||||
foo1 (uint64_t const * base, uint64x2_t offset)
|
||||
foo1 (uint64_t const *base, uint64x2_t offset)
|
||||
{
|
||||
return vldrdq_gather_shifted_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrd.u64" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrdt.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #3\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int64x2_t
|
||||
foo (int64_t const * base, uint64x2_t offset, mve_pred16_t p)
|
||||
foo (int64_t const *base, uint64x2_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrdq_gather_shifted_offset_z_s64 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrdt.u64" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrdt.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #3\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int64x2_t
|
||||
foo1 (int64_t const * base, uint64x2_t offset, mve_pred16_t p)
|
||||
foo1 (int64_t const *base, uint64x2_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrdq_gather_shifted_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrdt.u64" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrdt.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #3\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint64x2_t
|
||||
foo (uint64_t const * base, uint64x2_t offset, mve_pred16_t p)
|
||||
foo (uint64_t const *base, uint64x2_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrdq_gather_shifted_offset_z_u64 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrdt.u64" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrdt.u64 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #3\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint64x2_t
|
||||
foo1 (uint64_t const * base, uint64x2_t offset, mve_pred16_t p)
|
||||
foo1 (uint64_t const *base, uint64x2_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrdq_gather_shifted_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrdt.u64" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,14 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo (float16_t const * base)
|
||||
foo (float16_t const *base)
|
||||
{
|
||||
return vldrhq_f16 (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrh.16" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.f16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo (float16_t const * base, uint16x8_t offset)
|
||||
foo (float16_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrhq_gather_offset_f16 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.f16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.f16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo1 (float16_t const * base, uint16x8_t offset)
|
||||
foo1 (float16_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrhq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.f16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo (int16_t const * base, uint16x8_t offset)
|
||||
foo (int16_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrhq_gather_offset_s16 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.u16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo1 (int16_t const * base, uint16x8_t offset)
|
||||
foo1 (int16_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrhq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.u16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (int16_t const * base, uint32x4_t offset)
|
||||
foo (int16_t const *base, uint32x4_t offset)
|
||||
{
|
||||
return vldrhq_gather_offset_s32 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.s32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo1 (int16_t const * base, uint32x4_t offset)
|
||||
foo1 (int16_t const *base, uint32x4_t offset)
|
||||
{
|
||||
return vldrhq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.s32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo (uint16_t const * base, uint16x8_t offset)
|
||||
foo (uint16_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrhq_gather_offset_u16 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.u16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo1 (uint16_t const * base, uint16x8_t offset)
|
||||
foo1 (uint16_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrhq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.u16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint16_t const * base, uint32x4_t offset)
|
||||
foo (uint16_t const *base, uint32x4_t offset)
|
||||
{
|
||||
return vldrhq_gather_offset_u32 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.u32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo1 (uint16_t const * base, uint32x4_t offset)
|
||||
foo1 (uint16_t const *base, uint32x4_t offset)
|
||||
{
|
||||
return vldrhq_gather_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.u32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.f16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo (float16_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo (float16_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_offset_z_f16 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.f16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.f16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo1 (float16_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo1 (float16_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.f16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo (int16_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo (int16_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_offset_z_s16 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.u16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo1 (int16_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo1 (int16_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.u16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (int16_t const * base, uint32x4_t offset, mve_pred16_t p)
|
||||
foo (int16_t const *base, uint32x4_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_offset_z_s32 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.s32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo1 (int16_t const * base, uint32x4_t offset, mve_pred16_t p)
|
||||
foo1 (int16_t const *base, uint32x4_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.s32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo (uint16_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo (uint16_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_offset_z_u16 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.u16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo1 (uint16_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo1 (uint16_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.u16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint16_t const * base, uint32x4_t offset, mve_pred16_t p)
|
||||
foo (uint16_t const *base, uint32x4_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_offset_z_u32 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.u32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo1 (uint16_t const * base, uint32x4_t offset, mve_pred16_t p)
|
||||
foo1 (uint16_t const *base, uint32x4_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.u32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.f16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo (float16_t const * base, uint16x8_t offset)
|
||||
foo (float16_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_f16 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.f16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.f16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo1 (float16_t const * base, uint16x8_t offset)
|
||||
foo1 (float16_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.f16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo (int16_t const * base, uint16x8_t offset)
|
||||
foo (int16_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_s16 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.u16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo1 (int16_t const * base, uint16x8_t offset)
|
||||
foo1 (int16_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.u16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (int16_t const * base, uint32x4_t offset)
|
||||
foo (int16_t const *base, uint32x4_t offset)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_s32 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.s32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo1 (int16_t const * base, uint32x4_t offset)
|
||||
foo1 (int16_t const *base, uint32x4_t offset)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.s32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo (uint16_t const * base, uint16x8_t offset)
|
||||
foo (uint16_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_u16 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.u16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo1 (uint16_t const * base, uint16x8_t offset)
|
||||
foo1 (uint16_t const *base, uint16x8_t offset)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.u16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,41 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint16_t const * base, uint32x4_t offset)
|
||||
foo (uint16_t const *base, uint32x4_t offset)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_u32 (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.u32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vldrh.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo1 (uint16_t const * base, uint32x4_t offset)
|
||||
foo1 (uint16_t const *base, uint32x4_t offset)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset (base, offset);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrh.u32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.f16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo (float16_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo (float16_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_z_f16 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.f16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.f16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo1 (float16_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo1 (float16_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.f16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo (int16_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo (int16_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_z_s16 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.u16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo1 (int16_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo1 (int16_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.u16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (int16_t const * base, uint32x4_t offset, mve_pred16_t p)
|
||||
foo (int16_t const *base, uint32x4_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_z_s32 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.s32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo1 (int16_t const * base, uint32x4_t offset, mve_pred16_t p)
|
||||
foo1 (int16_t const *base, uint32x4_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.s32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo (uint16_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo (uint16_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_z_u16 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.u16" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u16 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo1 (uint16_t const * base, uint16x8_t offset, mve_pred16_t p)
|
||||
foo1 (uint16_t const *base, uint16x8_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.u16" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,21 +1,49 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint16_t const * base, uint32x4_t offset, mve_pred16_t p)
|
||||
foo (uint16_t const *base, uint32x4_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_z_u32 (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.u32" } } */
|
||||
|
||||
/*
|
||||
**foo1:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+), q[0-9]+, uxtw #1\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo1 (uint16_t const * base, uint32x4_t offset, mve_pred16_t p)
|
||||
foo1 (uint16_t const *base, uint32x4_t offset, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_gather_shifted_offset_z (base, offset, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrht.u32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,14 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo (int16_t const * base)
|
||||
foo (int16_t const *base)
|
||||
{
|
||||
return vldrhq_s16 (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrh.16" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,14 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (int16_t const * base)
|
||||
foo (int16_t const *base)
|
||||
{
|
||||
return vldrhq_s32 (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrh.s32" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,14 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo (uint16_t const * base)
|
||||
foo (uint16_t const *base)
|
||||
{
|
||||
return vldrhq_u16 (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrh.16" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,14 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrh.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint16_t const * base)
|
||||
foo (uint16_t const *base)
|
||||
{
|
||||
return vldrhq_u32 (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrh.u32" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,15 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float16x8_t
|
||||
foo (float16_t const * base, mve_pred16_t p)
|
||||
foo (float16_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_z_f16 (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrht.16" 1 } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
|
|
|
@ -1,15 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int16x8_t
|
||||
foo (int16_t const * base, mve_pred16_t p)
|
||||
foo (int16_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_z_s16 (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrht.16" 1 } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
|
|
|
@ -1,15 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.s32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (int16_t const * base, mve_pred16_t p)
|
||||
foo (int16_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_z_s32 (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrht.s32" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,15 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.16 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint16x8_t
|
||||
foo (uint16_t const * base, mve_pred16_t p)
|
||||
foo (uint16_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_z_u16 (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrht.16" 1 } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
|
|
|
@ -1,15 +1,32 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
|
||||
** ...
|
||||
** vpst(?: @.*|)
|
||||
** ...
|
||||
** vldrht.u32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint16_t const * base, mve_pred16_t p)
|
||||
foo (uint16_t const *base, mve_pred16_t p)
|
||||
{
|
||||
return vldrhq_z_u32 (base, p);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vpst" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vldrht.u32" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
|
@ -1,14 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrw.32 q[0-9]+, \[(?:ip|fp|r[0-9]+)\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float32x4_t
|
||||
foo (float32_t const * base)
|
||||
foo (float32_t const *base)
|
||||
{
|
||||
return vldrwq_f32 (base);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "vldrw.32" 1 } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
|
|
|
@ -1,13 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrw.u32 q[0-9]+, \[q[0-9]+, #[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float32x4_t
|
||||
foo (uint32x4_t addr)
|
||||
{
|
||||
return vldrwq_gather_base_f32 (addr, 4);
|
||||
return vldrwq_gather_base_f32 (addr, 0);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrw.u32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
|
|
|
@ -1,13 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrw.u32 q[0-9]+, \[q[0-9]+, #[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (uint32x4_t addr)
|
||||
{
|
||||
return vldrwq_gather_base_s32 (addr, 4);
|
||||
return vldrwq_gather_base_s32 (addr, 0);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrw.u32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
|
|
|
@ -1,13 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrw.u32 q[0-9]+, \[q[0-9]+, #[0-9]+\](?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
uint32x4_t
|
||||
foo (uint32x4_t addr)
|
||||
{
|
||||
return vldrwq_gather_base_u32 (addr, 4);
|
||||
return vldrwq_gather_base_u32 (addr, 0);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrw.u32" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
|
|
|
@ -1,16 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve_fp } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrw.u32 q[0-9]+, \[q[0-9]+, #[0-9]+\]!(?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
float32x4_t
|
||||
foo (uint32x4_t * addr)
|
||||
foo (uint32x4_t *addr)
|
||||
{
|
||||
return vldrwq_gather_base_wb_f32 (addr, 8);
|
||||
return vldrwq_gather_base_wb_f32 (addr, 0);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrw.32\tq\[0-9\]+, \\\[r\[0-9\]+\\\]" } } */
|
||||
/* { dg-final { scan-assembler "vldrw.u32\tq\[0-9\]+, \\\[q\[0-9\]+, #\[0-9\]+\\\]!" } } */
|
||||
/* { dg-final { scan-assembler "vstrw.32\tq\[0-9\]+, \\\[r\[0-9\]+\\\]" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
|
|
|
@ -1,16 +1,28 @@
|
|||
/* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
||||
/* { dg-add-options arm_v8_1m_mve } */
|
||||
/* { dg-additional-options "-O2" } */
|
||||
/* { dg-final { check-function-bodies "**" "" } } */
|
||||
|
||||
#include "arm_mve.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
**foo:
|
||||
** ...
|
||||
** vldrw.u32 q[0-9]+, \[q[0-9]+, #[0-9]+\]!(?: @.*|)
|
||||
** ...
|
||||
*/
|
||||
int32x4_t
|
||||
foo (uint32x4_t * addr)
|
||||
foo (uint32x4_t *addr)
|
||||
{
|
||||
return vldrwq_gather_base_wb_s32 (addr, 8);
|
||||
return vldrwq_gather_base_wb_s32 (addr, 0);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "vldrw.32\tq\[0-9\]+, \\\[r\[0-9\]+\\\]" } } */
|
||||
/* { dg-final { scan-assembler "vldrw.u32\tq\[0-9\]+, \\\[q\[0-9\]+, #\[0-9\]+\\\]!" } } */
|
||||
/* { dg-final { scan-assembler "vstrw.32\tq\[0-9\]+, \\\[r\[0-9\]+\\\]" } } */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* { dg-final { scan-assembler-not "__ARM_undef" } } */
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue