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

Chris Lattner clattner at apple.com
Tue Mar 30 20:56:40 PDT 2010


On Mar 30, 2010, at 4:16 PM, Jakob Stoklund Olesen wrote:

> 
> 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.

Right, I was thinking more of the zero case than the all-ones case, thanks.

-Chris





More information about the llvm-commits mailing list