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%]

Reply via email to