diff options
author | Tim Northover <t.p.northover@gmail.com> | 2019-10-30 11:27:13 +0000 |
---|---|---|
committer | Tim Northover <t.p.northover@gmail.com> | 2019-11-20 13:20:02 +0000 |
commit | e23d6f3184d365a9e72a67dddd870d98e80f998d (patch) | |
tree | 6341d8087731476d7fece8726f23763394ef2b49 /clang/lib/CodeGen/CGBuiltin.cpp | |
parent | db73bcd98ef4ffbe91405a5adfcfdcd83bc007f4 (diff) | |
download | bcm5719-llvm-e23d6f3184d365a9e72a67dddd870d98e80f998d.tar.gz bcm5719-llvm-e23d6f3184d365a9e72a67dddd870d98e80f998d.zip |
NeonEmitter: remove special case on casting polymorphic builtins.
For some reason we were not casting a fairly obscure class of builtin calls we
expected to be polymorphic to vectors of char. It worked because the only
affected intrinsics weren't actually polymorphic after all, but is
unnecessarily complicated.
Diffstat (limited to 'clang/lib/CodeGen/CGBuiltin.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index d9d0538b913..ecac9aee5c7 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -5456,6 +5456,11 @@ Value *CodeGenFunction::EmitCommonNeonBuiltinExpr( llvm::Type *Tys[2] = { Ty, GetFloatNeonType(this, Type) }; return EmitNeonCall(CGM.getIntrinsic(LLVMIntrinsic, Tys), Ops, NameHint); } + case NEON::BI__builtin_neon_vcvtx_f32_v: { + llvm::Type *Tys[2] = { VTy->getTruncatedElementVectorType(VTy), Ty}; + return EmitNeonCall(CGM.getIntrinsic(LLVMIntrinsic, Tys), Ops, NameHint); + + } case NEON::BI__builtin_neon_vext_v: case NEON::BI__builtin_neon_vextq_v: { int CV = cast<ConstantInt>(Ops[2])->getSExtValue(); |