[Bug middle-end/126775] [17 Regression] ICE: tree check: expected real_cst, have vector_cst in generic_simplify_MINUS_EXPR, at generic-match-6.cc:7470 with -ffinite-math-only since r17-3158

"pinskia at gcc dot gnu.org via Gcc-bugs" <[email protected]>
Newsgroups gmane.comp.gcc.bugs
Message-ID <[email protected]/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126775

Drea Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
            Summary|[17 Regression] ICE: tree   |[17 Regression] ICE: tree
                   |check: expected real_cst,   |check: expected real_cst,
                   |have vector_cst in          |have vector_cst in
                   |generic_simplify_MINUS_EXPR |generic_simplify_MINUS_EXPR
                   |, at                        |, at
                   |generic-match-6.cc:7470     |generic-match-6.cc:7470
                   |with -ffinite-math-only     |with -ffinite-math-only
                   |                            |since r17-3158
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2026-08-10
                 CC|                            |roger at nextmovesoftware dot com
   Target Milestone|---                         |17.0

--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> ---
r17-3158-g2fb55e1d061ab0 .


REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (@0))
is wrong for vectors.
Something much more complex is needed.

real_zerop will return true for {0.0,-0.0} so we need to check for uniform
vector constant first (if not then don't do it); otherwise if the uniform value
is -0.0 then handle it.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.