[Bug tree-optimization/123107] [15/16 Regression] X86-64: ICE at -O2 during RTL pass: expand
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 8 07:52:14 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123107
--- Comment #13 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:
https://gcc.gnu.org/g:ae0cdb01b08fb4929ef17c534f86cd9fae78e799
commit r16-6569-gae0cdb01b08fb4929ef17c534f86cd9fae78e799
Author: Richard Biener <rguenther@suse.de>
Date: Wed Jan 7 13:18:42 2026 +0100
middle-end/123107 - avoid invalid vector folding
We fold (v >> CST) == { 0, 0.. } into v < { 0, 0.. } but fail to
validate that's valid for the target. The following adds such check,
making sure to apply after IPA (due to offloading) and only when
the original form wasn't valid for the target (like before vector
lowering) or when the new form is. In particular in this case
we have an equality compare resulting in a non-vector which we
can handle, but a similar LT/GT is never handled.
PR middle-end/123107
* fold-const.cc (fold_binary_loc): Guard (v >> CST) == { 0, 0.. }
to v < { 0, 0.. } folding.
* gcc.dg/torture/pr123107.c: New testcase.
More information about the Gcc-bugs
mailing list