[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

Dale Johannesen dalej at apple.com
Tue Sep 7 14:10:58 PDT 2010


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.




More information about the llvm-commits mailing list