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: