[Bug target/126529] [16/17 Regression] wrong code at -O3 -mavx2 since r16-8339

"jakub 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=126529

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hjl.tools at gmail dot com,
                   |                            |jakub at gcc dot gnu.org
           Keywords|needs-bisection             |
            Summary|[16/17 Regression] wrong    |[16/17 Regression] wrong
                   |code at -O3 -mavx2          |code at -O3 -mavx2 since
                   |                            |r16-8339

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
r16-8339-gb4c215b36d63e1c264d8c1bd5d34f9aef1bb8463
typedef signed char A[[gnu::vector_size (2)]];
typedef short B[[gnu::vector_size (16)]];
int a, b, c, d;
B e;
[[gnu::vector_size(8 * sizeof (int))]] int f;
_Bool g;

[[gnu::noipa]] void *
foo (long long x, _Bool y, int z, B w)
{
  A h = {};
  short i = h[z];
  f = 0 % f;
  w = e;
  d = w[g];
  h = ((union { short s; A t; }) { i }).t;
  b = 3 / x;
  h = __builtin_shufflevector (h, h, 3, 2);
lab:
  c = h[0];
  if (y)
    return 0;
  y = 1;
  h = ~h;
  goto lab;
}

int
main ()
{
  foo (3355934481768670720LL, 0, a, e);
}
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.