This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/78411] [7 Regression] FAIL: gcc.target/i386/pr45685.c scan-assembler-times cmov 6


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

--- Comment #7 from rguenther at suse dot de <rguenther at suse dot de> ---
On Mon, 21 Nov 2016, jakub at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78411
> 
> --- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> Oh, starting with r242550 this FAILs now everywhere.  The question is why it
> FAILed for H.J. before r242550.
> So shall we just add -ftree-loop-if-convert to dg-options of this test?

Not sure.  Maybe remove it instead?  Why does RTL if-conversion not
catch it?  Or why does PHI-OPT not catch it:

  <bb 5>:
  # s_40 = PHI <s_2(4), 0(2)>
  # i_35 = PHI <i_3(4), 0(2)>
  _25 = MEM[base: products_16(D), index: i_35, step: 8, offset: 0B];
  if (_25 > 0)
    goto <bb 7>;
  else
    goto <bb 6>;

  <bb 6>:
  _17 = -_25;

  <bb 7>:
  # iftmp.0_13 = PHI <1(5), -1(6)>
  # prephitmp_10 = PHI <_25(5), _17(6)>
  # prephitmp_9 = PHI <-1(5), 1(6)>
  # prephitmp_33 = PHI <4294967295(5), 1(6)>
  # prephitmp_32 = PHI <1(5), 4294967295(6)>
  _31 = (long long unsigned int) prephitmp_10;

this should be ABS_EXPR<>.  I guess the other PHIs get in the way.
Earlier PHI-OPT has too convoluted tests still.  The above also
shows some excessive PRE of constants (we're inserting more PHIs
when dealing with a all-constant-arg PHI):

   <bb 5>:
-  # iftmp.0_12 = PHI <1(4), -1(12)>
-  _4 = _3 * iftmp.0_12;
-  _5 = (long long unsigned int) _4;
+  # iftmp.0_12 = PHI <1(3), -1(4)>
+  # prephitmp_37 = PHI <_3(3), _36(4)>
+  # prephitmp_38 = PHI <-1(3), 1(4)>
+  # prephitmp_39 = PHI <4294967295(3), 1(4)>
+  # prephitmp_41 = PHI <1(3), 4294967295(4)>
+  _5 = (long long unsigned int) prephitmp_37;

I guess I'll (finally) try to do something about that.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]