Translate NEON vmovn builtin to a vector truncation instead of using an llvm
intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112504 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGBuiltin.cpp b/lib/CodeGen/CGBuiltin.cpp
index 279b685..08993c3 100644
--- a/lib/CodeGen/CGBuiltin.cpp
+++ b/lib/CodeGen/CGBuiltin.cpp
@@ -1420,8 +1420,7 @@
return Builder.CreateZExt(Ops[0], Ty, "vmovl");
return Builder.CreateSExt(Ops[0], Ty, "vmovl");
case ARM::BI__builtin_neon_vmovn_v:
- return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vmovn, &Ty, 1),
- Ops, "vmovn");
+ return Builder.CreateTrunc(Ops[0], Ty, "vmovn");
case ARM::BI__builtin_neon_vmull_lane_v:
splat = true;
case ARM::BI__builtin_neon_vmull_v: