This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH (SPU): Add enhanced Double Precision (eDP) support on SPU
- From: Sa Liu <SALIU at de dot ibm dot com>
- To: trevor_smigiel at playstation dot sony dot com
- Cc: gcc-patches at gcc dot gnu dot org, Ira Rosen <IRAR at il dot ibm dot com>, Steven Bosscher <stevenb dot gcc at gmail dot com>, Ulrich Weigand <Ulrich dot Weigand at de dot ibm dot com>
- Date: Wed, 11 Jul 2007 13:58:10 +0200
- Subject: Re: PATCH (SPU): Add enhanced Double Precision (eDP) support on SPU
trevor_smigiel@playstation.sony.com wrote on 10.07.2007 23:52:43:
> Is there a reason you didn'y make this change?
> > Can you rewrite the celledp handling in spu_emit_branch_or_set.
Instead
> > of special casing in there, move all special casing into a
> > (define_expand "ceq_df") and (define_expand "cgt_df").
>
> Trevor
>
Because I didn't find a proper method to cast the DFmode operand to a
V4SImode pseudo register.
In emit-rtl.c, the function validate_subreg checks the innermode and
outermode size to be the same, when casting floating point mode: "Subregs
involving floating point modes are not allowed to change size. Therefore
(subreg:DI (reg:DF) 0) is fine, but (subreg:SI (reg:DF) 0) isn't."
Any idea about how to solve that?
Thanks,
Sa