[llvm-commits] [llvm] r155468 - in /llvm/trunk: lib/Transforms/InstCombine/InstCombineCalls.cpp test/Transforms/InstCombine/2012-04-23-Neon-Intrinsics.ll

Lang Hames lhames at gmail.com
Wed Apr 25 19:07:44 PDT 2012


Hi Bob, Evan,

> I vaguely remember this. Do you remember why the multiply isn't moved
> together with the sext / zext?
>
>
> The change was svn 128502.  The commit message doesn't have many details.
>  It references rdar://8832507 and rdar://9203134.  I took a quick look at
> 8832507, where I commented that the zext/sext was getting moved by LICM.
>  Presumably only one of the operands was loop-invariant, so the multiply
> would remain in the loop.
>

That makes sense. Thanks for the pointers to the commits/radars too.

I talked this over with Dan Gohman this morning and we came to the
conclusion that the best way of handling this is probably to add a
specialized simplify for widening mul intrinsics. It should only simplify
when both operands are constant (result is constant), or either constant is
zero or one (result is a sext/zext). This was one of Chandler's suggested
solutions too. I'll work up a patch soonish.

- Lang.


> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120425/01519747/attachment.html>


More information about the llvm-commits mailing list