https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110554
Bug ID: 110554
Summary: more invalid wide Boolean values
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: kristerw at gcc dot gnu.org
Target Milestone: ---
The fix for PR 110487 improved the situation, but my tool still finds some
cases where GCC generates invalid <signed-boolean:32> values.
One such case can be seen in gcc.c-torture/compile/pr104499.c:
typedef int __attribute__((__vector_size__ (8 * sizeof (int)))) V;
V v;
void
foo (void)
{
v = ((1 | v) != 1);
}
Here veclower2 is introducing code
<signed-boolean:32> _8;
<signed-boolean:32> _10;
...
gimple_assign <gt_expr, _8, _7, 1, NULL>
gimple_assign <bit_and_expr, _10, _8, 1, NULL>
More examples of this failure can be seen in gcc.c-torture/compile/pr108237.c
and gcc.c-torture/compile/pr54713-1.c