[Bug tree-optimization/105374] [12 Regression] ICE in fold_convert_loc, at fold-const.cc:2580 during GIMPLE pass: reassoc since r12-7338-g884f77b4222289510e1df9db2889b60c5df6fcda

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Apr 26 07:58:13 GMT 2022


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

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

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

commit r12-8263-gd4836ac9acd0c991a4fe1dec9438773a2c4eb5ac
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Apr 26 09:57:34 2022 +0200

    reassoc: Don't call fold_convert if !fold_convertible_p [PR105374]

    As mentioned in the PR, we ICE because maybe_fold_*_comparisons returns
    an expression with V4SImode type and we try to fold_convert it to
    V4BImode, which isn't allowed.

    IMHO no matter whether we change maybe_fold_*_comparisons we should
    play safe on the reassoc side and punt if we can't convert like
    we punt for many other reasons.  This fixes the testcase on ARM.

    Testcase not included, not exactly sure where and what directives it
    should have in gcc.target/arm/ testsuite.  Christophe, do you think you
    could handle that incrementally?

    2022-04-26  Jakub Jelinek  <jakub@redhat.com>

            PR tree-optimization/105374
            * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
            !fold_convertible_p rather than assuming fold_convert must succeed.


More information about the Gcc-bugs mailing list