]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
arm: improve tests and fix vcmp*
authorAndrea Corallo <andrea.corallo@arm.com>
Mon, 10 Oct 2022 09:59:58 +0000 (11:59 +0200)
committerAndrea Corallo <andrea.corallo@arm.com>
Mon, 28 Nov 2022 09:06:14 +0000 (10:06 +0100)
gcc/ChangeLog:

* config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Fix
spacing.
* config/arm/arm_mve.h (__arm_vcmpgtq_m, __arm_vcmpleq_m)
(__arm_vcmpltq_m, __arm_vcmpneq_m): Add missing defines.

gcc/testsuite/ChangeLog:

* gcc.target/arm/mve/intrinsics/vcmpcsq_m_n_u16.c: Improve test.
* gcc.target/arm/mve/intrinsics/vcmpcsq_m_n_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpcsq_m_n_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpcsq_m_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpcsq_m_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpcsq_m_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpcsq_n_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpcsq_n_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpcsq_n_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpcsq_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpcsq_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpcsq_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_m_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_n_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_n_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_n_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_n_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpeqq_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_m_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_m_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_m_n_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_m_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_m_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_m_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_m_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_m_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_m_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_m_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_n_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgeq_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_m_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_m_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_m_n_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_m_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_m_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_m_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_m_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_m_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_m_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_m_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_n_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpgtq_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmphiq_m_n_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmphiq_m_n_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmphiq_m_n_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmphiq_m_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmphiq_m_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmphiq_m_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmphiq_n_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmphiq_n_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmphiq_n_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmphiq_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmphiq_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmphiq_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_m_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_m_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_m_n_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_m_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_m_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_m_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_m_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_m_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_m_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_m_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_n_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpleq_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_m_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_m_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_m_n_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_m_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_m_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_m_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_m_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_m_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_m_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_m_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_n_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpltq_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_n_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_n_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_n_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_n_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_m_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_n_f16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_n_f32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_n_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_n_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_n_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_n_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_n_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_n_u8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_s16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_s32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_s8.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_u16.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_u32.c: Likewise.
* gcc.target/arm/mve/intrinsics/vcmpneq_u8.c: Likewise.

170 files changed:
gcc/config/arm/arm_mve.h
gcc/config/arm/mve.md
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpcsq_m_n_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpcsq_m_n_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpcsq_m_n_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpcsq_m_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpcsq_m_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpcsq_m_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpcsq_n_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpcsq_n_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpcsq_n_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpcsq_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpcsq_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpcsq_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_n_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmphiq_m_n_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmphiq_m_n_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmphiq_m_n_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmphiq_m_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmphiq_m_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmphiq_m_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmphiq_n_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmphiq_n_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmphiq_n_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmphiq_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmphiq_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmphiq_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_n_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_n_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_n_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_f16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_f32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_u8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_s16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_s32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_s8.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_u16.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_u32.c
gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_u8.c

index 073e3711623ba88ef02b75bbb7b76a89f79b5739..684f997520f434b020e718888c467111164ef6a8 100644 (file)
@@ -39229,6 +39229,53 @@ extern void *__ARM_undef;
   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16_t), p2), \
   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32_t), p2));})
 
+
+#define __arm_vcmpgtq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
+  __typeof(p1) __p1 = (p1); \
+  _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
+  int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpgtq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
+  int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpgtq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
+  int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpgtq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
+  int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8_t), p2), \
+  int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16_t), p2), \
+  int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32_t), p2));})
+
+#define __arm_vcmpleq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
+  __typeof(p1) __p1 = (p1); \
+  _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
+  int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpleq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
+  int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpleq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
+  int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpleq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
+  int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpleq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8_t), p2), \
+  int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpleq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16_t), p2), \
+  int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpleq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32_t), p2));})
+
+#define __arm_vcmpltq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
+  __typeof(p1) __p1 = (p1); \
+  _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
+  int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpltq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
+  int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpltq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
+  int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpltq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
+  int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpltq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8_t), p2), \
+  int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpltq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16_t), p2), \
+  int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpltq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32_t), p2));})
+
+#define __arm_vcmpneq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
+  __typeof(p1) __p1 = (p1); \
+  _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
+  int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpneq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
+  int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpneq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
+  int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpneq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
+  int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmpneq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
+  int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmpneq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
+  int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmpneq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \
+  int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8_t), p2), \
+  int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16_t), p2), \
+  int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32_t), p2), \
+  int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8_t), p2), \
+  int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16_t), p2), \
+  int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32_t), p2));})
+
 #define __arm_vdupq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
   __typeof(p1) __p1 = (p1); \
   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
index 6d5270281ecac079380b2aa3f0a361738f81978f..3330a220aeae87e411a8f0f279d828c0fde978f9 100644 (file)
                    (match_operand:MVE_2 2 "s_register_operand" "w")))
   ]
   "TARGET_HAVE_MVE"
-  "vcmp.<mve_cmp_type>%#<V_sz_elem>  <mve_cmp_op>, %q1, %q2"
+  "vcmp.<mve_cmp_type>%#<V_sz_elem>\t<mve_cmp_op>, %q1, %q2"
   [(set_attr "type" "mve_move")
 ])
 
index a1640133012ae11ccd7766e694e0c242a96cb3ab..de9fe5e7d01b2515bc1ae5c336291dad81464e5a 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u16       cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16_t b, mve_pred16_t p)
 {
   return vcmpcsq_m_n_u16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.u16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u16       cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16_t b, mve_pred16_t p)
 {
   return vcmpcsq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u16       cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint16x8_t a, mve_pred16_t p)
