[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