[llvm-commits] [llvm] r99953 - /llvm/trunk/lib/Target/X86/X86InstrSSE.td

Jakob Stoklund Olesen stoklund at 2pi.dk
Tue Mar 30 16:16:34 PDT 2010


On Mar 30, 2010, at 3:57 PM, Jakob Stoklund Olesen wrote:

> 
> On Mar 30, 2010, at 3:50 PM, Chris Lattner wrote:
> 
>> 
>> On Mar 30, 2010, at 3:46 PM, Jakob Stoklund Olesen wrote:
>> 
>>> Author: stoklund
>>> Date: Tue Mar 30 17:46:55 2010
>>> New Revision: 99953
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=99953&view=rev
>>> Log:
>>> V_SETALLONES is an integer instruction.
>>> 
>>> Since it is just a pxor in disguise, we should probably expand it to a full
>>> polymorphic triple.
>> 
>> Couldn't V_SETALLONES be implementated in all domains to avoid a domain crossing?
> 
> Yes, and so can V_SET0.

On second thought, no it can't.

V_SETALLONES is implemented as pcmpeqd, and the corresponding floating-point operation would be cmpeqps/cmpeqpd. But that does not produce all ones if the register happens to contain a NaN!

I don't think that V_SETALLONES is useful for floating-point anyway?

V_SET0 is easy to do. It is implemented with xorps.







More information about the llvm-commits mailing list