diff options
| author | Juergen Ributzka <juergen@apple.com> | 2015-03-03 17:22:53 +0000 |
|---|---|---|
| committer | Juergen Ributzka <juergen@apple.com> | 2015-03-03 17:22:53 +0000 |
| commit | 9baa03fc0793afd4d4cc6da553c13aa0b75ee91b (patch) | |
| tree | ad7c8a3cd00bc04ec7626abd96fc6b2e628853e1 /clang/lib/CodeGen | |
| parent | 773fa2cb0361d5dc27a7e6b13d65d8416be92d37 (diff) | |
| download | bcm5719-llvm-9baa03fc0793afd4d4cc6da553c13aa0b75ee91b.tar.gz bcm5719-llvm-9baa03fc0793afd4d4cc6da553c13aa0b75ee91b.zip | |
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
Diffstat (limited to 'clang/lib/CodeGen')
| -rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index bf7d86fb12f..d3d1e22b4bb 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -6090,13 +6090,6 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID, Builder.CreateStore(Builder.CreateExtractValue(Call, 0), Ops[0]); return Builder.CreateExtractValue(Call, 1); } - // AVX2 broadcast - case X86::BI__builtin_ia32_vbroadcastsi256: { - Value *VecTmp = CreateMemTemp(E->getArg(0)->getType()); - Builder.CreateStore(Ops[0], VecTmp); - Value *F = CGM.getIntrinsic(Intrinsic::x86_avx2_vbroadcasti128); - return Builder.CreateCall(F, Builder.CreateBitCast(VecTmp, Int8PtrTy)); - } // SSE comparison intrisics case X86::BI__builtin_ia32_cmpeqps: case X86::BI__builtin_ia32_cmpltps: |

