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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |x86_64-*-*
           Keywords|                            |wrong-code
   Last reconfirmed|                            |2026-11-04
           Priority|P3                          |P2
             Status|UNCONFIRMED                 |ASSIGNED
     Ever confirmed|0                           |1
      Known to work|                            |14.4.0
   Target Milestone|---                         |15.4
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
            Summary|[16 Regression] overread    |[15/16/17 Regression]
                   |causes segfault in masked   |overread causes segfault in
                   |vect epilogue               |masked vect epilogue

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Also fails on the 15 branch if you use --param vect-partial-vector-usage=1.
Also fails with a fully masked loop (--param vect-partial-vector-usage=2).

  _61 = {_60, _60, _60, _60, _60, _60, _60, _60, _60, _60, _60, _60, _60, _60,
_60, _60};
  _62 = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 } < _61;
...
  vect__6.19_48 = .MASK_LOAD (vectp_s.17_45, 32B, loop_mask_47, { 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 });
  vectp_s.17_49 = vectp_s.17_45 + 18446744073709551584;
  vect__6.20_50 = VEC_PERM_EXPR <vect__6.19_48, vect__6.19_48, { 0, 0, 1, 1, 2,
2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 }>;

possibly the issue is the load permutation that makes us register the wrong
mask?  I will have a closer look.

Reply via email to