[llvm] r215737 - [x86] Teach the new AVX v4f64 shuffle lowering to use UNPCK instructions

Chandler Carruth chandlerc at gmail.com
Sat Aug 16 16:12:45 PDT 2014


On Fri, Aug 15, 2014 at 11:15 AM, Reid Kleckner <rnk at google.com> wrote:

> I fixed the MSVC 2013 build for this in r215744.  It gives this cool
> diagnostic:
>
> ..\lib\Target\X86\X86ISelLowering.cpp(7085) : error C2971:
> 'llvm::VariadicFunction1' : template parameter 'Func' :
> 'isShuffleEquivalentImpl' : a local variable cannot be used as a non-type
> argument
>         ..\include\llvm/ADT/VariadicFunction.h(153) : see declaration of
> 'llvm::VariadicFunction1'
>         ..\lib\Target\X86\X86ISelLowering.cpp(7061) : see declaration of
> 'isShuffleEquivalentImpl'
>
> Obviously, isShuffleEquivalentImpl is not a local variable. Switching to
> an anonymous namespace over a static function makes the problem go away.
> Maybe what it's trying to say is that if you instantiate templates with
> static things you'll get template mangling collisions, because they don't
> internalize template instantiations that use internal decls.
>

Wild. Thanks for fixing, I would never have figured that out.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140816/e10600f8/attachment.html>


More information about the llvm-commits mailing list