https://gcc.gnu.org/g:c063f833c668b6571ca23207e85237ff3da100a3
commit r15-5882-gc063f833c668b6571ca23207e85237ff3da100a3 Author: Saurabh Jha <saurabh....@arm.com> Date: Tue Dec 3 09:54:00 2024 +0000 aarch64: Put iterators into the right section iterators.md is grouped by iterator type and by attribute type. This patch just moves some stuff that was in the "wrong" section. gcc/ * config/aarch64/iterators.md: Reorder some declarations, putting them under the associated heading comment. Co-authored-by: Vladimir Miloserdov <vladimir.miloser...@arm.com> Co-authored-by: Richard Sandiford <richard.sandif...@arm.com> Diff: --- gcc/config/aarch64/iterators.md | 103 +++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 53 deletions(-) diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md index 4786b0210e7e..720d79db8e43 100644 --- a/gcc/config/aarch64/iterators.md +++ b/gcc/config/aarch64/iterators.md @@ -3165,6 +3165,10 @@ (define_int_iterator LAST [UNSPEC_LASTA UNSPEC_LASTB]) +;; Iterators for fp8 operations + +(define_int_iterator FAMINMAX_UNS [UNSPEC_FAMAX UNSPEC_FAMIN]) + (define_int_iterator SVE_INT_UNARY [UNSPEC_REVB UNSPEC_REVH UNSPEC_REVW]) @@ -3738,20 +3742,44 @@ [UNSPECV_ATOMIC_LDOP_OR UNSPECV_ATOMIC_LDOP_BIC UNSPECV_ATOMIC_LDOP_XOR UNSPECV_ATOMIC_LDOP_PLUS]) -(define_int_attr atomic_ldop - [(UNSPECV_ATOMIC_LDOP_OR "set") (UNSPECV_ATOMIC_LDOP_BIC "clr") - (UNSPECV_ATOMIC_LDOP_XOR "eor") (UNSPECV_ATOMIC_LDOP_PLUS "add")]) - -(define_int_attr atomic_ldoptab - [(UNSPECV_ATOMIC_LDOP_OR "ior") (UNSPECV_ATOMIC_LDOP_BIC "bic") - (UNSPECV_ATOMIC_LDOP_XOR "xor") (UNSPECV_ATOMIC_LDOP_PLUS "add")]) - (define_int_iterator SUBDI_BITS [8 16 32]) (define_int_iterator BHSD_BITS [8 16 32 64]) (define_int_iterator LUTI_BITS [2 4]) +(define_int_iterator GET_FPSCR + [UNSPECV_GET_FPSR UNSPECV_GET_FPCR]) + +(define_int_iterator SET_FPSCR + [UNSPECV_SET_FPSR UNSPECV_SET_FPCR]) + +(define_int_iterator FP8CVT_UNS + [UNSPEC_F1CVT + UNSPEC_F2CVT + UNSPEC_F1CVTLT + UNSPEC_F2CVTLT]) + +(define_int_iterator SVE2_FP8_TERNARY_VNX8HF + [UNSPEC_FMLALB_FP8 + UNSPEC_FMLALT_FP8]) + +(define_int_iterator SVE2_FP8_TERNARY_VNX4SF + [UNSPEC_FMLALLBB_FP8 + UNSPEC_FMLALLBT_FP8 + UNSPEC_FMLALLTB_FP8 + UNSPEC_FMLALLTT_FP8]) + +(define_int_iterator SVE2_FP8_TERNARY_LANE_VNX8HF + [UNSPEC_FMLALB_FP8 + UNSPEC_FMLALT_FP8]) + +(define_int_iterator SVE2_FP8_TERNARY_LANE_VNX4SF + [UNSPEC_FMLALLBB_FP8 + UNSPEC_FMLALLBT_FP8 + UNSPEC_FMLALLTB_FP8 + UNSPEC_FMLALLTT_FP8]) + ;; ------------------------------------------------------------------- ;; Int Iterators Attributes. ;; ------------------------------------------------------------------- @@ -3968,6 +3996,8 @@ (define_code_attr binqops_op_rev [(ss_plus "sqsub") (ss_minus "sqadd")]) +(define_code_attr faminmax_op [(smax "famax") (smin "famin")]) + ;; The SVE logical instruction that implements an unspec. (define_int_attr logicalf_op [(UNSPEC_ANDF "and") (UNSPEC_IORF "orr") @@ -4180,6 +4210,12 @@ (define_int_attr frintnzs_op [(UNSPEC_FRINT32Z "frint32z") (UNSPEC_FRINT32X "frint32x") (UNSPEC_FRINT64Z "frint64z") (UNSPEC_FRINT64X "frint64x")]) +(define_int_attr faminmax_cond_uns_op + [(UNSPEC_COND_SMAX "famax") (UNSPEC_COND_SMIN "famin")]) + +(define_int_attr faminmax_uns_op + [(UNSPEC_FAMAX "famax") (UNSPEC_FAMIN "famin")]) + ;; The condition associated with an UNSPEC_COND_<xx>. (define_int_attr cmp_op [(UNSPEC_COND_CMPEQ_WIDE "eq") (UNSPEC_COND_CMPGE_WIDE "ge") @@ -4724,12 +4760,6 @@ ;; Iterators and attributes for fpcr fpsr getter setters -(define_int_iterator GET_FPSCR - [UNSPECV_GET_FPSR UNSPECV_GET_FPCR]) - -(define_int_iterator SET_FPSCR - [UNSPECV_SET_FPSR UNSPECV_SET_FPCR]) - (define_int_attr fpscr_name [(UNSPECV_GET_FPSR "fpsr") (UNSPECV_SET_FPSR "fpsr") @@ -4738,26 +4768,13 @@ (define_int_attr bits_etype [(8 "b") (16 "h") (32 "s") (64 "d")]) -;; Iterators and attributes for faminmax - -(define_int_iterator FAMINMAX_UNS [UNSPEC_FAMAX UNSPEC_FAMIN]) - -(define_int_attr faminmax_cond_uns_op - [(UNSPEC_COND_SMAX "famax") (UNSPEC_COND_SMIN "famin")]) - -(define_int_attr faminmax_uns_op - [(UNSPEC_FAMAX "famax") (UNSPEC_FAMIN "famin")]) - -(define_code_attr faminmax_op - [(smax "famax") (smin "famin")]) - -;; Iterators and attributes for fp8 sve/sme conversions +(define_int_attr atomic_ldop + [(UNSPECV_ATOMIC_LDOP_OR "set") (UNSPECV_ATOMIC_LDOP_BIC "clr") + (UNSPECV_ATOMIC_LDOP_XOR "eor") (UNSPECV_ATOMIC_LDOP_PLUS "add")]) -(define_int_iterator FP8CVT_UNS - [UNSPEC_F1CVT - UNSPEC_F2CVT - UNSPEC_F1CVTLT - UNSPEC_F2CVTLT]) +(define_int_attr atomic_ldoptab + [(UNSPECV_ATOMIC_LDOP_OR "ior") (UNSPECV_ATOMIC_LDOP_BIC "bic") + (UNSPECV_ATOMIC_LDOP_XOR "xor") (UNSPECV_ATOMIC_LDOP_PLUS "add")]) (define_int_attr fp8_cvt_uns_op [(UNSPEC_F1CVT "f1cvt") @@ -4765,26 +4782,6 @@ (UNSPEC_F1CVTLT "f1cvtlt") (UNSPEC_F2CVTLT "f2cvtlt")]) -(define_int_iterator SVE2_FP8_TERNARY_VNX8HF - [UNSPEC_FMLALB_FP8 - UNSPEC_FMLALT_FP8]) - -(define_int_iterator SVE2_FP8_TERNARY_VNX4SF - [UNSPEC_FMLALLBB_FP8 - UNSPEC_FMLALLBT_FP8 - UNSPEC_FMLALLTB_FP8 - UNSPEC_FMLALLTT_FP8]) - -(define_int_iterator SVE2_FP8_TERNARY_LANE_VNX8HF - [UNSPEC_FMLALB_FP8 - UNSPEC_FMLALT_FP8]) - -(define_int_iterator SVE2_FP8_TERNARY_LANE_VNX4SF - [UNSPEC_FMLALLBB_FP8 - UNSPEC_FMLALLBT_FP8 - UNSPEC_FMLALLTB_FP8 - UNSPEC_FMLALLTT_FP8]) - (define_int_attr sve2_fp8_fma_op_vnx8hf [(UNSPEC_FMLALB_FP8 "fmlalb") (UNSPEC_FMLALT_FP8 "fmlalt")])