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

Reply via email to