Simplify the code a bit and avoid a gcc waring about uninitialized variables.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105676 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGBuiltin.cpp b/lib/CodeGen/CGBuiltin.cpp
index 777be4d..1c90309 100644
--- a/lib/CodeGen/CGBuiltin.cpp
+++ b/lib/CodeGen/CGBuiltin.cpp
@@ -906,35 +906,7 @@
Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
const CallExpr *E) {
- llvm::SmallVector<Value*, 4> Ops;
- bool usgn, quad, poly, half;
- const llvm::Type *Ty;
- unsigned Int;
-
- // Determine the type of this overloaded NEON intrinsic.
- if (BuiltinID > ARM::BI__builtin_thread_pointer) {
- for (unsigned i = 0, e = E->getNumArgs() - 1; i != e; i++)
- Ops.push_back(EmitScalarExpr(E->getArg(i)));
-
- llvm::APSInt Result;
- const Expr *Arg = E->getArg(E->getNumArgs()-1);
- if (!Arg->isIntegerConstantExpr(Result, getContext()))
- return 0;
-
- unsigned type = Result.getZExtValue();
- usgn = type & 0x08;
- quad = type & 0x10;
- poly = type == 5 || type == 6;
- half = type == 7;
-
- Ty = GetNeonType(VMContext, type & 0x7, quad);
- if (!Ty)
- return 0;
- }
-
- switch (BuiltinID) {
- default: return 0;
- case ARM::BI__clear_cache: {
+ if (BuiltinID == ARM::BI__clear_cache) {
const FunctionDecl *FD = E->getDirectCallee();
Value *a = EmitScalarExpr(E->getArg(0));
Value *b = EmitScalarExpr(E->getArg(1));
@@ -944,6 +916,29 @@
return Builder.CreateCall2(CGM.CreateRuntimeFunction(FTy, Name),
a, b);
}
+
+ llvm::SmallVector<Value*, 4> Ops;
+ // Determine the type of this overloaded NEON intrinsic.
+ assert(BuiltinID > ARM::BI__builtin_thread_pointer);
+ for (unsigned i = 0, e = E->getNumArgs() - 1; i != e; i++)
+ Ops.push_back(EmitScalarExpr(E->getArg(i)));
+
+ llvm::APSInt Result;
+ const Expr *Arg = E->getArg(E->getNumArgs()-1);
+ if (!Arg->isIntegerConstantExpr(Result, getContext()))
+ return 0;
+
+ unsigned type = Result.getZExtValue();
+ bool usgn = type & 0x08;
+ bool quad = type & 0x10;
+
+ const llvm::Type *Ty = GetNeonType(VMContext, type & 0x7, quad);
+ if (!Ty)
+ return 0;
+
+ unsigned Int;
+ switch (BuiltinID) {
+ default: return 0;
case ARM::BI__builtin_neon_vaba_v:
case ARM::BI__builtin_neon_vabaq_v:
Int = usgn ? Intrinsic::arm_neon_vabau : Intrinsic::arm_neon_vabas;