[llvm-commits] [llvm] r113261 - in /llvm/trunk: include/llvm/CodeGen/ValueTypes.h include/llvm/CodeGen/ValueTypes.td include/llvm/Intrinsics.td lib/Target/X86/X86ISelLowering.cpp lib/VMCore/ValueTypes.cpp utils/TableGen/CodeGenTarget.cpp

Bill Wendling isanbard at gmail.com
Tue Sep 7 14:16:53 PDT 2010


On Sep 7, 2010, at 2:10 PM, Dale Johannesen wrote:
> On Sep 7, 2010, at 1:16 PM, Bill Wendling wrote:
>> On Sep 7, 2010, at 1:08 PM, Chris Lattner wrote:
>> On Sep 7, 2010, at 1:03 PM, Bill Wendling wrote:
>>> 
>>>> Author: void
>>>> Date: Tue Sep  7 15:03:56 2010
>>>> New Revision: 113261
>>>> 
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=113261&view=rev
>>>> Log:
>>>> Add an MVT::x86mmx type. It will take the place of all current MMX  
>>>> vector types.
>>> 
>>> Hi Bill, why did you mark stuff in ValueTypes.h with "- MMX type"?   
>>> The whole idea is that those won't map onto MMX anymore.
>>> 
>> Right. I was thinking that those would go away? Or at least  
>> shouldn't be used when not doing MMX?
> 
> My understanding is this is what's supposed to happen:
> FEs use the vector types as they currently exist, but generate  
> intrinsics for all MMX operations.
> Optimizers can optimize vector types, but they won't know about the  
> intrinsics, and therefore won't alter or create MMX operations.
> In the X86 BE, the existing  MMX-sized MVT types are made illegal.   
> Anything in the X86 BE currently using them is changed to use the new  
> ones you just added.
> SelectionDAGBuilder (i.e. X86ISelLowering) lowers the intrinsics to  
> use the new types instead of the existing ones.
> Anything using an MMX-sized vector type that's not an MMX intrinisic  
> is lowered using the standard lowering for illegal types.
> 
That was my understanding too, but I confused the "X86 BE" with "all BEs". :-)

I removed the comments.

-bw





More information about the llvm-commits mailing list