https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106247
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- the warning is correct in the sense the load is there in IR, though it looks like it is dead (but only because b and a are unused): array.7_137 = (long unsigned int) &MEM <double[6]> [(void *)&b + 8B]; _139 = array.7_137 >> 3; _140 = -_139; _141 = _140 & 3; first_142 = (long int) _141; _143 = MIN_EXPR <first_142, 2>; _145 = 2 - _143; alignedEnd_148 = _143; goto <bb 4>; [100.00%] <bb 3> [local count: 8655976563]: index.12_166 = (long unsigned int) index_165; _167 = index.12_166 * 8; _168 = &MEM <double[4]> [(void *)&a + 16B] + _167; _171 = &MEM <double[6]> [(void *)&b + 8B] + _167; _172 = *_168; MEM[(double &)_171] = _172; index_173 = index_165 + 1; <bb 4> [local count: 9725816346]: # index_165 = PHI <0(2), index_173(3)> if (_143 > index_165) goto <bb 3>; [89.00%] else goto <bb 6>; [11.00%] <bb 5> [local count: 8655976563]: index.10_152 = (long unsigned int) index_151; _153 = index.10_152 * 8; _154 = &MEM <double[4]> [(void *)&a + 16B] + _153; _155 = MEM[(__m256d_u * {ref-all})_154]; _158 = &MEM <double[6]> [(void *)&b + 8B] + _153; MEM[(__m256d * {ref-all})_158] = _155; index_159 = index_151 + 4; <bb 6> [local count: 9725816346]: # index_151 = PHI <_143(4), index_159(5)> if (alignedEnd_148 > index_151) goto <bb 5>; [89.00%] else goto <bb 8>; [11.00%]