aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2010-12-08 20:09:54 +0000
committerBob Wilson <bob.wilson@apple.com>2010-12-08 20:09:54 +0000
commita8b988f6ec8e2355c7081b31578843be33027033 (patch)
treea555bb7c2ff0e23871c70ca063bd4f53fc158339
parentdc7b2ce33d89cc1daaa6521404329b568a771789 (diff)
Stop using clang builtins for Neon vaba intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121277 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Basic/arm_neon.td3
-rw-r--r--lib/CodeGen/CGBuiltin.cpp10
2 files changed, 2 insertions, 11 deletions
diff --git a/include/clang/Basic/arm_neon.td b/include/clang/Basic/arm_neon.td
index 008558aa25..c445808598 100644
--- a/include/clang/Basic/arm_neon.td
+++ b/include/clang/Basic/arm_neon.td
@@ -62,6 +62,7 @@ def OP_REV64 : Op;
def OP_REV32 : Op;
def OP_REV16 : Op;
def OP_REINT : Op;
+def OP_ABA : Op;
class Inst <string n, string p, string t, Op o> {
string Name = n;
@@ -167,7 +168,7 @@ def VTST : WInst<"vtst", "udd", "csiUcUsUiPcQcQsQiQUcQUsQUiQPc">;
// E.3.5 Absolute Difference
def VABD : SInst<"vabd", "ddd", "csiUcUsUifQcQsQiQUcQUsQUiQf">;
def VABDL : SInst<"vabdl", "wdd", "csiUcUsUi">;
-def VABA : SInst<"vaba", "dddd", "csiUcUsUiQcQsQiQUcQUsQUi">;
+def VABA : Inst<"vaba", "dddd", "csiUcUsUiQcQsQiQUcQUsQUi", OP_ABA>;
def VABAL : SInst<"vabal", "wwdd", "csiUcUsUi">;
////////////////////////////////////////////////////////////////////////////////
diff --git a/lib/CodeGen/CGBuiltin.cpp b/lib/CodeGen/CGBuiltin.cpp
index d0bc709c54..4ff029a0e4 100644
--- a/lib/CodeGen/CGBuiltin.cpp
+++ b/lib/CodeGen/CGBuiltin.cpp
@@ -1181,16 +1181,6 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
unsigned Int;
switch (BuiltinID) {
default: return 0;
- case ARM::BI__builtin_neon_vaba_v:
- case ARM::BI__builtin_neon_vabaq_v: {
- Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
- SmallVector<Value*, 2> Args;
- Args.push_back(Ops[1]);
- Args.push_back(Ops[2]);
- Int = usgn ? Intrinsic::arm_neon_vabdu : Intrinsic::arm_neon_vabds;
- Ops[1] = EmitNeonCall(CGM.getIntrinsic(Int, &Ty, 1), Args, "vaba");
- return Builder.CreateAdd(Ops[0], Ops[1], "vaba");
- }
case ARM::BI__builtin_neon_vabal_v: {
Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
SmallVector<Value*, 2> Args;