[Bug middle-end/19609] [4.0 Regression] real and imaginary part interchanged when flags_complex_divide_method=1
Thomas dot Koenig at online dot de
gcc-bugzilla@gcc.gnu.org
Tue Jan 25 08:49:00 GMT 2005
------- Additional Comments From Thomas dot Koenig at online dot de 2005-01-25 08:48 -------
Same thing:
$ cat cdivide.c
#include <stdio.h>
#include <math.h>
#include <complex.h>
int main()
{
float complex a,b,c;
c = a/b;
}
$ ~/gcc-bin/gcc/xgcc -fdump-rtl-all-all -fdump-tree-all -B ~/gcc-bin/gcc/ cdivide.c
cdivide.c: In function 'main':
cdivide.c:9: internal compiler error: in purge_dead_edges, at cfgrtl.c:2460
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
$ cat cdivide.c.t14.oplower
;; Function main (main)
main ()
{
float D.2722;
float D.2721;
float D.2720;
float D.2719;
float D.2718;
float D.2717;
float D.2716;
float D.2715;
float D.2714;
float D.2713;
float D.2712;
float D.2711;
float D.2710;
float D.2709;
float D.2708;
float D.2707;
float D.2706;
float D.2705;
float D.2704;
float D.2703;
float D.2700;
float D.2699;
float D.2698;
float D.2697;
float D.2696;
float D.2695;
complex float c;
complex float b;
complex float a;
complex float D.2690;
<bb 0>:
D.2695 = REALPART_EXPR <a>;
D.2696 = IMAGPART_EXPR <a>;
D.2697 = REALPART_EXPR <b>;
D.2698 = IMAGPART_EXPR <b>;
D.2699 = ABS_EXPR <D.2697>;
D.2700 = ABS_EXPR <D.2698>;
if (D.2699 < D.2700) goto <L0>; else goto <L1>;
<L0>:;
D.2705 = D.2697 / D.2698;
D.2706 = D.2697 * D.2705;
D.2707 = D.2706 + D.2698;
D.2708 = D.2695 * D.2705;
D.2709 = D.2708 + D.2696;
D.2710 = D.2696 * D.2705;
D.2711 = D.2710 - D.2695;
D.2712 = D.2709 / D.2707;
D.2713 = D.2711 / D.2707;
D.2703 = D.2712;
D.2704 = D.2713;
<L1>:;
D.2714 = D.2698 / D.2697;
D.2715 = D.2698 * D.2714;
D.2716 = D.2715 + D.2697;
D.2717 = D.2696 * D.2714;
D.2718 = D.2717 + D.2695;
D.2719 = D.2695 * D.2714;
D.2720 = D.2696 - D.2719;
D.2721 = D.2718 / D.2716;
D.2722 = D.2720 / D.2716;
D.2703 = D.2721;
D.2704 = D.2722;
<bb 1>:
D.2690 = COMPLEX_EXPR <D.2703, D.2704>;
c = D.2690;
return;
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19609
More information about the Gcc-bugs
mailing list