http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47892

--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-02-25 
10:31:49 UTC ---
Ok, we vectorize on trunk only if I only make the PIO6 float.  Otherwise
if-conversion does not handle (even with -fno-tree-pre)

  if (or_10 > 5.2359879016876220703125e-1)
    goto <bb 5>;
  else
    goto <bb 6>;

<bb 5>:
  orig_14 = or_10 * 3.333333432674407958984375e-1;
  sqr_15 = __builtin_powf (orig_14, 2.0e+0);
  D.2699_19 = sqr_15 * 2.742018523349543102085590362548828125e-6;
  D.2700_20 = D.2699_19 + -1.98410343728028237819671630859375e-4;
  D.2701_21 = D.2700_20 * sqr_15;
  D.2702_22 = D.2701_21 + 8.333332836627960205078125e-3;
  D.2703_23 = D.2702_22 * sqr_15;
  D.2704_24 = D.2703_23 + -1.6666667163372039794921875e-1;
  D.2705_25 = D.2704_24 * sqr_15;
  D.2706_26 = D.2705_25 + 1.0e+0;
  D.2707_27 = D.2706_26 * orig_14;

<bb 6>:
  # iftmp.1_3 = PHI <1.0e+0(5), 0.0(4)>
  # D.2707_59 = PHI <D.2707_27(5), 0.0(4)>
  D.2713_41 = __builtin_powf (D.2707_59, 2.0e+0);
  D.2714_42 = D.2713_41 * 4.0e+0;
  D.2715_43 = 2.0e+0 - D.2714_42;
  D.2716_44 = D.2715_43 * iftmp.1_3;


I think if-conversion does not handle multiple PHIs in the merge block at all.

Reply via email to