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.