[Bug middle-end/19609] [4.0 Regression] real and imaginary part interchanged when flags_complex_divide_method=1

pcarlini at suse dot de gcc-bugzilla@gcc.gnu.org
Tue Jan 25 10:50:00 GMT 2005


------- Additional Comments From pcarlini at suse dot de  2005-01-25 10:49 -------
Hi, everything looks fine here (20050124 on x86-linux), double checked the 
formulas, bootstrapped c, c++, tested a few other divisions besides the
testcase (now ok), and cannot reproduce the last dump of Thomas. The below
is mine, seems ok (e.g., the goto at the end of block L0 is present):

;; Function main (main)

main ()
{
  float D.2643;
  float D.2642;
  float D.2641;
  float D.2640;
  float D.2639;
  float D.2638;
  float D.2637;
  float D.2636;
  float D.2635;
  float D.2634;
  float D.2633;
  float D.2632;
  float D.2631;
  float D.2630;
  float D.2629;
  float D.2628;
  float D.2627;
  float D.2626;
  float D.2625;
  float D.2624;
  float D.2621;
  float D.2620;
  float D.2619;
  float D.2618;
  float D.2617;
  float D.2616;
  complex float c;
  complex float b;
  complex float a;
  complex float D.2611;

<bb 0>:
  D.2616 = REALPART_EXPR <a>;
  D.2617 = IMAGPART_EXPR <a>;
  D.2618 = REALPART_EXPR <b>;
  D.2619 = IMAGPART_EXPR <b>;
  D.2620 = ABS_EXPR <D.2618>;
  D.2621 = ABS_EXPR <D.2619>;
  if (D.2620 < D.2621) goto <L0>; else goto <L1>;

<L0>:;
  D.2626 = D.2618 / D.2619;
  D.2627 = D.2618 * D.2626;
  D.2628 = D.2627 + D.2619;
  D.2629 = D.2616 * D.2626;
  D.2630 = D.2629 + D.2617;
  D.2631 = D.2617 * D.2626;
  D.2632 = D.2631 - D.2616;
  D.2633 = D.2630 / D.2628;
  D.2634 = D.2632 / D.2628;
  D.2624 = D.2633;
  D.2625 = D.2634;
  goto <bb 1>;

<L1>:;
  D.2635 = D.2619 / D.2618;
  D.2636 = D.2619 * D.2635;
  D.2637 = D.2636 + D.2618;
  D.2638 = D.2617 * D.2635;
  D.2639 = D.2638 + D.2616;
  D.2640 = D.2616 * D.2635;
  D.2641 = D.2617 - D.2640;
  D.2642 = D.2639 / D.2637;
  D.2643 = D.2641 / D.2637;
  D.2624 = D.2642;
  D.2625 = D.2643;

<bb 1>:
  D.2611 = COMPLEX_EXPR <D.2624, D.2625>;
  c = D.2611;
  return;

}

-- 


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



More information about the Gcc-bugs mailing list