[Bug tree-optimization/27341] [4.2 Regression] ICE in in add_virtual_operand with complex types
rguenth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu May 11 08:56:00 GMT 2006
------- Comment #5 from rguenth at gcc dot gnu dot org 2006-05-11 08:56 -------
Reduced testcase:
double zero;
double matmul_c8 (_Complex double * dest)
{
*dest += 1;
return zero;
}
we go from before cplxlower
matmul_c8 (dest)
{
double D.1526;
complex double D.1525;
complex double D.1524;
<bb 2>:
# VUSE <zero_4>;
D.1524_2 = *dest_1;
D.1525_3 = D.1524_2 + __complex__ (1.0e+0, 0.0);
# zero_7 = V_MAY_DEF <zero_4>;
*dest_1 = D.1525_3;
# VUSE <zero_7>;
D.1526_5 = zero;
return D.1526_5;
}
to after it
;; basic block 2, loop depth 0, count 0
;; prev block 0, next block 1
;; pred: ENTRY [100.0%] (fallthru,exec)
;; succ: EXIT [100.0%]
<bb 2>:
# VUSE <SMT.4>;
D.1538 = REALPART_EXPR <*dest_1>;
# VUSE <SMT.4>;
D.1539 = IMAGPART_EXPR <*dest_1>;
D.1524_2 = COMPLEX_EXPR <D.1538, D.1539>;
CR.9_9 = D.1538;
CI.10_10 = D.1539;
D.1542 = CR.9_9 + 1.0e+0;
D.1525_3 = COMPLEX_EXPR <D.1542, CI.10_10>;
CR.11_11 = D.1542;
# zero_7 = V_MAY_DEF <zero_4>;
*dest_1 = D.1525_3;
# VUSE <zero_7>;
D.1526_5 = zero;
return D.1526_5;
note that for the complex dest, we have Vops for zero only, but later
a SMT falls out of the sky.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27341
More information about the Gcc-bugs
mailing list