https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115495

--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Robin Dapp <rd...@gcc.gnu.org>:

https://gcc.gnu.org/g:96fe95bac67c7303dc811c04f5e99cc959a7182a

commit r15-3120-g96fe95bac67c7303dc811c04f5e99cc959a7182a
Author: Robin Dapp <rd...@ventanamicro.com>
Date:   Tue Aug 20 14:02:09 2024 +0200

    optabs-query: Use opt_machine_mode for smallest_int_mode_for_size
[PR115495].

    In get_best_extraction_insn we use smallest_int_mode_for_size with
    struct_bits as size argument.  PR115495 has struct_bits = 256 and we
    don't have a mode for that.  This patch makes smallest_mode_for_size
    and smallest_int_mode_for_size return opt modes so we can just skip
    over the loop when there is no mode.

            PR middle-end/115495

    gcc/ChangeLog:

            * cfgexpand.cc (expand_debug_expr): Require mode.
            * combine.cc (make_extraction): Ditto.
            * config/aarch64/aarch64.cc (aarch64_expand_cpymem): Ditto.
            (aarch64_expand_setmem): Ditto.
            * config/arc/arc.cc (arc_expand_cpymem): Ditto.
            * config/arm/arm.cc (arm_expand_divmod_libfunc): Ditto.
            * config/i386/i386.cc (ix86_get_mask_mode): Ditto.
            * config/rs6000/predicates.md: Ditto.
            * config/rs6000/rs6000.cc (vspltis_constant): Ditto.
            * config/s390/s390.cc (s390_expand_insv): Ditto.
            * config/sparc/sparc.cc (assign_int_registers): Ditto.
            * coverage.cc (get_gcov_type): Ditto.
            (get_gcov_unsigned_t): Ditto.
            * dse.cc (find_shift_sequence): Ditto.
            * expmed.cc (store_integral_bit_field): Ditto.
            * expr.cc (convert_mode_scalar): Ditto.
            (op_by_pieces_d::smallest_fixed_size_mode_for_size): Ditto.
            (emit_block_move_via_oriented_loop): Ditto.
            (copy_blkmode_to_reg): Ditto.
            (store_field): Ditto.
            * internal-fn.cc (expand_arith_overflow): Ditto.
            * machmode.h (HAVE_MACHINE_MODES): Ditto.
            (smallest_mode_for_size): Use opt_machine_mode.
            (smallest_int_mode_for_size): Use opt_scalar_int_mode.
            * optabs-query.cc (get_best_extraction_insn): Require mode.
            * optabs.cc (expand_twoval_binop_libfunc): Ditto.
            * stor-layout.cc (smallest_mode_for_size): Return
            opt_machine_mode.
            (layout_type): Require mode.
            (initialize_sizetypes): Ditto.
            * tree-ssa-loop-manip.cc (canonicalize_loop_ivs): Ditto.

    gcc/testsuite/ChangeLog:

            * gcc.target/riscv/rvv/autovec/pr115495.c: New test.

    gcc/ada/ChangeLog:

            * gcc-interface/utils2.cc (fast_modulo_reduction): Require mode.
            (nonbinary_modular_operation): Ditto.

Reply via email to