aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2024-11-11 12:32:21 +0000
committerRichard Sandiford <richard.sandiford@arm.com>2024-11-11 12:32:21 +0000
commit2cc4c2a281e983d735c4c38091d67508d3b4f892 (patch)
tree8a8ea1472be142f47e9f57addd5e0ce998b51cd3 /gcc/tree-vectorizer.h
parentf7ed863632547705a6c791ea6487fcb33ee029a8 (diff)
downloadgcc-2cc4c2a281e983d735c4c38091d67508d3b4f892.zip
gcc-2cc4c2a281e983d735c4c38091d67508d3b4f892.tar.gz
gcc-2cc4c2a281e983d735c4c38091d67508d3b4f892.tar.bz2
aarch64: Add remaining SVE2p1 support
This patch adds the instructions that are new to FEAT_SVE2p1. It mostly contains simple additions, so it didn't seem worth splitting up further. It's likely that we'll find more autovec uses for some of these instructions, but for now this patch just deals with one obvious case: using the new hybrid-VLA permutations to handle "stepped" versions of some Advanced SIMD permutations. See aarch64_evpc_hvla for details. The patch also continues the existing practice of lowering ACLE permutation intrinsics to VEC_PERM_EXPR. That's admittedly a bit inconsistent with the approach I've been advocating for when it comes to arithmetic, but I think the difference is that (a) these are pure data movement, and so there's limited scope for things like gimple canonicalisations to mess with the instruction selection or operation mix; and (b) there are no added UB rules to worry about. Another new thing in the patch is the concept of "memory-only" SVE vector modes. These are used to represent the memory operands of the new LD1[DW] (to .Q), LD[234]Q, ST1[DW] (from .Q), and ST[234]Q instructions. We continue to use .B, .H, .S, and .D modes for the registers, since there's no predicated contiguous LD1Q instruction, and since there's no arithmetic that can be done on TI. (The new instructions are instead intended for hybrid VLA, i.e. for vectors of vectors.) For now, all of the new instructions are non-streaming-only. Some of them are streaming-compatible with SME2p1, but that's a later patch. gcc/ * config/aarch64/aarch64-modes.def (VNx1SI, VNx1DI): New modes. * config/aarch64/aarch64-sve-builtins-base.cc (svdup_lane_impl::expand): Update generation of TBL instruction. (svtbl_impl): Delete. (svtbl): Use unspec_based_uncond_function instead. * config/aarch64/aarch64-sve-builtins-functions.h (permute::fold_permute): Handle trailing immediate arguments. * config/aarch64/aarch64-sve-builtins-shapes.h (extq): Declare. (load_gather64_sv_index, load_gather64_sv_offset): Likewise. (load_gather64_vs_index, load_gather64_vs_offset): Likewise. (pmov_from_vector, pmov_from_vector_lane, pmov_to_vector_lane) (reduction_neonq, store_scatter64_index, store_scatter64_offset) (unary_lane): Likewise. * config/aarch64/aarch64-sve-builtins-shapes.cc (load_gather64_sv_base, store_scatter64_base): New classes. (extq_def, ext): New shape. (load_gather64_sv_index_def, load_gather64_sv_index): Likewise. (load_gather64_sv_offset_def, load_gather64_sv_offset): Likewise. (load_gather64_vs_index_def, load_gather64_vs_index): Likewise. (load_gather64_vs_offset_def, load_gather64_vs_offset): Likewise. (pmov_from_vector_def, pmov_from_vector): Likewise. (pmov_from_vector_lane_def, pmov_from_vector_lane): Likewise. (pmov_to_vector_lane_def, pmov_to_vector_lane): Likewise. (reduction_neonq_def, reduction_neonq): Likewise. (store_scatter64_index_def, store_scatter64_index): Likewise. (store_scatter64_offset_def, store_scatter64_offset): Likewise. (unary_lane_def, unary_lane): Likewise. * config/aarch64/aarch64-sve-builtins-sve2.h (svaddqv, svandqv) (svdup_laneq, sveorqv, svextq, svld1q_gather, svld1udq, svld1uwq) (svld2q, svld3q, svld4q, svmaxnmqv, svmaxqv, svminnmqv, svminqv) (svorqv, svpmov, svpmov_lane, svst1qd, svst1q_scatter, svst1wq) (svst2q, svst3q, svst4q, svtblq, svtbx, svtbxq, svuzpq1, svuzpq2) (svzipq1, svzipq2): Declare. * config/aarch64/aarch64-sve-builtins-sve2.cc (ld1uxq_st1xq_base) (ld234q_st234q_base, svdup_laneq_impl, svextq_impl): New classes. (svld1q_gather_impl, svld1uxq_impl, svld234q_impl): Likewise. (svpmov_impl, svpmov_lane_impl, svst1q_scatter_impl): Likewise. (svst1xq_impl, svst234q_impl, svuzpq_impl, svzipq_impl): Likewise. (svaddqv, svandqv, svdup_laneq, sveorqv, svextq, svld1q_gather) (svld1udq, svld1uwq, svld2q, svld3q, svld4q, svmaxnmqv, svmaxqv) (svminnmqv, svminqv, svorqv, svpmov, svpmov_lane, svst1qd) (svst1q_scatter, svst1wq, svst2q, svst3q, svst4q, svtblq, svtbx) (svtbxq, svuzpq1, svuzpq2, svzipq1, svzipq2): New function entries. * config/aarch64/aarch64-sve-builtins-sve2.def (svaddqv, svandqv) (svdup_laneq, sveorqv, svextq, svld2q, svld3q, svld4q, svmaxnmqv) (svmaxqv, svminnmqv, svminqv, svorqv, svpmov, svpmov_lanes, vst2q) (svst3q, svst4q, svtblq, svtbxq, svuzpq1, svuzpq2, svzipq1, svzipq2) (svld1q_gather, svld1udq, svld1uwq, svst1dq, svst1q_scatter) (svst1wq): New function definitions. * config/aarch64/aarch64-sve-builtins.cc (TYPES_hsd_data) (hsd_data, s_data): New type lists. (function_resolver::infer_pointer_type): Give a specific error about passing a pointer to 8-bit elements to an _index function. (function_resolver::resolve_sv_displacement): Check whether the function allows 32-bit bases. * config/aarch64/iterators.md (UNSPEC_TBLQ, UNSPEC_TBXQ): New unspecs. (UNSPEC_ADDQV, UNSPEC_ANDQV, UNSPEC_DUPQ, UNSPEC_EORQV, UNSPEC_EXTQ) (UNSPEC_FADDQV, UNSPEC_FMAXQV, UNSPEC_FMAXNMQV, UNSPEC_FMINQV) (UNSPEC_FMINNMQV, UNSPEC_LD1_EXTENDQ, UNSPEC_LD1Q_GATHER): Likewise. (UNSPEC_LDNQ, UNSPEC_ORQV, UNSPEC_PMOV_PACK, UNSPEC_PMOV_PACK_LANE) (UNSPEC_PMOV_UNPACK, UNSPEC_PMOV_UNPACK_LANE, UNSPEC_SMAXQV): Likewise. (UNSPEC_SMINQV, UNSPEC_ST1_TRUNCQ, UNSPEC_ST1Q_SCATTER, UNSPEC_STNQ) (UNSPEC_UMAXQV, UNSPEC_UMINQV, UNSPEC_UZPQ1, UNSPEC_UZPQ2): Likewise. (UNSPEC_ZIPQ1, UNSPEC_ZIPQ2): Likewise. (Vtype): Handle single-vector SVE modes. (Vendreg): Handle SVE structure modes. (VNxTI, LD1_EXTENDQ_MEM): New mode attributes. (SVE_PERMUTE, SVE_TBL, SVE_TBX): New int iterators. (SVE_INT_REDUCTION_128, SVE_FP_REDUCTION_128): Likewise. (optab): Handle the new SVE2.1 reductions. (perm_insn): Handle the new SVE2.1 permutations. * config/aarch64/aarch64-sve.md (@aarch64_sve_tbl<mode>): Generalize to... (@aarch64_sve_<SVE_TBL:perm_insn><mode>): ...this. (@aarch64_sve_<PERMUTE:perm_insn><mode>): Generalize to... (@aarch64_sve_<SVE_PERMUTE:perm_insn><mode>): ...this. * config/aarch64/aarch64-sve2.md (@aarch64_pmov_to_<mode>) (@aarch64_pmov_lane_to_<mode>, @aarch64_pmov_from_<mode>) (@aarch64_pmov_lane_from_<mode>, @aarch64_sve_ld1_extendq<mode>) (@aarch64_sve_ldnq<mode>, aarch64_gather_ld1q): New patterns. (@aarch64_sve_st1_truncq<mode>, @aarch64_sve_stnq<mode>): Likewise. (aarch64_scatter_st1q, @aarch64_pred_reduc_<optab>_<mode>): Likewise. (@aarch64_sve_dupq<mode>, @aarch64_sve_extq<mode>): Likewise. (@aarch64_sve2_tbx<mode>): Generalize to... (@aarch64_sve_<SVE_TBX:perm_insn><mode>): ...this. * config/aarch64/aarch64.cc (aarch64_classify_vector_memory_mode): New function. (aarch64_regmode_natural_size): Use it. (aarch64_classify_index): Likewise. (aarch64_classify_address): Likewise. (aarch64_print_address_internal): Likewise. (aarch64_evpc_hvla): New function. (aarch64_expand_vec_perm_const_1): Use it. gcc/testsuite/ * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_index_1.c, * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_1.c, * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_2.c, * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_3.c, * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_4.c, * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_5.c: Adjust the "did you mean" suggestion. * gcc.target/aarch64/sve/acle/general-c/ld1sh_gather_1.c: Removed. * gcc.target/aarch64/sve/acle/general-c/extq_1.c: New test. * gcc.target/aarch64/sve/acle/general-c/load_gather64_sv_index_1.c: Likewise. * gcc.target/aarch64/sve/acle/general-c/load_gather64_sv_offset_1.c: Likewise. * gcc.target/aarch64/sve/acle/general-c/pmov_from_vector_1.c: Likewise. * gcc.target/aarch64/sve/acle/general-c/pmov_from_vector_lane_1.c: Likewise. * gcc.target/aarch64/sve/acle/general-c/pmov_to_vector_lane_1.c: Likewise. * gcc.target/aarch64/sve/acle/general-c/pmov_to_vector_lane_2.c: Likewise. * gcc.target/aarch64/sve/acle/general-c/store_scatter64_1.c: Likewise. * gcc.target/aarch64/sve/acle/general-c/store_scatter64_index_1.c: Likewise. * gcc.target/aarch64/sve/acle/general-c/store_scatter64_offset_1.c: Likewise. * gcc.target/aarch64/sve/acle/general-c/unary_lane_1.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/addqv_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/addqv_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/addqv_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/addqv_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/addqv_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/addqv_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/addqv_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/addqv_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/addqv_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/addqv_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/addqv_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/andqv_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/andqv_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/andqv_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/andqv_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/andqv_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/andqv_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/andqv_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/andqv_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/dup_laneq_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/dup_laneq_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/dup_laneq_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/dup_laneq_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/dup_laneq_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/dup_laneq_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/dup_laneq_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/dup_laneq_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/dup_laneq_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/dup_laneq_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/dup_laneq_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/dup_laneq_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/eorqv_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/eorqv_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/eorqv_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/eorqv_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/eorqv_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/eorqv_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/eorqv_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/eorqv_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/extq_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/extq_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/extq_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/extq_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/extq_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/extq_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/extq_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/extq_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/extq_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/extq_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/extq_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/extq_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1q_gather_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1q_gather_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1q_gather_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1q_gather_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1q_gather_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1q_gather_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1q_gather_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1q_gather_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1q_gather_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1q_gather_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1q_gather_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1q_gather_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1udq_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1udq_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1udq_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1uwq_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1uwq_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld1uwq_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld2q_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld2q_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld2q_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld2q_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld2q_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld2q_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld2q_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld2q_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld2q_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld2q_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld2q_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld2q_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld3q_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld3q_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld3q_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld3q_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld3q_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld3q_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld3q_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld3q_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld3q_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld3q_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld3q_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld3q_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld4q_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld4q_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld4q_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld4q_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld4q_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld4q_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld4q_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld4q_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld4q_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld4q_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld4q_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ld4q_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxnmqv_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxnmqv_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxnmqv_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxqv_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxqv_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxqv_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxqv_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxqv_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxqv_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxqv_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxqv_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxqv_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxqv_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/maxqv_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minnmqv_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minnmqv_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minnmqv_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minqv_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minqv_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minqv_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minqv_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minqv_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minqv_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minqv_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minqv_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minqv_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minqv_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/minqv_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/orqv_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/orqv_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/orqv_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/orqv_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/orqv_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/orqv_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/orqv_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/orqv_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/pmov_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/pmov_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/pmov_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/pmov_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/pmov_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/pmov_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/pmov_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/pmov_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1dq_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1dq_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1dq_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1q_scatter_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1q_scatter_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1q_scatter_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1q_scatter_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1q_scatter_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1q_scatter_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1q_scatter_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1q_scatter_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1q_scatter_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1q_scatter_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1q_scatter_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1q_scatter_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1wq_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1wq_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st1wq_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st2q_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st2q_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st2q_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st2q_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st2q_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st2q_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st2q_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st2q_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st2q_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st2q_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st2q_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st2q_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st3q_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st3q_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st3q_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st3q_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st3q_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st3q_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st3q_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st3q_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st3q_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st3q_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st3q_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st3q_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st4q_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st4q_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st4q_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st4q_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st4q_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st4q_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st4q_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st4q_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st4q_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st4q_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st4q_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/st4q_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tblq_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tblq_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tblq_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tblq_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tblq_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tblq_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tblq_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tblq_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tblq_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tblq_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tblq_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tblq_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tbxq_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tbxq_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tbxq_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tbxq_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tbxq_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tbxq_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tbxq_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tbxq_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tbxq_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tbxq_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tbxq_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/tbxq_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq1_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq1_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq1_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq1_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq1_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq1_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq1_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq1_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq1_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq1_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq1_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq1_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq2_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq2_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq2_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq2_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq2_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq2_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq2_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq2_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq2_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq2_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq2_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/uzpq2_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq1_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq1_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq1_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq1_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq1_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq1_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq1_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq1_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq1_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq1_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq1_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq1_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq2_bf16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq2_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq2_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq2_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq2_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq2_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq2_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq2_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq2_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq2_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq2_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/zipq2_u8.c: Likewise. * gcc.target/aarch64/sve2/dupq_1.c: Likewise. * gcc.target/aarch64/sve2/extq_1.c: Likewise. * gcc.target/aarch64/sve2/uzpq_1.c: Likewise. * gcc.target/aarch64/sve2/zipq_1.c: Likewise.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions