[PATCH] [X86] Replace avx2.pbroadcast intrinsics with native IR.

Ahmed Bougacha ahmed.bougacha at gmail.com
Fri Jun 19 11:39:45 PDT 2015

In http://reviews.llvm.org/D10555#191088, @spatel wrote:

> Hi Ahmed -
> I had a similar patch in http://reviews.llvm.org/D8276, but then it was pointed out that this may not be the best solution. The concern is that doing it this way may alter/optimize code at -O0 (debugging vector code is hard enough without the damn compiler getting in the way!).
> So for my next patch on this front, http://reviews.llvm.org/D8486, I used instcombine so there would be no changes in the front-end or -O0.

Ah, I saw the vinsert/vextract commits and figured "this is fine";  I missed the other half!

To make sure I understand: this is only a problem because of DAGCombines running at -O0, right?  (and perhaps some of the lowering being too smart? though without combines I'd find that surprising)
And this in turn is only a problem because the C intrinsics (_mm_*) are always inlined, and thus can be combined, right?

I guess there's a reason not to, but would it make sense to avoid inlining them at -O0?  That oughta give you the best debuggability we can give, right?




More information about the llvm-commits mailing list