[Bug tree-optimization/112496] [13/14 Regression] ICE: in vectorizable_nonlinear_induction, at tree-vect-loop.cc with bit fields

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Nov 14 08:41:21 GMT 2023


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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by hongtao Liu <liuhongt@gcc.gnu.org>:

https://gcc.gnu.org/g:f28306b4fd309b579c8a4a5bf2f1b24fa40f8f7f

commit r14-5433-gf28306b4fd309b579c8a4a5bf2f1b24fa40f8f7f
Author: liuhongt <hongtao.liu@intel.com>
Date:   Mon Nov 13 17:56:49 2023 +0800

    Fix ICE in vectorizable_nonlinear_induction with bitfield.

     if (TREE_CODE (init_expr) == INTEGER_CST)
        init_expr = fold_convert (TREE_TYPE (vectype), init_expr);
      else
        gcc_assert (tree_nop_conversion_p (TREE_TYPE (vectype),
                                           TREE_TYPE (init_expr)));

    and init_expr is a 24 bit integer type while vectype has 32bit components.

    The "fix" is to bail out instead of asserting.

    gcc/ChangeLog:

            PR tree-optimization/112496
            * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
            false when !tree_nop_conversion_p (TREE_TYPE (vectype),
            TREE_TYPE (init_expr)).

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr112496.c: New test.


More information about the Gcc-bugs mailing list