]> granicus.if.org Git - clang/commitdiff
Stop using clang builtins for Neon vaba intrinsics.
authorBob Wilson <bob.wilson@apple.com>
Wed, 8 Dec 2010 20:09:54 +0000 (20:09 +0000)
committerBob Wilson <bob.wilson@apple.com>
Wed, 8 Dec 2010 20:09:54 +0000 (20:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121277 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/arm_neon.td
lib/CodeGen/CGBuiltin.cpp

index 008558aa25fee88dcfeac507e9924c17b62db965..c4458085982053ece685f0c550e436ee759ea398 100644 (file)
@@ -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">;
 
 ////////////////////////////////////////////////////////////////////////////////
index d0bc709c54b2090c49ef915d17e488738793795f..4ff029a0e43d1eeeb6de8f1311fbcf1c9de420e6 100644 (file)
@@ -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;