[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