This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, i386]: Vectorize copysign for x86
On 07/15/2009 05:45 PM, Richard Guenther wrote:
ï ï.section ï ï.rodata.cst16,"aM",@progbits,16
ï ï.align 16
.LC0:
ï ï.long ï ï2147483648
ï ï.long ï ï2147483648
ï ï.long ï ï2147483648
ï ï.long ï ï2147483648
ï ï.align 16
Generating these kind of constants may be smaller and faster if
we use some arithmetic tricks. Do we have some generic routine
that could be used to materialize special constants?
We can generate {0, 0, 0, 0} using pxor and {-1, -1, -1, -1} using
pcmpeqd, see standard_sse_constant_opcode and friends in
config/i386/i386.c. Although { 0x8000, 0x8000, 0x8000, 0x8000 } looks
quite promising, I don't know of any simple way to directly materialize
these kinds of constants in the register.
Uros.