------- Comment #15 from dave at hiauly1 dot hia dot nrc dot ca  2010-09-18 
18:59 -------
Subject: Re:  [4.6 Regression] FAIL:
        gcc.dg/torture/builtin-cproj-1.c  -O1  (test for excess errors)

On Sat, 18 Sep 2010, rguenth at gcc dot gnu dot org wrote:

> ------- Comment #14 from rguenth at gcc dot gnu dot org  2010-09-18 18:25 
> -------
> You have way more non-SSA variables - possibly due to callee-copy of args
> (again).
> I suppose some optimizations end up being disabled for some reason by that,
> but likely nobody will be interested to fixup missed optimizations for
> this target :/
> So - if you are interested (heh ...) I'd start comparing dumps to i?86 dumps
> and see where they start to diverge badly.  Also try and see why you end up
> with

I already did compare dumps with i?86.  cplxlower is where major differences
started to appear, although there are some differences before that.

>   complex double cd.1;
>   complex long double cld.0;
> not in SSA form:
>   REALPART_EXPR <cld.0> = cld$real_19;
>   IMAGPART_EXPR <cld.0> = cld$imag_20;
>   REALPART_EXPR <cd.1> = cd$real_10;
>   IMAGPART_EXPR <cd.1> = cd$imag_11;
>   REALPART_EXPR <cd.1> =  Inf;

The problem has something to do with precision.  The problem doesn't occur
for complex float.  For example, this code doesn't appear for float:

CR.11_40 = REALPART_EXPR <D.1935_9>;
CI.12_41 = IMAGPART_EXPR <D.1935_9>;
D.1966_42 = CR.11_40 > 1.79769313486231570814527423731704356798070567526e+308;
D.1967_43 = !D.1966_42;
D.1968_44 = CI.12_41 != 0.0;
D.1969_45 = D.1967_43 || D.1968_44;
if (D.1969_45 == 1)
  goto <bb 6>;
goto <bb 5>;

> on i?86 I never even start having partial definitions of these on the lhs ...
> (but I also do not have the callee-copy, so you might check if SRA makes
> those partial defs from them by trying with -fno-tree-sra).

Thanks for the suggestion.  I'll give it a try.

> If you're not interested I suggest to XFAIL the testcase for the failing
> platforms.

It's really a question of time.  I only have some evenings and weekends
to investigate GCC bugs.




Reply via email to