On Thu, Jul 07, 2005 at 05:30:26PM -0700, Dale Johannesen wrote:
> cvtss2sd[EMAIL PROTECTED](%ecx), %xmm0
>
> (this is Linux, the same happens on Darwin).
> This is not really a good idea, as movsd of a double-precision 1.0 is
> faster. The change from double to single precision
On Fri, Jul 08, 2005 at 05:37:45PM +0200, Paolo Bonzini wrote:
> Also, here is some code that tries to load 1.0 into an SSE register
> without using the constant pool. I don't know if it is fast or not.
...
> pinsrwl $3, %1, %0" : "=x" (i) : "r" (0x3ff0));
No, this instruction is dreadfu
(this is Linux, the same happens on Darwin).
This is not really a good idea, as movsd of a double-precision 1.0 is
faster.
I wonder whether fixing compress_float_constant is better. It seems
similar to the old hack in expr.c: expanding a/b to a*(1/b), and hope
that it is transformed back to