|
| 1 | +2025-12-24 Pan Li < [email protected]> |
| 2 | + |
| 3 | + * config/riscv/predicates.md: Add geu to the swappable |
| 4 | + cmp operator iterator. |
| 5 | + * config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Take |
| 6 | + care of the swapped rtx code correspondly. |
| 7 | + |
| 8 | +2025-12-24 Claudio Bantaloukas < [email protected]> |
| 9 | + |
| 10 | + * config/aarch64/aarch64-sve-builtins-base.cc: (svmul_impl::fold): |
| 11 | + Replace use of type_suffix_pair with type_suffix_triple. |
| 12 | + * config/aarch64/aarch64-sve-builtins-shapes.cc: (parse_element_type): |
| 13 | + Handle third type suffix. |
| 14 | + (parse_type): Handle c2 in function signature. Add the u signature with |
| 15 | + the ability to pass a tuple with twice as many vectors as the base type. |
| 16 | + Calculate number of vectors against the type with the maximum number of |
| 17 | + bits rather than "the other one". |
| 18 | + (load_contiguous_base::resolve): Add argument to resolve_to call. |
| 19 | + (compare_scalar_def::resolve): Likewise. |
| 20 | + (ternary_mfloat8_def::resolve): Likewise. |
| 21 | + (ternary_mfloat8_lane_def::resolve): Likewise. |
| 22 | + (ternary_mfloat8_opt_n_def::resolve): Likewise. |
| 23 | + * config/aarch64/aarch64-sve-builtins.cc: (TYPES_all_pred, |
| 24 | + TYPES_all_count, TYPES_all_pred_count, TYPES_all_float, |
| 25 | + TYPES_all_signed, TYPES_all_float_and_signed, TYPES_all_unsigned, |
| 26 | + TYPES_all_integer, TYPES_all_arith, TYPES_all_data, TYPES_b, TYPES_c, |
| 27 | + TYPES_b_unsigned, TYPES_b_integer, TYPES_b_data, TYPES_bh_integer, |
| 28 | + TYPES_bs_unsigned, TYPES_bhs_signed, TYPES_bhs_unsigned, |
| 29 | + TYPES_bhs_integer, TYPES_bh_data, TYPES_bhs_data, TYPES_bhs_widen, |
| 30 | + TYPES_h_bfloat, TYPES_h_float, TYPES_h_integer, TYPES_h_data, |
| 31 | + TYPES_hs_signed, TYPES_hs_integer, TYPES_hs_float, TYPES_hs_data, |
| 32 | + TYPES_hd_unsigned, TYPES_hsd_signed, TYPES_hsd_integer, TYPES_hsd_data, |
| 33 | + TYPES_h_float_mf8, TYPES_s_float, TYPES_s_float_mf8, |
| 34 | + TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer, TYPES_s_signed, |
| 35 | + TYPES_s_unsigned, TYPES_s_integer, TYPES_s_data, TYPES_sd_signed, |
| 36 | + TYPES_sd_unsigned, TYPES_sd_integer, TYPES_sd_data, |
| 37 | + TYPES_all_float_and_sd_integer, TYPES_d_float, TYPES_d_unsigned, |
| 38 | + TYPES_d_integer, TYPES_d_data, TYPES_cvt, TYPES_cvt_bfloat, |
| 39 | + TYPES_cvt_h_s_float, TYPES_cvt_f32_f16, TYPES_cvt_long, |
| 40 | + TYPES_cvt_narrow_s, TYPES_cvt_narrow, TYPES_cvt_s_s, TYPES_cvt_mf8, |
| 41 | + TYPES_cvtn_mf8, TYPES_cvtnx_mf8, TYPES_inc_dec_n, TYPES_qcvt_x2, |
| 42 | + TYPES_qcvt_x4, TYPES_qrshr_x2,TYPES_qrshru_x2, TYPES_qrshr_x4, |
| 43 | + TYPES_qrshru_x4, TYPES_reinterpret, TYPES_reinterpret_b,TYPES_while, |
| 44 | + TYPES_while_x, TYPES_while_x_c, TYPES_s_narrow_fsu,TYPES_all_za, |
| 45 | + TYPES_d_za, TYPES_za_bhsd_data,TYPES_za_all_data, TYPES_za_h_mf8, |
| 46 | + TYPES_za_hs_mf8, TYPES_za_h_bfloat, TYPES_za_h_float, |
| 47 | + TYPES_za_s_b_signed, TYPES_za_s_b_unsigned, TYPES_za_s_b_integer, |
| 48 | + TYPES_za_s_h_integer,TYPES_za_s_h_data, TYPES_za_s_unsigned, |
| 49 | + TYPES_za_s_integer, TYPES_za_s_mf8, TYPES_za_s_float, TYPES_za_s_data, |
| 50 | + TYPES_za_d_h_integer, TYPES_za_d_float, TYPES_za_d_integer, |
| 51 | + TYPES_mop_base, TYPES_mop_base_signed, TYPES_mop_base_unsigned, |
| 52 | + TYPES_mop_i16i64, TYPES_mop_i16i64_signed, TYPES_mop_i16i64_unsigned, |
| 53 | + ΤYPES_za): Extend defines to three arguments. |
| 54 | + (DEF_VECTOR_TYPE, DEF_DOUBLE_TYPE): Likewise. |
| 55 | + (DEF_TRIPLE_TYPE): Add new define. |
| 56 | + (DEF_SVE_TYPES_ARRAY): Redefine all types_ arrays into arrays of |
| 57 | + type_suffix_triple. |
| 58 | + (types_none): Likewise. |
| 59 | + (function_instance::hash): Add third type to hash calculation. |
| 60 | + (function_builder::get_name): Add third type to function name. |
| 61 | + (function_builder::add_overloaded_functions): Handle third type. |
| 62 | + (function_resolver::lookup_form): Likewise. |
| 63 | + (function_resolver::resolve_to): Likewise. |
| 64 | + (function_resolver::resolve_unary): Likewise. |
| 65 | + * config/aarch64/aarch64-sve-builtins.h: (type_suffix_triple): replace |
| 66 | + type_suffix_pair. |
| 67 | + (function_group_info::types): Likewise. |
| 68 | + (function_instance::ctor): Likewise. |
| 69 | + (function_instance::type_suffix_ids): Likewise. |
| 70 | + (function_resolver::lookup_form): Add third type argument. |
| 71 | + (function_resolver::resolve_to): Likewise. |
| 72 | + (function_instance::operator==): Add third type to equality calculation. |
| 73 | + |
| 74 | +2025-12-24 Karl Meakin < [email protected]> |
| 75 | + |
| 76 | + * config/aarch64/aarch64-sme.md |
| 77 | + (@aarch64_sme_<optab><SME_ZA_F8F16_32:mode><SME_ZA_FP8_x24:mode>): New insn. |
| 78 | + (@aarch64_fvdot_half<optab>): Likewise. |
| 79 | + (@aarch64_fvdot_half<optab>_plus): Likewise. |
| 80 | + * config/aarch64/aarch64-sve-builtins-functions.h |
| 81 | + (class svvdot_half_impl): New function impl. |
| 82 | + * config/aarch64/aarch64-sve-builtins-sme.cc (FUNCTION): Likewise. |
| 83 | + * config/aarch64/aarch64-sve-builtins-shapes.cc (struct dot_half_za_slice_lane_def): |
| 84 | + New function shape. |
| 85 | + * config/aarch64/aarch64-sve-builtins-shapes.h: Likewise. |
| 86 | + * config/aarch64/aarch64-sve-builtins-sme.def (svdot): New function. |
| 87 | + (svdot_lane): Likewise. |
| 88 | + (svvdot_lane): Likewise. |
| 89 | + (svvdotb_lane): Likewise. |
| 90 | + (svvdott_lane): Likewise. |
| 91 | + * config/aarch64/aarch64-sve-builtins-sme.h (svvdotb_lane_za): New function. |
| 92 | + (svvdott_lane_za): Likewise. |
| 93 | + * config/aarch64/aarch64-sve-builtins.cc (TYPES_za_s_mf8): New types array. |
| 94 | + (TYPES_za_hs_mf8): Likewise. |
| 95 | + (za_hs_mf8): Likewise. |
| 96 | + * config/aarch64/iterators.md (SME_ZA_F8F16): New mode iterator. |
| 97 | + (SME_ZA_F8F32): Likewise. |
| 98 | + (SME_ZA_FP8_x1): Likewise. |
| 99 | + (SME_ZA_FP8_x2): Likewise. |
| 100 | + (SME_ZA_FP8_x4): Likewise. |
| 101 | + (UNSPEC_SME_FDOT_FP8): New unspec. |
| 102 | + (UNSPEC_SME_FVDOT_FP8): Likewise. |
| 103 | + (UNSPEC_SME_FVDOTT_FP8): Likewise. |
| 104 | + (UNSPEC_SME_FVDOTB_FP8): Likewise. |
| 105 | + (SME_FP8_DOTPROD): New int iterator. |
| 106 | + (SME_FP8_FVDOT): Likewise. |
| 107 | + (SME_FP8_FVDOT_HALF): Likewise. |
| 108 | + |
| 109 | +2025-12-24 Claudio Bantaloukas < [email protected]> |
| 110 | + |
| 111 | + * config/aarch64/aarch64-sme.md |
| 112 | + (@aarch64_sme_<optab><SME_ZA_F8F16_32:mode><VNx16QI_ONLY:mode>): Add |
| 113 | + new define_insn. |
| 114 | + * config/aarch64/aarch64-sve-builtins-shapes.cc |
| 115 | + (struct binary_za_m_base): Support fpm argument. |
| 116 | + * config/aarch64/aarch64-sve-builtins-sme.cc (svmopa_za): Extend for |
| 117 | + fp8. |
| 118 | + * config/aarch64/aarch64-sve-builtins-sme.def (svmopa): Add new |
| 119 | + DEF_SME_ZA_FUNCTION_GS_FPM entries. |
| 120 | + |
| 121 | +2025-12-24 Claudio Bantaloukas < [email protected]> |
| 122 | + |
| 123 | + * config/aarch64/aarch64-sme.md |
| 124 | + (@aarch64_sme_<optab><SME_ZA_F8F16_32:mode><SME_ZA_FP8_x24:mode>): Add |
| 125 | + new define_insn. |
| 126 | + (*aarch64_sme_<optab><VNx8HI_ONLY:mode><SME_ZA_FP8_x24:mode>_plus, |
| 127 | + *aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_FP8_x24:mode>_plus, |
| 128 | + @aarch64_sme_<optab><SME_ZA_F8F16_32:mode><VNx16QI_ONLY:mode>, |
| 129 | + *aarch64_sme_<optab><VNx8HI_ONLY:mode><VNx16QI_ONLY:mode>_plus, |
| 130 | + *aarch64_sme_<optab><VNx4SI_ONLY:mode><VNx16QI_ONLY:mode>_plus, |
| 131 | + @aarch64_sme_single_<optab><SME_ZA_F8F16_32:mode><SME_ZA_FP8_x24:mode>, |
| 132 | + *aarch64_sme_single_<optab><VNx8HI_ONLY:mode><SME_ZA_FP8_x24:mode>_plus, |
| 133 | + *aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_FP8_x24:mode>_plus, |
| 134 | + @aarch64_sme_lane_<optab><SME_ZA_F8F16_32:mode><SME_ZA_FP8_x124:mode>, |
| 135 | + *aarch64_sme_lane_<optab><VNx8HI_ONLY:mode><SME_ZA_FP8_x124:mode>, |
| 136 | + *aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_FP8_x124:mode>): |
| 137 | + Likewise. |
| 138 | + * config/aarch64/aarch64-sve-builtins-shapes.cc |
| 139 | + (struct binary_za_slice_lane_base): Support fpm argument. |
| 140 | + (struct binary_za_slice_opt_single_base): Likewise. |
| 141 | + * config/aarch64/aarch64-sve-builtins-sme.cc (svmla_za): Extend for fp8. |
| 142 | + (svmla_lane_za): Likewise. |
| 143 | + * config/aarch64/aarch64-sve-builtins-sme.def (svmla_lane): Add new |
| 144 | + DEF_SME_ZA_FUNCTION_GS_FPM entries. |
| 145 | + (svmla): Likewise. |
| 146 | + * config/aarch64/iterators.md (SME_ZA_F8F16_32): Add new mode iterator. |
| 147 | + (SME_ZA_FP8_x24, SME_ZA_FP8_x124): Likewise. |
| 148 | + (UNSPEC_SME_FMLAL): Add new unspec. |
| 149 | + (za16_offset_range): Add new mode_attr. |
| 150 | + (za16_32_long): Likewise. |
| 151 | + (za16_32_last_offset): Likewise. |
| 152 | + (SME_FP8_TERNARY_SLICE): Add new iterator. |
| 153 | + (optab): Add entry for UNSPEC_SME_FMLAL. |
| 154 | + |
| 155 | +2025-12-24 Claudio Bantaloukas < [email protected]> |
| 156 | + |
| 157 | + * config/aarch64/aarch64.h: |
| 158 | + (TARGET_STREAMING_SME_F8F16, TARGET_STREAMING_SME_F8F32): Add defines. |
| 159 | + * config/aarch64/aarch64-c.cc: |
| 160 | + (__ARM_FEATURE_SME_F8F16, __ARM_FEATURE_SME_F8F32): Add defines. |
| 161 | + * config/aarch64/aarch64-option-extensions.def: |
| 162 | + (sme-f8f16, sme-f8f32): Add arch options in command line. |
| 163 | + * config/aarch64/aarch64-sve-builtins-functions.h: |
| 164 | + (sme_2mode_function_t): Pass unspec_for_mfp8 parameter through ctor. |
| 165 | + * config/aarch64/aarch64-sve-builtins-sme.def: |
| 166 | + (DEF_SME_FUNCTION_GS, DEF_SME_FUNCTION): Redefine based on |
| 167 | + DEF_SME_FUNCTION_GS_FPM. |
| 168 | + (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Redefine based on |
| 169 | + DEF_SME_ZA_FUNCTION_GS_FPM. |
| 170 | + (AARCH64_FL_SME_F8F16, AARCH64_FL_SME_F8F32): Add new |
| 171 | + REQUIRED_EXTENSIONS sections. |
| 172 | + * config/aarch64/aarch64-sve-builtins.cc: |
| 173 | + (TYPES_za_h_mf8): Add new types. |
| 174 | + (TYPES_za_s_mf8): Likewise. |
| 175 | + (sme_function_groups): Define using DEF_SME_FUNCTION_GS_FPM instead of |
| 176 | + DEF_SME_FUNCTION_GS. |
| 177 | + * doc/invoke.texi: (sme-f8f16, sme-f8f32): Add documentation of option. |
| 178 | + |
| 179 | +2025-12-24 Claudio Bantaloukas < [email protected]> |
| 180 | + |
| 181 | + * config/aarch64/aarch64-sve-builtins-base.cc (svscale_impl): Added new |
| 182 | + class for dealing with all svscale functions (including sve) |
| 183 | + (svscale): updated FUNCTION macro call to make use of new class. |
| 184 | + * config/aarch64/aarch64-sve-builtins-sve2.def: (svscale): |
| 185 | + Added new DEF_SVE_FUNCTION_GS call to enable recognition of new variant. |
| 186 | + * config/aarch64/aarch64-sve2.md (@aarch64_sve_fscale<mode>): Added |
| 187 | + new define_insn. (@aarch64_sve_single_fscale<mode>): Likewise. |
| 188 | + * config/aarch64/iterators.md: (SVE_Fx24_NOBF): Added new iterator, |
| 189 | + similar to SVE_Fx24 but without brainfloat. |
| 190 | + (SVE_Fx24): Updated to make use of SVE_Fx24_NOBF. |
| 191 | + (SVSCALE_SINGLE_INTARG): Added new mode_attr. |
| 192 | + (SVSCALE_INTARG): Likewise. |
| 193 | + |
| 194 | +2025-12-24 Claudio Bantaloukas < [email protected]> |
| 195 | + |
| 196 | + * config/aarch64/aarch64-sve-builtins-base.cc (svcvt_impl): Update to |
| 197 | + handle fp8 cases. |
| 198 | + * config/aarch64/aarch64-sve-builtins-sve2.def (svcvt, svcvtn): Added |
| 199 | + DEF_SVE_FUNCTION_GS_FPM instances. |
| 200 | + * config/aarch64/aarch64-sve2.md |
| 201 | + (@aarch64_sve2_fp8_cvtn<mode>): Updated define_insn for additional case. |
| 202 | + (@aarch64_sme2_fp8_cvt<mode>): Added new define_insn. |
| 203 | + * config/aarch64/iterators.md (VNx16F_NARROW): Added new iterator to |
| 204 | + handle narrowing SVE floating point operations. |
| 205 | + (UNSPEC_FCVT): Added new unspec. |
| 206 | + |
| 207 | +2025-12-24 Claudio Bantaloukas < [email protected]> |
| 208 | + |
| 209 | + * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtl1, svcvtl2): Added |
| 210 | + new FUNTIONs. |
| 211 | + * config/aarch64/aarch64-sve-builtins-sve2.def |
| 212 | + (svcvt1, svcvt2, svcvtl1, svcvtl2): Added new DEF_SVE_FUNCTION_GS_FPM. |
| 213 | + * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtl1, svcvtl2): Added |
| 214 | + new function_base. |
| 215 | + * config/aarch64/aarch64-sve-builtins.cc |
| 216 | + (function_resolver::resolve_unary): use group_suffix_id when resolving |
| 217 | + C overloads. |
| 218 | + * config/aarch64/aarch64-sve2.md |
| 219 | + (@aarch64_sve2_fp8_cvt_<fp8_cvt_uns_op><mode>): Added new define_insn. |
| 220 | + * config/aarch64/aarch64.h (TARGET_SSME2_FP8): Added new define. |
| 221 | + * config/aarch64/iterators.md |
| 222 | + (UNSPEC_F1CVTL. UNSPEC_F2CVTL): Added new unspecs. |
| 223 | + (FP8CVT_UNS): Extended int_iterator. |
| 224 | + (fp8_cvt_uns_op): Likewise. |
| 225 | + |
| 226 | +2025-12-24 Claudio Bantaloukas < [email protected]> |
| 227 | + |
| 228 | + * config/aarch64/aarch64-sve-builtins.cc (TYPES_za_bhsd_data): Add |
| 229 | + D (za8, mf8) combination to za_bhsd_data. |
| 230 | + |
| 231 | +2025-12-24 Andrew Pinski < [email protected]> |
| 232 | + |
| 233 | + * ifcvt.cc (noce_process_if_block): Move noce_try_cond_zero_arith |
| 234 | + last. |
| 235 | + |
| 236 | +2025-12-24 Andrew Pinski < [email protected]> |
| 237 | + |
| 238 | + PR rtl-optimization/123276 |
| 239 | + * ifcvt.cc (noce_try_cond_zero_arith): Reject non-scalar integral modes. |
| 240 | + |
1 | 241 | 2025-12-23 Jeff Law < [email protected]> |
2 | 242 |
|
3 | 243 | PR target/123274 |
|
0 commit comments