Add an operator for vaba so it can be implemented using vabd.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121276 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/NeonEmitter.cpp b/utils/TableGen/NeonEmitter.cpp
index 7a62358..cb8cdb8 100644
--- a/utils/TableGen/NeonEmitter.cpp
+++ b/utils/TableGen/NeonEmitter.cpp
@@ -752,6 +752,9 @@
     s += ");";
     break;
   }
+  case OpAba:
+    s += "__a + " + MangleName("vabd", typestr, ClassS) + "(__b, __c);";
+    break;
   default:
     throw "unknown OpKind!";
     break;
@@ -1077,13 +1080,15 @@
 
   std::vector<Record*> RV = Records.getAllDerivedDefinitions("Inst");
 
-  // Emit vmovl intrinsics first so they can be used by other intrinsics.
+  // Emit vmovl and vabd intrinsics first so they can be used by other
+  // intrinsics.
   emitIntrinsic(OS, Records.getDef("VMOVL"));
+  emitIntrinsic(OS, Records.getDef("VABD"));
 
   // Unique the return+pattern types, and assign them.
   for (unsigned i = 0, e = RV.size(); i != e; ++i) {
     Record *R = RV[i];
-    if (R->getName() != "VMOVL")
+    if (R->getName() != "VMOVL" && R->getName() != "VABD")
       emitIntrinsic(OS, R);
   }