Lower _mm256_broadcastsi128_si256 directly to a vector shuffle.
authorJuergen Ributzka <juergen@apple.com>
Tue, 3 Mar 2015 17:22:53 +0000 (17:22 +0000)
committerJuergen Ributzka <juergen@apple.com>
Tue, 3 Mar 2015 17:22:53 +0000 (17:22 +0000)
commit9baa03fc0793afd4d4cc6da553c13aa0b75ee91b
treead7c8a3cd00bc04ec7626abd96fc6b2e628853e1
parent773fa2cb0361d5dc27a7e6b13d65d8416be92d37
Lower _mm256_broadcastsi128_si256 directly to a vector shuffle.

Originally we were using the same GCC builtins to lower this AVX2 vector
intrinsic. Instead we will now lower it directly to a vector shuffle.

This will not only allow LLVM to generate better code, but it will also allow us
to remove the GCC intrinsics.

Reviewed by Andrea

This is related to rdar://problem/18742778.

llvm-svn: 231081
clang/include/clang/Basic/BuiltinsX86.def
clang/lib/CodeGen/CGBuiltin.cpp
clang/lib/Headers/avx2intrin.h
clang/test/CodeGen/avx2-builtins.c