-
- Downloads
arm: Fix vcreate definition
From the initial merge of the MVE backend, the vcreate intrinsic has had the vector lanes mixed up, compared to the intended (as per the ACLE) definition. This is also a discrepancy with clang: https://godbolt.org/z/4n93e5aqj This patches simply switches the operands around and makes the tests more specific on the input registers (I do not touch the output Q regs as they vary based on softfp/hardfp or the input registers when the input is a constant, since, in that case, a single register is loaded with a constant and then the same register is used twice as "vmov q0[2], q0[0], r2, r2" and the reg num might not always be guaranteed). gcc/ChangeLog: * config/arm/mve.md (mve_vcvtq_n_to_f_<supf><mode>): Swap operands. (mve_vcreateq_f<mode>): Swap operands. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vcreateq_f16.c: Tighten test. * gcc.target/arm/mve/intrinsics/vcreateq_f32.c: Tighten test. * gcc.target/arm/mve/intrinsics/vcreateq_s16.c: Tighten test. * gcc.target/arm/mve/intrinsics/vcreateq_s32.c: Tighten test. * gcc.target/arm/mve/intrinsics/vcreateq_s64.c: Tighten test. * gcc.target/arm/mve/intrinsics/vcreateq_s8.c: Tighten test. * gcc.target/arm/mve/intrinsics/vcreateq_u16.c: Tighten test. * gcc.target/arm/mve/intrinsics/vcreateq_u32.c: Tighten test. * gcc.target/arm/mve/intrinsics/vcreateq_u64.c: Tighten test. * gcc.target/arm/mve/intrinsics/vcreateq_u8.c: Tighten test.
Showing
- gcc/config/arm/mve.md 2 additions, 2 deletionsgcc/config/arm/mve.md
- gcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_f16.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_f16.c
- gcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_f32.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_f32.c
- gcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_s16.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_s16.c
- gcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_s32.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_s32.c
- gcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_s64.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_s64.c
- gcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_s8.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_s8.c
- gcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_u16.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_u16.c
- gcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_u32.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_u32.c
- gcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_u64.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_u64.c
- gcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_u8.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arm/mve/intrinsics/vcreateq_u8.c
Loading
Please register or sign in to comment