+{
+  return vcmpcsq_m (a, 1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index d269ec7e3ab56eaea9e690010705b683b177e02e..04df1b2dc61d01962db8645852b8f1f841b0402f 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u32       cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32_t b, mve_pred16_t p)
 {
   return vcmpcsq_m_n_u32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.u32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u32       cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32_t b, mve_pred16_t p)
 {
   return vcmpcsq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u32       cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint32x4_t a, mve_pred16_t p)
+{
+  return vcmpcsq_m (a, 1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 52c16b3e70f3bc36543fb9e34462fea9d11528a2..34ebadca2488cbb5ad58494b630bd78fed67b827 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u8        cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8_t b, mve_pred16_t p)
 {
   return vcmpcsq_m_n_u8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.u8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u8        cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8_t b, mve_pred16_t p)
 {
   return vcmpcsq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u8        cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint8x16_t a, mve_pred16_t p)
+{
+  return vcmpcsq_m (a, 1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index e68afa316a9cc3fd4a3493aa1d0fe97345461816..bc03bf687debe622add340a1d88b89a315c645dc 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u16       cs, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16x8_t b, mve_pred16_t p)
 {
   return vcmpcsq_m_u16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.u16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u16       cs, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16x8_t b, mve_pred16_t p)
 {
   return vcmpcsq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 05d1b21b2794178a7a05bb63f4600a410b297dee..8e216d49a023abf42567de895587caed0be979a2 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u32       cs, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32x4_t b, mve_pred16_t p)
 {
   return vcmpcsq_m_u32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.u32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u32       cs, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32x4_t b, mve_pred16_t p)
 {
   return vcmpcsq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 4c8a9d0aa2c2b37b9849ba635a2442175a670c16..ac4196a2e484ba473994f0fac5b5f3557fd2ca3d 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u8        cs, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8x16_t b, mve_pred16_t p)
 {
   return vcmpcsq_m_u8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.u8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u8        cs, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8x16_t b, mve_pred16_t p)
 {
   return vcmpcsq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 4124036003efccb93411e59aad825a007775533f..6038f4c8c65f5fb2683e379cd936bdc65ea558d9 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.u16        cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16_t b)
 {
   return vcmpcsq_n_u16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.u16        cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16_t b)
 {
   return vcmpcsq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u16"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.u16        cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint16x8_t a)
+{
+  return vcmpcsq (a, 1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 463c1ee12b41dbcc10b33d90b4526221b5194216..9f39aa761c8f8c4eed8d35be6bad5828405f301f 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.u32        cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32_t b)
 {
   return vcmpcsq_n_u32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.u32        cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32_t b)
 {
   return vcmpcsq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u32"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.u32        cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint32x4_t a)
+{
+  return vcmpcsq (a, 1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 92bc44a4bb6e3712dd5b88e8b8fedbf8111a1cac..0ce2cd13a7bd8f3fd2f72d98cd05008161ab40e1 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.u8 cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8_t b)
 {
   return vcmpcsq_n_u8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.u8 cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8_t b)
 {
   return vcmpcsq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u8"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.u8 cs, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint8x16_t a)
+{
+  return vcmpcsq (a, 1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 26c7d750cef59b22e1f97d8ecdd8fb2b43bec8b2..5598d06875ca62a056fae26b6fcaf482e50edc2f 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.u16        cs, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16x8_t b)
 {
   return vcmpcsq_u16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.u16        cs, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16x8_t b)
 {
   return vcmpcsq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index c91b0e1c2e3ca1cd9208569d4805c3463d1ce665..99b232b05dd9519fc35c58bf30e1e6b074e605ae 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.u32        cs, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32x4_t b)
 {
   return vcmpcsq_u32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.u32        cs, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32x4_t b)
 {
   return vcmpcsq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 51ddab91500e84183b45cc077e4cf6d088631564..571e57135ab46b067e27ab3c4bca52d790e4971a 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.u8 cs, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8x16_t b)
 {
   return vcmpcsq_u8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.u8 cs, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8x16_t b)
 {
   return vcmpcsq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 556351f49843ae368956b59a02721c8f14703f30..57b276a1d4c2a2899804b3c5cc40073f6b8500d3 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f16        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16x8_t b)
 {
   return vcmpeqq_f16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f16        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16x8_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 65b2f240520b921219c8733006de0bbbf0b1d59c..ab1b25e28883fd8a499471a36b4429a01fbb6a6f 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f32        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32x4_t b)
 {
   return vcmpeqq_f32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f32        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32x4_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 91b0ffa0afd61cd3c8f324c271ddaebd98158885..c5587884d0ecb1c37172b3957c958f628c0f9f8d 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16x8_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_f16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16x8_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index d66e9c8be34852542662d9fca7c9e0cacbc6afc2..4e9675fff51a99ac5ea0ee86c958d280f34498eb 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32x4_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_f32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32x4_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 46b3f4499d39586157bc9c556566168cb2ebf4b6..a3cae828e7923587a69d685bc09fe9a4264ace7e 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_n_f16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float16x8_t a, mve_pred16_t p)
+{
+  return vcmpeqq_m (a, 1.1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 7d672c129db20e275c9c9e0825da670ebf51b9c3..a7ce9e0c7e32154d9bec90cb731fbaa111d2db67 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_n_f32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float32x4_t a, mve_pred16_t p)
+{
+  return vcmpeqq_m (a, 1.1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 912d4ad893debe34bddfe87e68b7e388585c280a..7ba481e169fa961d33401a426315eecfc8f7f5c3 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_n_s16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 947c331622da2aa732e609344e5a5bdb4ab9045a..13c88eaabb58fa7036a5c90933f38d4782a45e03 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_n_s32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index e215d655ea23b6cec06f5527955caba946c37c2f..dcf276dee44ef19e850a46ab8a6860ba7891e56e 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_n_s8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index ea4716c450ebfb6b9274f23184af0918ae70c86e..d59d5149a30c38ea12663921af11fbec59263d58 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_n_u16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint16x8_t a, mve_pred16_t p)
+{
+  return vcmpeqq_m (a, 1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 489c6ec0cb386d39a006b7ffbf35c891c1264842..1fbf385d030a17e1c9927b976716434493b7e448 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_n_u32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint32x4_t a, mve_pred16_t p)
+{
+  return vcmpeqq_m (a, 1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index e8dfce432d1f8e0be5a1e94ddf680d585b52c80d..92758c98c9af452cd94b6290a40fd4521135ab7e 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_n_u8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint8x16_t a, mve_pred16_t p)
+{
+  return vcmpeqq_m (a, 1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 7e4c141e5d22c2404bfa05975f5e73e6e472027f..1ea35ed924bfff62273b2c405019a6dfda15fd7c 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16x8_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_s16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16x8_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 904cfb6fe37d3dfc0145ca08930d515c123228f1..a9bc973384254f40c0de1ec9f4c44cf0d109d077 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32x4_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_s32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32x4_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index a7e12164e3231c644c05dfc70a3793c7065f148f..a9fe771a101d23096850eb4d6e248135a0b57b08 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8x16_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_s8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8x16_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 283e1fd036e1012024d67d727ca7f0dd5863ac6d..826901874d7a6cb91c50d705c0a602c444545363 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16x8_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_u16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16x8_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index ad1739bd60996dfde217559bb09a1a59d81a9318..512b7f9c889bb0e1d88505354790ea8881d11980 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32x4_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_u32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32x4_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 595142e9cdafe3ad22c9362ca091d2b10b84a162..01b4507ba632bf44f3de4269ab47a3ed36d3743b 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8x16_t b, mve_pred16_t p)
 {
   return vcmpeqq_m_u8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8x16_t b, mve_pred16_t p)
 {
   return vcmpeqq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index f97209d2322200e73119b981515fa2821ac819d7..cf2812558ffdbfe3bb0ba02b95378195780a80bd 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f16        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16_t b)
 {
   return vcmpeqq_n_f16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f16        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.f16        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float16x8_t a)
+{
+  return vcmpeqq (a, 1.1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index c80843288b2a36240bfd378091f1de524133e4b8..138171742824f27e0eaaf2f2c6220f28c800f34c 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f32        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32_t b)
 {
   return vcmpeqq_n_f32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f32        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.f32        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float32x4_t a)
+{
+  return vcmpeqq (a, 1.1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 69f1f531af4c6f4682de8922d87c78f1ee43c569..bd29828492e56d2f53e2c5219c188e78efe9f2af 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i16        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16_t b)
 {
   return vcmpeqq_n_s16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i16        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 06032dbcc203233e6745b5a26cba7a9d4bdc5679..2a0d84e9b510ca0ba0bf2577eee5e5059e97ca8f 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i32        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32_t b)
 {
   return vcmpeqq_n_s32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i32        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 3ebd88be85be3c2015aaf7ba192d4f3c81c9e804..524bbe9f3cba6f286dca1a65e8bab97ef748bf04 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i8 eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8_t b)
 {
   return vcmpeqq_n_s8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i8 eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 2f6c53a525e5b2ff93adc0ffe8be656528c466b8..3eeaa49aa97182601cbf1249488239d9abe51071 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i16        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16_t b)
 {
   return vcmpeqq_n_u16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i16        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.i16        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint16x8_t a)
+{
+  return vcmpeqq (a, 1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 22fb5be97c575cd51177d6abd9424ebe25622b13..a881bb841af2450d9ca11c4c38f6750692f5ef14 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i32        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32_t b)
 {
   return vcmpeqq_n_u32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i32        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.i32        eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint32x4_t a)
+{
+  return vcmpeqq (a, 1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 79eaeed695018b07de07b50edada9cfdf8967e25..429b2e35eb7afe1f25f325e8c9e9b6dd1a069742 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i8 eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8_t b)
 {
   return vcmpeqq_n_u8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i8 eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.i8 eq, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint8x16_t a)
+{
+  return vcmpeqq (a, 1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 7951ead8a31a6fc9c971813efe925e7fbb1915f6..92a87c087737faf781f7596150838fe4bdd14f8d 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i16        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16x8_t b)
 {
   return vcmpeqq_s16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i16        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16x8_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 659ccb4ac1444bd084e88c17feda51759f7396b5..d3b87d59bfad61fdf1a83a7fe06184de44577ffa 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i32        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32x4_t b)
 {
   return vcmpeqq_s32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i32        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32x4_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 9282ec2a97a7ae17e8f18e63615c8fd83cb1a114..2b71bbf75f61cf7fb404399da6d0c5be8caa225b 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i8 eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8x16_t b)
 {
   return vcmpeqq_s8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i8 eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8x16_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 318b7aa93061d1b570fd7ba180a557ab5479218e..1830b667bb620f2b70e4ac9ba829d87dfbac2434 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i16        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16x8_t b)
 {
   return vcmpeqq_u16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i16        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16x8_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 88e015f1fa346db3a5ddfc640d173094939df0e8..2b2a5f920f359e9d394ffbd4fe40baded0abd3d1 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i32        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32x4_t b)
 {
   return vcmpeqq_u32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i32        eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32x4_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 990a96f7b3f5d0cc6649bed2773888969b78e33e..9450c2033940f07d838d4527069b5427764d2991 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i8 eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8x16_t b)
 {
   return vcmpeqq_u8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i8 eq, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8x16_t b)
 {
   return vcmpeqq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index eea63a2fe506902cff38654e728d916aae3be6d3..fd8bcab4f252f1a8034282a80ed95e03aa5f564d 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f16        ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16x8_t b)
 {
   return vcmpgeq_f16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f16        ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16x8_t b)
 {
   return vcmpgeq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 64243fe3e8c260e32d2c98671e8d5f6c43111d90..a2d50b580e746a62d85a658e3c71b122613abb0a 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f32        ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32x4_t b)
 {
   return vcmpgeq_f32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f32        ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32x4_t b)
 {
   return vcmpgeq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 3588b0a536f03508831ca9499b7f51a365fe6205..a631825fadd2cf58364b7755b495ad1cc9b25d39 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16x8_t b, mve_pred16_t p)
 {
   return vcmpgeq_m_f16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16x8_t b, mve_pred16_t p)
 {
   return vcmpgeq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 8ed1d22e91976072247f8904e758f804982f8f71..b94e0738ef04748092063e965484a18d6571c1e2 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32x4_t b, mve_pred16_t p)
 {
   return vcmpgeq_m_f32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32x4_t b, mve_pred16_t p)
 {
   return vcmpgeq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index d106af8f53b30d93019ffd081cc476bf47575ac3..9f4903d9cfd13e4532cf9e6abfb5b61a47967bb1 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16_t b, mve_pred16_t p)
 {
   return vcmpgeq_m_n_f16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16_t b, mve_pred16_t p)
 {
   return vcmpgeq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float16x8_t a, mve_pred16_t p)
+{
+  return vcmpgeq_m (a, 1.1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 1feef8adb7ff2ea3f4c351a98287e07b80075b3f..679e644f16538ed715169d82778f8fde94a061ef 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32_t b, mve_pred16_t p)
 {
   return vcmpgeq_m_n_f32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32_t b, mve_pred16_t p)
 {
   return vcmpgeq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float32x4_t a, mve_pred16_t p)
+{
+  return vcmpgeq_m (a, 1.1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index c0ad38f6c6f9a9766e454748df11f6f78ddb78dc..45e26d0a77b0c4fa29614c1fe0c4489b7f6daff0 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16_t b, mve_pred16_t p)
 {
   return vcmpgeq_m_n_s16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16_t b, mve_pred16_t p)
 {
   return vcmpgeq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 8974ce4d11ae38d3b2e1927e34b8621807511767..3a6cad921f2691a4b322a208aa995c593674ceef 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32_t b, mve_pred16_t p)
 {
   return vcmpgeq_m_n_s32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32_t b, mve_pred16_t p)
 {
   return vcmpgeq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 981aa1b516c0ddbbf1f2e6f8b0f7d1bed8fe4740..ce1ca30d6eaafc50332b554b76cbb82faf79774c 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8_t b, mve_pred16_t p)
 {
   return vcmpgeq_m_n_s8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8_t b, mve_pred16_t p)
 {
   return vcmpgeq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 587432a6af158b1e2efc2a28cd67bf4826af1b70..51587a38b72dfdaa103b320a1ebf686dbcac4f80 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16x8_t b, mve_pred16_t p)
 {
   return vcmpgeq_m_s16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16x8_t b, mve_pred16_t p)
 {
   return vcmpgeq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index e460a8dcafcb85a828aa8f0050318f6821a9540f..3ff0aaaa414883437880a6400ffb3bd1a8857f04 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32x4_t b, mve_pred16_t p)
 {
   return vcmpgeq_m_s32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32x4_t b, mve_pred16_t p)
 {
   return vcmpgeq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index cde28a314b9868479d83e1c39c89f94f54eceac1..df71ee5794540a515fe7bd47544bda87b2441670 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8x16_t b, mve_pred16_t p)
 {
   return vcmpgeq_m_s8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8x16_t b, mve_pred16_t p)
 {
   return vcmpgeq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 907fa5d50f66143aa0f197e50a295b66a25c861e..2ca1b9d6684e1fd1495fafcf930e26b10702c7a2 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f16        ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16_t b)
 {
   return vcmpgeq_n_f16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f16        ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16_t b)
 {
   return vcmpgeq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.f16        ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float16x8_t a)
+{
+  return vcmpgeq (a, 1.1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index e4d1406c049f5d40f9dc17e6246f63f0d5a6d71e..3af110bd2b2a0e74bd9baca2be4d7f3622ee1929 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f32        ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32_t b)
 {
   return vcmpgeq_n_f32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f32        ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32_t b)
 {
   return vcmpgeq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.f32        ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float32x4_t a)
+{
+  return vcmpgeq (a, 1.1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index f4aad09e78340ddab67edd0e3778d7374e627d58..3c1af8a93ab13c3fe58f194b8f2e70b835db6019 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s16        ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16_t b)
 {
   return vcmpgeq_n_s16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s16        ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16_t b)
 {
   return vcmpgeq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 2baa5204819f21a020d8389f870720bf75c1a4db..8b4e0f426e5d9afaf6f7eb796f852a520ce43c8c 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s32        ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32_t b)
 {
   return vcmpgeq_n_s32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s32        ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32_t b)
 {
   return vcmpgeq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 1dcffcc3050abc067ced0ccbd28b74e28ad351ff..c1669bcdd904377a2eb68f1aaf85556b75d1b512 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s8 ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8_t b)
 {
   return vcmpgeq_n_s8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s8 ge, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8_t b)
 {
   return vcmpgeq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 817ffb2d8ac087d4f9912ad48a86c493db7fd9c0..593c7410dcb99ace90510013440a2a49373cbaa0 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s16        ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16x8_t b)
 {
   return vcmpgeq_s16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s16        ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16x8_t b)
 {
   return vcmpgeq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index d608b7fc9cf88ddb200b9293303f75b5517567ed..9e26ea9938ad33f3c6657f088ee5210c244ce476 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s32        ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32x4_t b)
 {
   return vcmpgeq_s32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s32        ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32x4_t b)
 {
   return vcmpgeq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 506e6cede951bbcf027c1d97beeb669fbf2159ee..3cb2832e15924dcce04058752bc09e651b275060 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s8 ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8x16_t b)
 {
   return vcmpgeq_s8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s8 ge, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8x16_t b)
 {
   return vcmpgeq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index e2bfd7ed156cd373c488981c3578e88c0ddb58c6..8835fe08dba8a8f250106e1038eb1275909f310b 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f16        gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16x8_t b)
 {
   return vcmpgtq_f16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f16        gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16x8_t b)
 {
   return vcmpgtq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 1b4433f0e7635d82b717445f74c9cfaff8fc002a..e14708847089067e76868b6fc31f2d08f86d66fa 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f32        gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32x4_t b)
 {
   return vcmpgtq_f32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f32        gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32x4_t b)
 {
   return vcmpgtq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index def3f90a79d5649b2709e735016fa0f858229d4e..cb9d5f4036fdb7908a86d8be1924e666952c11ea 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16x8_t b, mve_pred16_t p)
 {
   return vcmpgtq_m_f16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16x8_t b, mve_pred16_t p)
 {
   return vcmpgtq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 41a11563f3657d49ff429472952d8a50b943cdf2..b249b831782b55b6b5007d91c89a4b6937a295de 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32x4_t b, mve_pred16_t p)
 {
   return vcmpgtq_m_f32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32x4_t b, mve_pred16_t p)
 {
   return vcmpgtq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 80c86f65825b0147af859a1337e62c8cf660ef5b..b375983f01e2aa8c7cd444d7cf2c89177e4be026 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16_t b, mve_pred16_t p)
 {
   return vcmpgtq_m_n_f16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16_t b, mve_pred16_t p)
 {
   return vcmpgtq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float16x8_t a, mve_pred16_t p)
+{
+  return vcmpgtq_m (a, 1.1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 9b7aaadfe71b2ceee33db3626cd50c9e1c01486c..208a285cb393efe24cef43017307cfa79bc67a47 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32_t b, mve_pred16_t p)
 {
   return vcmpgtq_m_n_f32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32_t b, mve_pred16_t p)
 {
   return vcmpgtq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float32x4_t a, mve_pred16_t p)
+{
+  return vcmpgtq_m (a, 1.1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index c0719d0110ca8400f56b3a321c0a4f150a8276bc..248e3093d2a5de2d71bd561172996585e7dbe805 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16_t b, mve_pred16_t p)
 {
   return vcmpgtq_m_n_s16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16_t b, mve_pred16_t p)
 {
   return vcmpgtq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 26df8cea9fc6551d6aa428a3ba62f8ee0f89a13b..9843288296ea70aa15ddca234a3878575bcdc7bf 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32_t b, mve_pred16_t p)
 {
   return vcmpgtq_m_n_s32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32_t b, mve_pred16_t p)
 {
   return vcmpgtq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index f20c50d69c15006a1ba4be9f8dda0eef075f020e..80f1aa9ead086b52dfb8ebf142dfc7230ac8a819 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8_t b, mve_pred16_t p)
 {
   return vcmpgtq_m_n_s8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8_t b, mve_pred16_t p)
 {
   return vcmpgtq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index da97abceb2e148e2f11471360e0a737be38ba223..9289c00b5afe6da72fad209676f2c1d342355ed8 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16x8_t b, mve_pred16_t p)
 {
   return vcmpgtq_m_s16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16x8_t b, mve_pred16_t p)
 {
   return vcmpgtq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index ab7c218c7af21ca9d0ddaa15180cc24cb817e67e..8a3d7606bb73f6facd098418024bfff3bea2076d 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32x4_t b, mve_pred16_t p)
 {
   return vcmpgtq_m_s32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32x4_t b, mve_pred16_t p)
 {
   return vcmpgtq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 13520d1067bb8e73aa84521d14d96338308dd268..2760795eb860ecf188d8abefc377a34dae1b60c9 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8x16_t b, mve_pred16_t p)
 {
   return vcmpgtq_m_s8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8x16_t b, mve_pred16_t p)
 {
   return vcmpgtq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 98e152cd9991414963bec235a6bfe525c9f52027..9f2a4be319a220fc3c19a0c9aca15704e723207c 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f16        gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16_t b)
 {
   return vcmpgtq_n_f16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f16        gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16_t b)
 {
   return vcmpgtq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.f16        gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float16x8_t a)
+{
+  return vcmpgtq (a, 1.1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 5691e2f9d355ee56b0af350a282481f990884f27..bbf18ebe6e7c1d2e9dd64da0a9d3190aa6c78e5f 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f32        gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32_t b)
 {
   return vcmpgtq_n_f32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f32        gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32_t b)
 {
   return vcmpgtq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.f32        gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float32x4_t a)
+{
+  return vcmpgtq (a, 1.1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index bc3bdbae2da6b5578b9d2ffd89f616ee1ef8fada..d833cb6f58e9a54442013b056accfbe40823a6e1 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s16        gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16_t b)
 {
   return vcmpgtq_n_s16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s16        gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16_t b)
 {
   return vcmpgtq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 409a3f9d808b4606114ab894ff07e32bb4a98530..28cd51b9582982fea769db2c8971cdec39c7c593 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s32        gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32_t b)
 {
   return vcmpgtq_n_s32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s32        gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32_t b)
 {
   return vcmpgtq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 2624307be9dbb4218c5cd2105772da0b7f90bb4f..5a953ca55f42a799aaeea0b9cba3355b65030ebf 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s8 gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8_t b)
 {
   return vcmpgtq_n_s8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s8 gt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8_t b)
 {
   return vcmpgtq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index be19e19f09f160209d3e6ff6a344e75d0f327250..b9c9da486f5b331ea5cc9a5642882d87d03b3b90 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s16        gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16x8_t b)
 {
   return vcmpgtq_s16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s16        gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16x8_t b)
 {
   return vcmpgtq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 95f6c703b9d13c4cbb8f65f58b223b49d9808ef4..0f79385358e577b54768d1c0ed73c5383d4bfb26 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s32        gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32x4_t b)
 {
   return vcmpgtq_s32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s32        gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32x4_t b)
 {
   return vcmpgtq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 8ba180d8e39e6a3b35b7fa2829f70cfef2831b90..f59dad94a57f295df84c7ad7d68670e19a0a152c 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s8 gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8x16_t b)
 {
   return vcmpgtq_s8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s8 gt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8x16_t b)
 {
   return vcmpgtq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 26e5fe3f900d4e8e1c5b736590112985627b9faa..136a2e44259d14074261cd5de840259f241c7236 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u16       hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16_t b, mve_pred16_t p)
 {
   return vcmphiq_m_n_u16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.u16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u16       hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16_t b, mve_pred16_t p)
 {
   return vcmphiq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u16       hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint16x8_t a, mve_pred16_t p)
+{
+  return vcmphiq_m (a, 1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 51396b8d0cde87539814aaab4fced89ee6cf3d44..5640b97afafa1d302c083a745ade9d56f1ca0888 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u32       hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32_t b, mve_pred16_t p)
 {
   return vcmphiq_m_n_u32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.u32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u32       hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32_t b, mve_pred16_t p)
 {
   return vcmphiq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u32       hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint32x4_t a, mve_pred16_t p)
+{
+  return vcmphiq_m (a, 1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 475f2e823459c9f99ce71fa646ae1a25fd57f1f7..e6474e4548713701d19df38ef0c64af02219b229 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u8        hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8_t b, mve_pred16_t p)
 {
   return vcmphiq_m_n_u8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.u8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u8        hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8_t b, mve_pred16_t p)
 {
   return vcmphiq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u8        hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint8x16_t a, mve_pred16_t p)
+{
+  return vcmphiq_m (a, 1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 98ba895fde059f93b2d22bb9c7bb1f890ad1d564..38b9b90c8030b0962ac8b30de333a171335d90a4 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u16       hi, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16x8_t b, mve_pred16_t p)
 {
   return vcmphiq_m_u16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.u16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u16       hi, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16x8_t b, mve_pred16_t p)
 {
   return vcmphiq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index ee561b02d0c44bbed6fa3b32aaa4d93930402bb0..97c8c1dfe05b7a211b28c2840a086be27d55ddd6 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u32       hi, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32x4_t b, mve_pred16_t p)
 {
   return vcmphiq_m_u32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.u32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u32       hi, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32x4_t b, mve_pred16_t p)
 {
   return vcmphiq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 0c5b29e267360b7ff584d87180eeb8bd74af99fd..e2024ccda25cf2f4e9c1799fd4686aadfc41e7ac 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u8        hi, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8x16_t b, mve_pred16_t p)
 {
   return vcmphiq_m_u8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.u8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.u8        hi, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8x16_t b, mve_pred16_t p)
 {
   return vcmphiq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index d39b755441d61988672210032a348344b247b1b3..36107fc7b8d4c4d192e835cd5952131bdaee9aed 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.u16        hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16_t b)
 {
   return vcmphiq_n_u16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.u16        hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16_t b)
 {
   return vcmphiq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u16"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.u16        hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint16x8_t a)
+{
+  return vcmphiq (a, 1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index dbedea9b0787df5523014799a0a6e97e515952d0..d34de8f65c7d04943a9cffabc50ec7f78ef8de29 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.u32        hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32_t b)
 {
   return vcmphiq_n_u32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.u32        hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32_t b)
 {
   return vcmphiq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u32"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.u32        hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint32x4_t a)
+{
+  return vcmphiq (a, 1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 967bb206886b11186b8ca444b8a2f0ff5046bbd5..93a05b1a85706f1275001847b8f687de5ce72dac 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.u8 hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8_t b)
 {
   return vcmphiq_n_u8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.u8 hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8_t b)
 {
   return vcmphiq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u8"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.u8 hi, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint8x16_t a)
+{
+  return vcmphiq (a, 1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index f9399498a993cfe9571e37ff4e17a71956c38db9..40e65dc52f43dcff8540fa70be156e3c8d874ab7 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.u16        hi, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16x8_t b)
 {
   return vcmphiq_u16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.u16        hi, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16x8_t b)
 {
   return vcmphiq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index becdef0696ad881f1fbd31be9c575f37626f4312..d87a4185762d3f49be109e4d840325fe9af1a006 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.u32        hi, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32x4_t b)
 {
   return vcmphiq_u32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.u32        hi, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32x4_t b)
 {
   return vcmphiq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 933cc69507d873faef2b128e587f635c3bcfc86d..80fd2a40b0fc45a60f003fb75c61dd53cd362e06 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.u8 hi, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8x16_t b)
 {
   return vcmphiq_u8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.u8 hi, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8x16_t b)
 {
   return vcmphiq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.u8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index c2e69a5de92cfa61bb43e09721562304fa8c4622..209d81096af63c89b229fe33baa540e80f26fc21 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f16        le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16x8_t b)
 {
   return vcmpleq_f16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f16        le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16x8_t b)
 {
   return vcmpleq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 923aee050d31fb5f08297b7435e26710a33a13a7..b92c5f66fd96bf71d75ff7f080dba7ae52cbbe35 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f32        le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32x4_t b)
 {
   return vcmpleq_f32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f32        le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32x4_t b)
 {
   return vcmpleq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 66a37192985dd5f80cb5194afd869c815f209f9d..e6136898ded99fee3bbd84de010cd4d371c02176 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16x8_t b, mve_pred16_t p)
 {
   return vcmpleq_m_f16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16x8_t b, mve_pred16_t p)
 {
   return vcmpleq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index e679b338d5813d218708201f053385ad2e6a416b..2304e98d25312905bcc41215b31efe3c0593601d 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32x4_t b, mve_pred16_t p)
 {
   return vcmpleq_m_f32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32x4_t b, mve_pred16_t p)
 {
   return vcmpleq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 42049fd57a41c7a4adeaaff4a9973a6af7ad33ca..a61db2817c10419c9bf14f7f080e7f576d2e224f 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16_t b, mve_pred16_t p)
 {
   return vcmpleq_m_n_f16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16_t b, mve_pred16_t p)
 {
   return vcmpleq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float16x8_t a, mve_pred16_t p)
+{
+  return vcmpleq_m (a, 1.1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index c68bd4e59001be711012b57a0240af7c5473ddbd..7a2cdb4059dbec8993e32bbd56081409e17cb46b 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32_t b, mve_pred16_t p)
 {
   return vcmpleq_m_n_f32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32_t b, mve_pred16_t p)
 {
   return vcmpleq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float32x4_t a, mve_pred16_t p)
+{
+  return vcmpleq_m (a, 1.1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 0cdc14455a38d5d56aed40530e9d3210c012840a..69fcab15b8a5d6bd9757f7576da19413ba519f0c 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16_t b, mve_pred16_t p)
 {
   return vcmpleq_m_n_s16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16_t b, mve_pred16_t p)
 {
   return vcmpleq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index a955af8fa2ba0aa48b91deaafacf0a8ddb98e2a4..617ebd6144f1924f6ee77bc9361589fa0fddf2fd 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32_t b, mve_pred16_t p)
 {
   return vcmpleq_m_n_s32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32_t b, mve_pred16_t p)
 {
   return vcmpleq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index d9951e4a8cf5ba56b21d0fc1c74257e85b906637..b8ee50dd55c48ec9c7d55d8d41bb6916c7d5f0af 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8_t b, mve_pred16_t p)
 {
   return vcmpleq_m_n_s8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8_t b, mve_pred16_t p)
 {
   return vcmpleq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index f16aff86ef04c8adfe129f148f0c285cf78102e3..fcc376d6ec364062e119351f1300667959850747 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16x8_t b, mve_pred16_t p)
 {
   return vcmpleq_m_s16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16x8_t b, mve_pred16_t p)
 {
   return vcmpleq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 2c4e659e9cfbf79c43e78e216aa99b4e559eb66b..9983e89d80c890de046b5d31d16a882b73933de2 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32x4_t b, mve_pred16_t p)
 {
   return vcmpleq_m_s32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32x4_t b, mve_pred16_t p)
 {
   return vcmpleq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 69b88cfb3894b8d200663fcbcf7f1773cbb3d6ac..504e4feb5d1d13a665ad0845bff20bd2625690e9 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8x16_t b, mve_pred16_t p)
 {
   return vcmpleq_m_s8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8x16_t b, mve_pred16_t p)
 {
   return vcmpleq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 3fa3c5e0310b7ccecb7bfeca54bc3c153d88c2f0..cfa6dbc07c79abdff3cf2e0efe424b6b0bb04871 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f16        le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16_t b)
 {
   return vcmpleq_n_f16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f16        le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16_t b)
 {
   return vcmpleq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.f16        le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float16x8_t a)
+{
+  return vcmpleq (a, 1.1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 8349de7b68cd07bcbb553e97714648f1f2487524..c89558f4076247d827119f75835752391740a6f8 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f32        le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32_t b)
 {
   return vcmpleq_n_f32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f32        le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32_t b)
 {
   return vcmpleq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.f32        le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float32x4_t a)
+{
+  return vcmpleq (a, 1.1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 5ecae572227c026d7ec5723cb5e5c7815fe864ee..da73fc14b77a6ebbd12994257735413e600699dc 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s16        le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16_t b)
 {
   return vcmpleq_n_s16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s16        le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16_t b)
 {
   return vcmpleq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 02320e7a55271b4fb862d4f0e859c4042f97d24a..0951a5c13fb9946bd6a1c340ddacdf328d633b8d 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s32        le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32_t b)
 {
   return vcmpleq_n_s32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s32        le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32_t b)
 {
   return vcmpleq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index a0ac97328b7128e07170a5c6562706c518c41641..e4553354681e236ce190607c755b052ea888353d 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s8 le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8_t b)
 {
   return vcmpleq_n_s8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s8 le, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8_t b)
 {
   return vcmpleq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 2fb4acd3d74248e2ad1779e74bdd1c74405b91b4..68500da9ddf5f6ace4b4a2eaf2b48d82641e5101 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s16        le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16x8_t b)
 {
   return vcmpleq_s16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s16        le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16x8_t b)
 {
   return vcmpleq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 2ae998efb7c7ce0121e62ad74736590af4b1514f..1966bcd94d3ab5f90a307bb73c94c0b2d733f9b4 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s32        le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32x4_t b)
 {
   return vcmpleq_s32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s32        le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32x4_t b)
 {
   return vcmpleq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index da06b019cc12cc7d32423d6c9e7ba37ef08a769b..e9f6e47e5d6ed44126f5766ea383db6e055ed415 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s8 le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8x16_t b)
 {
   return vcmpleq_s8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s8 le, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8x16_t b)
 {
   return vcmpleq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index eab80b2ddd9eb67392a88a55155bb5ab51ea2a2a..b4958816bd8dba9e5454cea3d11357373375bb24 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f16        lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16x8_t b)
 {
   return vcmpltq_f16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f16        lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16x8_t b)
 {
   return vcmpltq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index f17d16482ddd9f455bfd44688ae7c5cfdc4aca75..752ab2b3e49d22f925fec31898ff340b533af82b 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f32        lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32x4_t b)
 {
   return vcmpltq_f32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f32        lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32x4_t b)
 {
   return vcmpltq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 93c36f3a6130e095ddcef01376be0f9920bcb475..cbaacbe2b47eba4cc3a85a0b006d05f886b7e8e1 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16x8_t b, mve_pred16_t p)
 {
   return vcmpltq_m_f16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16x8_t b, mve_pred16_t p)
 {
   return vcmpltq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index a17f0b02a95e6298a319c143ce0af6d66177d68b..96d0e7c7cc642e72ac94dab712c433e2dd38f4e6 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32x4_t b, mve_pred16_t p)
 {
   return vcmpltq_m_f32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32x4_t b, mve_pred16_t p)
 {
   return vcmpltq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 45d0f51b4d7744869630cf5db9df8f5f023517a6..1e5db53198e777de1bcb8009676bbda2ef215c61 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16_t b, mve_pred16_t p)
 {
   return vcmpltq_m_n_f16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16_t b, mve_pred16_t p)
 {
   return vcmpltq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float16x8_t a, mve_pred16_t p)
+{
+  return vcmpltq_m (a, 1.1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 16e37ccaf8d4ad8e11cea3bdae5133bd753a79e5..77de40ade01fc2c0ed3e946d271e25f22a365574 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32_t b, mve_pred16_t p)
 {
   return vcmpltq_m_n_f32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32_t b, mve_pred16_t p)
 {
   return vcmpltq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float32x4_t a, mve_pred16_t p)
+{
+  return vcmpltq_m (a, 1.1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index d0e322fbede1d30e2e41283c476cbe15a7dbfcef..beebe65a58fd94c37ae9b788499ce4b3d9544ab3 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16_t b, mve_pred16_t p)
 {
   return vcmpltq_m_n_s16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16_t b, mve_pred16_t p)
 {
   return vcmpltq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 7ec7963267a8605ada4047cea8620c8912df69f2..07260c56ed341a3ffeecf25c3756d83b96d61018 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32_t b, mve_pred16_t p)
 {
   return vcmpltq_m_n_s32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32_t b, mve_pred16_t p)
 {
   return vcmpltq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 22434e88cd62db144bce6b413e795e066c5361c8..7d1e9e7fbde5a9a196182aeef5e9359838535c0c 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8_t b, mve_pred16_t p)
 {
   return vcmpltq_m_n_s8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8_t b, mve_pred16_t p)
 {
   return vcmpltq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 359c064078476f871ae5f0587b6ebea67f727ebd..c0f6dfc94321231670efbe6c8965c58e888a8aa3 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16x8_t b, mve_pred16_t p)
 {
   return vcmpltq_m_s16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s16       lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16x8_t b, mve_pred16_t p)
 {
   return vcmpltq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 3df7e89a6f524e784ad0edad882348d9b45a092f..b6fc4700e7369078834b61432f5f4575ae70d310 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32x4_t b, mve_pred16_t p)
 {
   return vcmpltq_m_s32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s32       lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32x4_t b, mve_pred16_t p)
 {
   return vcmpltq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 1055c2b661c88d0aee49845602558d30f928a90b..545b76359add2cbfa769ad24f17ed9704105981c 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8x16_t b, mve_pred16_t p)
 {
   return vcmpltq_m_s8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.s8        lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8x16_t b, mve_pred16_t p)
 {
   return vcmpltq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 2d55af20dd3acb73e4acfe1039be2ec5b867e992..401ef21ba2bc5da13b40188432f0c4dae3e8d83d 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f16        lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16_t b)
 {
   return vcmpltq_n_f16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f16        lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16_t b)
 {
   return vcmpltq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.f16        lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float16x8_t a)
+{
+  return vcmpltq (a, 1.1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 2590ca83c4555e6735d2a9451bbd6827cafc8bf9..380f071e5646a90ac40bd397de85c293244878a3 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f32        lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32_t b)
 {
   return vcmpltq_n_f32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f32        lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32_t b)
 {
   return vcmpltq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.f32        lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float32x4_t a)
+{
+  return vcmpltq (a, 1.1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 169f6ad4610d36d64bde37644c45fcd8c7c479c8..a1d12392dd2ab16bae4a38e831c9f2c93c990298 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s16        lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16_t b)
 {
   return vcmpltq_n_s16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s16        lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16_t b)
 {
   return vcmpltq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 534047c2df3c8c4796ed3075b49f01739942b71c..6332f75f327f557b96ef9853690d1228b5af1296 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s32        lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32_t b)
 {
   return vcmpltq_n_s32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s32        lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32_t b)
 {
   return vcmpltq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index da659f1f2bea43f54622c961128bbcd1eec366ed..e0ac80caeb03713260ee33c845b434a22f05b669 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s8 lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8_t b)
 {
   return vcmpltq_n_s8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s8 lt, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8_t b)
 {
   return vcmpltq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index da4c90a07de8e98e4006bacf4b7d2d1a34baa131..23843ad88f3a017975f0ce196fc1b80d1fac7955 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s16        lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16x8_t b)
 {
   return vcmpltq_s16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s16        lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16x8_t b)
 {
   return vcmpltq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 5dc218a5f40b0e6515f6bee3e901c4caa1a22399..aeb7a6f98968fddaf10867b071669291cbbd7bad 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s32        lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32x4_t b)
 {
   return vcmpltq_s32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s32        lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32x4_t b)
 {
   return vcmpltq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index ea5853c212cdce2a5b837c63451b001837406603..2129b56a5f7da33dc4c2e5c058273deb7b5e6fe8 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.s8 lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8x16_t b)
 {
   return vcmpltq_s8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.s8 lt, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8x16_t b)
 {
   return vcmpltq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.s8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 8d1c6096c56b9dd953dfde9699dc075aa18156f1..c27ea2f0de8495ac2fead1604b4751841cc1ec49 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f16        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16x8_t b)
 {
   return vcmpneq_f16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f16        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16x8_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 860bd69c1299a4d97e127b61a43073a9e7d4f50c..609de44d8e72d1c85126165daa3dca3df81b0337 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f32        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32x4_t b)
 {
   return vcmpneq_f32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f32        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32x4_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index a4e62de7272a993efdf1407defc5b8f9dcee261f..98f22337d61e0c012c48144ac80453e19fac2ee0 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16x8_t b, mve_pred16_t p)
 {
   return vcmpneq_m_f16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16x8_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index b18a2e5fd88cd6261b501722b5faa57c6f83c7cc..7f6e96ae47ea5b1c3e25767e1ea85973ece7f272 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32x4_t b, mve_pred16_t p)
 {
   return vcmpneq_m_f32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32x4_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index c127b3a68f6acc97ba8565ca1565ae3f3791c412..71b3476fb189eef4fb8891bb2bc555bd6b370aaa 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16_t b, mve_pred16_t p)
 {
   return vcmpneq_m_n_f16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f16       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float16x8_t a, mve_pred16_t p)
+{
+  return vcmpneq_m (a, 1.1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index a8423d45708d756304ab8c08960373b8ece33ae7..d6dea8db8657cb967989aca4b018c2a81456c75c 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32_t b, mve_pred16_t p)
 {
   return vcmpneq_m_n_f32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.f32       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float32x4_t a, mve_pred16_t p)
+{
+  return vcmpneq_m (a, 1.1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 63ee1c3bffbce07d34ef4d20c255a78300bfd257..e72c9b62829bac9e107eda15326e022310423ff2 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16_t b, mve_pred16_t p)
 {
   return vcmpneq_m_n_s16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 10f6d448d7657fee96de83cc57eaed0a373f3783..47c90e31f49dd6b0c31a80026aedabaf15c7e7fb 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32_t b, mve_pred16_t p)
 {
   return vcmpneq_m_n_s32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 66e5d158c51af0f3d05caf40b80ca3d84fd49afb..9d9da10004618dce27d8f4b90d4855b16155778b 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8_t b, mve_pred16_t p)
 {
   return vcmpneq_m_n_s8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index ffe6ff919cf8e94a755ed969fc32e637fe1cc5d6..ea8cf24b3583c174256003493949c582d1e0c1ed 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16_t b, mve_pred16_t p)
 {
   return vcmpneq_m_n_u16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint16x8_t a, mve_pred16_t p)
+{
+  return vcmpneq_m (a, 1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 55e796a1138c174eab1d5553d6432b8dda2cc2b5..30291dcdd9bc1bf057016d950fcd5b075324f977 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32_t b, mve_pred16_t p)
 {
   return vcmpneq_m_n_u32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint32x4_t a, mve_pred16_t p)
+{
+  return vcmpneq_m (a, 1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 3c8bd16647a58e522a7d125c9ff25e2ec1194d62..be75376a6916d5c36bfc5292da468bdfd94b2b8d 100644 (file)
@@ -1,22 +1,63 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8_t b, mve_pred16_t p)
 {
   return vcmpneq_m_n_u8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/*
+**foo2:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint8x16_t a, mve_pred16_t p)
+{
+  return vcmpneq_m (a, 1, p);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index d3e1ce0e690ac4b4b88bf549201b58d17aa656f8..60e868141d0746995962403527d3b9bc0c8dda0a 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16x8_t b, mve_pred16_t p)
 {
   return vcmpneq_m_s16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16x8_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index f5602ffd0dafe0f06bcdc77e87c7510fb1085204..780c544bef3d7e0213dc9edff595897f10c699fe 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32x4_t b, mve_pred16_t p)
 {
   return vcmpneq_m_s32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32x4_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 84b8b1617b0ab7fb85e9ff32e2168a5777623f3f..15f6d316cba2f5486568d858d50d3f83ed9cc234 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8x16_t b, mve_pred16_t p)
 {
   return vcmpneq_m_s8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8x16_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 3c8943719bbb3499c9c4fdb180a14988ef3ef2de..300852ed7b3e258baf36dc1c2e406ef5844f9c9d 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16x8_t b, mve_pred16_t p)
 {
   return vcmpneq_m_u16 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i16       ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16x8_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 980cc4124b2b46f4a91756444d26e9d30d8daf6f..227b5f01eca11e0489ee151e28a2b816bf68df2c 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32x4_t b, mve_pred16_t p)
 {
   return vcmpneq_m_u32 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i32       ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32x4_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 2615dcb37b9194bf28bcb552f70648de92e986f8..cfcb59f49cfd722a074bdc9a4cb66112e449da8f 100644 (file)
@@ -1,22 +1,45 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8x16_t b, mve_pred16_t p)
 {
   return vcmpneq_m_u8 (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
-/* { dg-final { scan-assembler "vcmpt.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vmsr    p0, (?:ip|fp|r[0-9]+)(?:        @.*|)
+**     ...
+**     vpst(?: @.*|)
+**     ...
+**     vcmpt.i8        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8x16_t b, mve_pred16_t p)
 {
   return vcmpneq_m (a, b, p);
 }
 
-/* { dg-final { scan-assembler "vpst" } } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index e9e2a9c7b045e765c9ac861a812050fd5276622b..29e43f3fdf85ac7e334d835fb9d6f4bb91d716e5 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f16        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float16x8_t a, float16_t b)
 {
   return vcmpneq_n_f16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f16        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float16x8_t a, float16_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f16"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.f16        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float16x8_t a)
+{
+  return vcmpneq (a, 1.1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index eb64b17969c893736a444bb82b65126319d8adc7..688e77cd044ef409355a4106bffb1490ab23ad77 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.f32        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (float32x4_t a, float32_t b)
 {
   return vcmpneq_n_f32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.f32        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (float32x4_t a, float32_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.f32"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.f32        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (float32x4_t a)
+{
+  return vcmpneq (a, 1.1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 14689242ee42270d49369716ac45073f4f699438..2afc34d16e5c6c675cfdfd8278c77937a2f4b351 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i16        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16_t b)
 {
   return vcmpneq_n_s16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i16        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 53418ff3923738e66fdc6f33bec985feed3ca88e..6c3231613168be98e239c39647c94cf09f9a3ab8 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i32        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32_t b)
 {
   return vcmpneq_n_s32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i32        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index fa405c281b4c43038ac386f70af5f6a55d040f7d..5483d6dd2fe21e82f474cc9bd3b72ede131b4a5b 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i8 ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8_t b)
 {
   return vcmpneq_n_s8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i8 ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index cc8540b3a6cb546256f0e0b5bdf184c56b80c58b..d8edfb0d825bea3fd33500c244d64a117fd5f9f5 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i16        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16_t b)
 {
   return vcmpneq_n_u16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i16        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.i16        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint16x8_t a)
+{
+  return vcmpneq (a, 1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 07c9b1ade96c55a66191022e4d1a8c380419ad49..2b7a6b5683078e2071d866fad14b5eaf449ef057 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i32        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32_t b)
 {
   return vcmpneq_n_u32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i32        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.i32        ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint32x4_t a)
+{
+  return vcmpneq (a, 1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index eac5e96384e563b48dc00a457476fe0bdb5711ad..2dab43af33183d6e2e13efa4c04f0cb04704dfc0 100644 (file)
@@ -1,21 +1,51 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i8 ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8_t b)
 {
   return vcmpneq_n_u8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i8 ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
+/*
+**foo2:
+**     ...
+**     vcmp.i8 ne, q[0-9]+, (?:ip|fp|r[0-9]+)(?:       @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
+mve_pred16_t
+foo2 (uint8x16_t a)
+{
+  return vcmpneq (a, 1);
+}
+
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 6b04ce70ffcd25d708c688817645c93f7cda552e..d57b607baa9d3119b16b81873ae5269a41eef77f 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i16        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int16x8_t a, int16x8_t b)
 {
   return vcmpneq_s16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i16        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int16x8_t a, int16x8_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index cfb98d7e650640786622ad4e1cb88d7e656eb67c..e02171f66867569cf76bd709bcfbbc75e074e5d0 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i32        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int32x4_t a, int32x4_t b)
 {
   return vcmpneq_s32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i32        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int32x4_t a, int32x4_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index ae69be4ba0b95ee178e9b8c76e4cfde067eb89ad..0abef8c3e00f1f6180b8694b48d0135707c361b0 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i8 ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (int8x16_t a, int8x16_t b)
 {
   return vcmpneq_s8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i8 ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (int8x16_t a, int8x16_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 51059f211919199c10aac3434bbe1593b6302c2d..7144f3ee2fcc3e7372b226d065413bebc7501552 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i16        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint16x8_t a, uint16x8_t b)
 {
   return vcmpneq_u16 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i16        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint16x8_t a, uint16x8_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i16"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index 42e4a3f4f2d8fad66b3d75366e6f026fceb7b3b8..a31134f2f1de14b442aa23f45c1675b6c21f65d7 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i32        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint32x4_t a, uint32x4_t b)
 {
   return vcmpneq_u32 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i32        ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint32x4_t a, uint32x4_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i32"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
index addacc158330fad824b611fe1b8f42b63a884b85..2801c8e3763d7e94be5be43649ca86619c5ab172 100644 (file)
@@ -1,21 +1,37 @@
 /* { 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"
 
+/*
+**foo:
+**     ...
+**     vcmp.i8 ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo (uint8x16_t a, uint8x16_t b)
 {
   return vcmpneq_u8 (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
 
+/*
+**foo1:
+**     ...
+**     vcmp.i8 ne, q[0-9]+, q[0-9]+(?: @.*|)
+**     ...
+**     vmrs    (?:ip|fp|r[0-9]+), p0(?:        @.*|)
+**     ...
+*/
 mve_pred16_t
 foo1 (uint8x16_t a, uint8x16_t b)
 {
   return vcmpneq (a, b);
 }
 
-/* { dg-final { scan-assembler "vcmp.i8"  }  } */
+/* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file