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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
   Last reconfirmed|                            |2017-12-19
     Ever confirmed|0                           |1

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.  I see we detect FMAs (compared to LLVM).  We have

  _210 = VEC_PERM_EXPR <v6_200, v6_200, { 3, 3, 3, 3 }>;
  _211 = __builtin_ia32_sqrtpd256 (_210);

but in a few cases end up with the following instead:

  _89 = VIEW_CONVERT_EXPR<double[4]>(v6_200)[4];
  _213 = {_89, _89, _89, _89};
  _214 = __builtin_ia32_sqrtpd256 (_213);

note the out-of-bound access to v6_200!

  vLastCol = _mm256_set1_pd(vLastRow[6]);

that looks bougs, no?  vLastRow is __m256d which is 4 doubles, not 6.

Reply via email to