This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]