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

--- Comment #30 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #28)
> Ah, I can actually reproduce the failure with the #c27 testcase with -Ofast
> -fno-tree-pre.
> 
> So, to workaround this issue with SPEC, either we need to find out why PRE
> peels off the first iteration on this small testcase and not on the original
> 628.pop2_s and see if we can convince it to do so, or we need some pattern
> match to handle the -Ofast -fno-tree-pre #c27 testcase the way I've outlined
> in #c18.

For me, with -Ofast -march=core-avx2 PRE gets us to

  dlogchl = 1.00000000000000002081668171172168513294309377670288085938e-2;
  pretmp_1370 = my_task;
  pretmp_1372 = master_task;

  <bb 35> [local count: 85892]:
  # logchl_645 = PHI
<-3.0099999999999997868371792719699442386627197265625e+0(34), logchl_747(44)>
  # mc_647 = PHI <mc_841(D)(34), mc_761(44)>
  # n_651 = PHI <0(34), _835(44)>
  # prephitmp_1174 = PHI
<1.00000000000000002081668171172168513294309377670288085938e-2(34),
pretmp_1173(44)>
  # prephitmp_1177 = PHI
<1.00000000000000002081668171172168513294309377670288085938e-3(34), _1176(44)>
  # prephitmp_1371 = PHI <pretmp_1370(34), prephitmp_1242(44)>
  # prephitmp_1373 = PHI <pretmp_1372(34), prephitmp_1245(44)>
  logchl_747 = logchl_645 + prephitmp_1174;
  chlamnt = prephitmp_1177;
...
  <bb 43> [local count: 85892]:
  _835 = n_651 + 1;
  if (_835 == 401)
    goto <bb 45>; [12.36%]
  else
    goto <bb 44>; [87.64%]

  <bb 44> [local count: 75276]:
  pretmp_1173 = dlogchl;
  _1175 = logchl_747 + pretmp_1173;
  _1176 = __builtin_pow (1.0e+1, _1175);
  goto <bb 35>; [100.00%]

Reply via email to