[LLVMdev] "equivalent" .ll files diverge after optimizations are applied

Bob Wilson
2010-09-01T16:43:09Z

On Aug 31, 2010, at 10:19 PM, Chris Lattner wrote:
>
> Hi Argiris,
>
> The real problem here is that the X86 backend is turning datatypes like
<1 x i64> into MMX operations, but doesn't do so in a safe way
(it's not inserting the requisite EMMS instructions).  After discussing this
with Dale and Bill, the right fix is to stop mapping generic vectors onto MMX
operations.  This will define away the existing -disable-mmx flag and make stuff
like this impossible.
>
> However, this isn't going to happen in the next couple days, certainly
not in time for the 2.8 release branch on friday.  As such, I checked in a
horrible hack in r112696 that prevents SRoA from introducing mmx specific vector
types.  I'm not aware of a target where those datatypes are actually useful,
so this shouldn't be bad.  On your testcase, no mmx operations are produced.

Those types are all used with NEON.  I'll try to do some experiments to
measure the impact of this....