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

Sean Silva chisophugis at gmail.com
Fri Jun 19 16:48:31 PDT 2015

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

> In http://reviews.llvm.org/D10555#191124, @ab wrote:
> > 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 think the problem is independent of inlining and DAGCombines. As an example, consider this:
>   __m128 foo(__m256 a) {
>     return _mm256_extractf128_ps(a, 0);
>   }

If _mm256_extractf128_ps is a proper function instead of a macro (using the enable_if trick if necessary), would Ahmed's suggestion work for keeping these debuggable?



More information about the llvm-commits mailing list