aarch64: Avoid false dependencies for SVE unary operations
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 25 Nov 2020 16:14:20 +0000 (16:14 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Wed, 25 Nov 2020 16:14:20 +0000 (16:14 +0000)
commita4d9837ee4becaec43b77afa84ea2b91ee1b9e5c
tree5c486722b4551b6236463608f6c267398e3e7a36
parent4aff491ffcb1312c7745758301df6d22c0c70200
aarch64: Avoid false dependencies for SVE unary operations

For calls like:

        z0 = svabs_s8_x (p0, z1)

we previously generated:

        abs     z0.b, p0/m, z1.b

However, this creates a false dependency on z0 (the merge input).
This can lead to strange results in some cases, e.g. serialising
the operation behind arbitrary earlier operations, or preventing
two iterations of a loop from being executed in parallel.

This patch therefore ties the input to the output, using a MOVPRFX
if necessary and possible.  (The SVE2 unary long instructions do
not support MOVPRFX.)

When testing the patch, I hit a bug in the big-endian SVE move
optimisation in aarch64_maybe_expand_sve_subreg_move.  I don't
have an indepenedent testcase for it, so I didn't split it out
into a separate patch.

gcc/
* config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move):
Do not optimize LRA subregs.
* config/aarch64/aarch64-sve.md
(@aarch64_pred_<SVE_INT_UNARY:optab><mode>): Tie the input to the
output.
(@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>): Likewise.
(*<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): Likewise.
(@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise.
(*cnot<mode>): Likewise.
(@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): Likewise.
(@aarch64_sve_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>):
Likewise.
(@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
Likewise.
(@aarch64_sve_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>):
Likewise.
(@aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
Likewise.
(@aarch64_sve_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>):
Likewise.
(@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>):
Likewise.
(@aarch64_sve_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>):
Likewise.
* config/aarch64/aarch64-sve2.md
(@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise.
(@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise.
(@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise.
(@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise.

gcc/testsuite/
* gcc.target/aarch64/sve/acle/asm/abs_f16.c (abs_f16_x_untied): Expect
a MOVPRFX instruction.
* gcc.target/aarch64/sve/acle/asm/abs_f32.c (abs_f32_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/abs_f64.c (abs_f64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/abs_s16.c (abs_s16_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/abs_s32.c (abs_s32_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/abs_s64.c (abs_s64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/abs_s8.c (abs_s8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cls_s16.c (cls_s16_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cls_s32.c (cls_s32_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cls_s64.c (cls_s64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cls_s8.c (cls_s8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/clz_s16.c (clz_s16_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/clz_s32.c (clz_s32_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/clz_s64.c (clz_s64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/clz_s8.c (clz_s8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/clz_u16.c (clz_u16_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/clz_u32.c (clz_u32_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/clz_u64.c (clz_u64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/clz_u8.c (clz_u8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnot_s16.c (cnot_s16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/cnot_s32.c (cnot_s32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/cnot_s64.c (cnot_s64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/cnot_s8.c (cnot_s8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnot_u16.c (cnot_u16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/cnot_u32.c (cnot_u32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/cnot_u64.c (cnot_u64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/cnot_u8.c (cnot_u8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnt_bf16.c (cnt_bf16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/cnt_f16.c (cnt_f16_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnt_f32.c (cnt_f32_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnt_f64.c (cnt_f64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnt_s16.c (cnt_s16_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnt_s32.c (cnt_s32_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnt_s64.c (cnt_s64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnt_s8.c (cnt_s8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnt_u16.c (cnt_u16_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnt_u32.c (cnt_u32_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnt_u64.c (cnt_u64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cnt_u8.c (cnt_u8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cvt_bf16.c (cvt_bf16_f32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/cvt_f16.c (cvt_f16_f32_x_untied)
(cvt_f16_f64_x_untied, cvt_f16_s16_x_untied, cvt_f16_s32_x_untied)
(cvt_f16_s64_x_untied, cvt_f16_u16_x_untied, cvt_f16_u32_x_untied)
(cvt_f16_u64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cvt_f32.c (cvt_f32_f16_x_untied)
(cvt_f32_f64_x_untied, cvt_f32_s16_x_untied, cvt_f32_s32_x_untied)
(cvt_f32_s64_x_untied, cvt_f32_u16_x_untied, cvt_f32_u32_x_untied)
(cvt_f32_u64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cvt_f64.c (cvt_f64_f16_x_untied)
(cvt_f64_f32_x_untied, cvt_f64_s16_x_untied, cvt_f64_s32_x_untied)
(cvt_f64_s64_x_untied, cvt_f64_u16_x_untied, cvt_f64_u32_x_untied)
(cvt_f64_u64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cvt_s16.c (cvt_s16_f16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/cvt_s32.c (cvt_s32_f16_x_untied)
(cvt_s32_f32_x_untied, cvt_s32_s64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cvt_s64.c (cvt_s64_f16_x_untied)
(cvt_s64_f32_x_untied, cvt_s64_s64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cvt_u16.c (cvt_u16_f16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/cvt_u32.c (cvt_u32_f16_x_untied)
(cvt_u32_f32_x_untied, cvt_u32_u64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/cvt_u64.c (cvt_u64_f16_x_untied)
(cvt_u64_f32_x_untied, cvt_u64_u64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/extb_s16.c (extb_s16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/extb_s32.c (extb_s32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/extb_s64.c (extb_s64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/exth_s32.c (exth_s32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/exth_s64.c (exth_s64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/extw_s64.c (extw_s64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/neg_f16.c (neg_f16_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/neg_f32.c (neg_f32_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/neg_f64.c (neg_f64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/neg_s16.c (neg_s16_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/neg_s32.c (neg_s32_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/neg_s64.c (neg_s64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/neg_s8.c (neg_s8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/not_s16.c (not_s16_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/not_s32.c (not_s32_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/not_s64.c (not_s64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/not_s8.c (not_s8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/not_u16.c (not_u16_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/not_u32.c (not_u32_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/not_u64.c (not_u64_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/not_u8.c (not_u8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/rbit_s16.c (rbit_s16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rbit_s32.c (rbit_s32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rbit_s64.c (rbit_s64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rbit_s8.c (rbit_s8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/rbit_u16.c (rbit_u16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rbit_u32.c (rbit_u32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rbit_u64.c (rbit_u64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rbit_u8.c (rbit_u8_x_untied): Ditto.
* gcc.target/aarch64/sve/acle/asm/recpx_f16.c (recpx_f16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/recpx_f32.c (recpx_f32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/recpx_f64.c (recpx_f64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/revb_s16.c (revb_s16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/revb_s32.c (revb_s32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/revb_s64.c (revb_s64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/revb_u16.c (revb_u16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/revb_u32.c (revb_u32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/revb_u64.c (revb_u64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/revh_s32.c (revh_s32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/revh_s64.c (revh_s64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/revh_u32.c (revh_u32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/revh_u64.c (revh_u64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/revw_s64.c (revw_s64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/revw_u64.c (revw_u64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rinta_f16.c (rinta_f16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rinta_f32.c (rinta_f32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rinta_f64.c (rinta_f64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rinti_f16.c (rinti_f16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rinti_f32.c (rinti_f32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rinti_f64.c (rinti_f64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintm_f16.c (rintm_f16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintm_f32.c (rintm_f32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintm_f64.c (rintm_f64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintn_f16.c (rintn_f16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintn_f32.c (rintn_f32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintn_f64.c (rintn_f64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintp_f16.c (rintp_f16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintp_f32.c (rintp_f32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintp_f64.c (rintp_f64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintx_f16.c (rintx_f16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintx_f32.c (rintx_f32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintx_f64.c (rintx_f64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintz_f16.c (rintz_f16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintz_f32.c (rintz_f32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/rintz_f64.c (rintz_f64_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/sqrt_f16.c (sqrt_f16_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/sqrt_f32.c (sqrt_f32_x_untied):
Ditto.
* gcc.target/aarch64/sve/acle/asm/sqrt_f64.c (sqrt_f64_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/cvtx_f32.c (cvtx_f32_f64_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/logb_f16.c (logb_f16_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/logb_f32.c (logb_f32_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/logb_f64.c (logb_f64_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/qabs_s16.c (qabs_s16_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/qabs_s32.c (qabs_s32_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/qabs_s64.c (qabs_s64_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/qabs_s8.c (qabs_s8_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/qneg_s16.c (qneg_s16_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/qneg_s32.c (qneg_s32_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/qneg_s64.c (qneg_s64_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/qneg_s8.c (qneg_s8_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/recpe_u32.c (recpe_u32_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/rsqrte_u32.c (rsqrte_u32_x_untied):
Ditto.
* gcc.target/aarch64/sve2/acle/asm/cvtlt_f32.c
(cvtlt_f32_f16_x_untied): Expect a MOV instruction.
* gcc.target/aarch64/sve2/acle/asm/cvtlt_f64.c
(cvtlt_f64_f32_x_untied): Likewise.
136 files changed:
gcc/config/aarch64/aarch64-sve.md
gcc/config/aarch64/aarch64-sve2.md
gcc/config/aarch64/aarch64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_f64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_s16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_s8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cls_s16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cls_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cls_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cls_s8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clz_s16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clz_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clz_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clz_s8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clz_u16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clz_u32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clz_u64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clz_u8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_s16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_s8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_u16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_u32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_u64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_u8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_bf16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_f64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_s16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_s8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_u16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_u32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_u64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_u8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_bf16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_f64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_s16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_u16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_u32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_u64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/extb_s16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/extb_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/extb_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/exth_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/exth_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/extw_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_f64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_s16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_s8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_s16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_s8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_u16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_u32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_u64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_u8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_s16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_s8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_u16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_u32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_u64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_u8.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/revb_s16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/revb_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/revb_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/revb_u16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/revb_u32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/revb_u64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/revh_s32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/revh_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/revh_u32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/revh_u64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/revw_s64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/revw_u64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rinta_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rinta_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rinta_f64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rinti_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rinti_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rinti_f64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintm_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintm_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintm_f64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintn_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintn_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintn_f64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintp_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintp_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintp_f64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintx_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintx_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintx_f64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintz_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintz_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rintz_f64.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sqrt_f16.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sqrt_f32.c
gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sqrt_f64.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtlt_f32.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtlt_f64.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtx_f32.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f16.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f32.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f64.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s16.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s32.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s64.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s8.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qneg_s16.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qneg_s32.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qneg_s64.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qneg_s8.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/recpe_u32.c
gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rsqrte_u32.c