[llvm-commits] [llvm] r113056 - /llvm/trunk/lib/Target/X86/X86ISelLowering.cpp

Evan Cheng evan.cheng at apple.com
Wed Sep 8 11:40:46 PDT 2010


On Sep 4, 2010, at 2:45 AM, Bruno Cardoso Lopes wrote:

> On Sat, Sep 4, 2010 at 12:44 AM, Eric Christopher <echristo at apple.com> wrote:
>> 
>> On Sep 3, 2010, at 7:36 PM, Bruno Cardoso Lopes wrote:
>> 
>>>   bool HasSSE2 = Subtarget->hasSSE2() || Subtarget->hasAVX();
>>>   bool HasSSE3 = Subtarget->hasSSE3() || Subtarget->hasAVX();
>>> +  bool HasSSSE3 = Subtarget->hasSSSE3() || Subtarget->hasAVX();
>> 
>> I understand it's probably just a side effect, but
>> 
>> "HasSSE2" = "HasSSE2 or this other thing"
>> 
>> reads somewhat oddly :)
> 
> Yep, we need to incorporate somehow the AVX with SSE levels, but in
> a way that we can select the disjoint set of them - selecting only
> AVX stuff when AVX is turned on (since AVX contains a version of all
> 128-bit SSE instructions). We try to emulate that right now during isel
> by defining:
> 
> def HasSSE3 : Predicate<"Subtarget->hasSSE3() && !Subtarget->hasAVX()">;
> 
> There's a FIXME there explaining why!
> Anyway, better approaches are always welcome! :)

How about renaming HasSSE3 to CanUseSSE3, etc.?

Evan

> 
> -- 
> Bruno Cardoso Lopes
> http://www.brunocardoso.cc
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list