Fix IRgen of __builtin_memset.
 - Fix test case to not only have negative tests.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64674 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGBuiltin.cpp b/lib/CodeGen/CGBuiltin.cpp
index e14c9f0..b990c19 100644
--- a/lib/CodeGen/CGBuiltin.cpp
+++ b/lib/CodeGen/CGBuiltin.cpp
@@ -280,7 +280,8 @@
   case Builtin::BI__builtin_memset: {
     Value *Address = EmitScalarExpr(E->getArg(0));
     Builder.CreateCall4(CGM.getMemSetFn(), Address,
-                        EmitScalarExpr(E->getArg(1)),
+                        Builder.CreateTrunc(EmitScalarExpr(E->getArg(1)),
+                                            llvm::Type::Int8Ty),
                         EmitScalarExpr(E->getArg(2)),
                         llvm::ConstantInt::get(llvm::Type::Int32Ty, 1));
     return RValue::get(Address);