From 4a6c7fc872a141db761c9d85d4059c97224987f0 Mon Sep 17 00:00:00 2001 From: Bob Wilson <bob.wilson@apple.com> Date: Thu, 2 Dec 2010 01:18:23 +0000 Subject: [PATCH] Add casts for splatted scalars in calls to Neon builtins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120641 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/NeonEmitter.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/utils/TableGen/NeonEmitter.cpp b/utils/TableGen/NeonEmitter.cpp index 7badd5af860..eda76b3ca99 100644 --- a/utils/TableGen/NeonEmitter.cpp +++ b/utils/TableGen/NeonEmitter.cpp @@ -790,8 +790,11 @@ static std::string GenBuiltin(const std::string &name, const std::string &proto, continue; } + if (splat && (i + 1) == e) + args = Duplicate(GetNumElements(typestr, argQuad), typestr, args); + // Check if an explicit cast is needed. - if (!argScalar && + if ((splat || !argScalar) && ((ck == ClassB && argType != 'c') || argPoly || argUsgn)) { std::string argTypeStr = "c"; if (ck != ClassB) @@ -801,10 +804,7 @@ static std::string GenBuiltin(const std::string &name, const std::string &proto, args = "(" + TypeString('d', argTypeStr) + ")" + args; } - if (splat && (i + 1) == e) - s += Duplicate(GetNumElements(typestr, argQuad), typestr, args); - else - s += args; + s += args; if ((i + 1) < e) s += ", "; }