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

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|UNCONFIRMED                 |RESOLVED
                 CC|                            |msebor at gcc dot gnu.org

--- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> ---
The latest trunk emits the following -m32 code (AVR is the same) with just two
loads as expected so I think this is resolved:

long long int NumSift (long long int * array, long long unsigned int k)
{
  unsigned int _1;
  unsigned int _2;
  long long int * _3;
  long long int _4;
  unsigned int _5;
  unsigned int _6;
  long long int * _7;
  long long int _8;
  unsigned int _21;
  unsigned int _23;
  long long int * _25;
  long long int pretmp_27;
  long long int prephitmp_28;

  <bb 2> [local count: 1073741824]:
  _1 = (unsigned int) k_13(D);
  _2 = _1 * 8;
  _3 = array_14(D) + _2;
  _4 = *_3;
  _5 = _1 + 1;
  _6 = _5 * 8;
  _7 = array_14(D) + _6;
  _8 = *_7;
  if (_4 < _8)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  k_16 = k_13(D) + 1;
  _21 = (unsigned int) k_16;
  _23 = _21 * 8;
  _25 = array_14(D) + _23;
  pretmp_27 = *_25;

  <bb 4> [local count: 1073741824]:
  # k_12 = PHI <k_13(D)(2), k_16(3)>
  # prephitmp_28 = PHI <_4(2), pretmp_27(3)>
  return prephitmp_28;

}

Reply via email to