MC/AsmMatcher: Fix indirect 80-col viola.
[oota-llvm.git] / utils / TableGen / NeonEmitter.h
index 23b9f9c4e09badb58bb0b49098f5b26f35eb16ef..1e6fcbf555df4fefe34663a8e9fae870ca8a3a51 100644 (file)
@@ -47,6 +47,11 @@ enum OpKind {
   OpMlsLane,
   OpMlalLane,
   OpMlslLane,
+  OpQDMullLane,
+  OpQDMlalLane,
+  OpQDMlslLane,
+  OpQDMulhLane,
+  OpQRDMulhLane,
   OpEq,
   OpGe,
   OpLe,
@@ -70,7 +75,9 @@ enum OpKind {
   OpRev32,
   OpRev64,
   OpReinterpret,
-  OpAba
+  OpAbdl,
+  OpAba,
+  OpAbal
 };
 
 enum ClassKind {
@@ -115,6 +122,11 @@ namespace llvm {
       OpMap["OP_MLS_LN"]= OpMlsLane;
       OpMap["OP_MLAL_LN"] = OpMlalLane;
       OpMap["OP_MLSL_LN"] = OpMlslLane;
+      OpMap["OP_QDMULL_LN"] = OpQDMullLane;
+      OpMap["OP_QDMLAL_LN"] = OpQDMlalLane;
+      OpMap["OP_QDMLSL_LN"] = OpQDMlslLane;
+      OpMap["OP_QDMULH_LN"] = OpQDMulhLane;
+      OpMap["OP_QRDMULH_LN"] = OpQRDMulhLane;
       OpMap["OP_EQ"]    = OpEq;
       OpMap["OP_GE"]    = OpGe;
       OpMap["OP_LE"]    = OpLe;
@@ -138,7 +150,9 @@ namespace llvm {
       OpMap["OP_REV32"] = OpRev32;
       OpMap["OP_REV64"] = OpRev64;
       OpMap["OP_REINT"] = OpReinterpret;
+      OpMap["OP_ABDL"]  = OpAbdl;
       OpMap["OP_ABA"]   = OpAba;
+      OpMap["OP_ABAL"]  = OpAbal;
 
       Record *SI = R.getClass("SInst");
       Record *II = R.getClass("IInst");
@@ -154,6 +168,9 @@ namespace llvm {
     // runHeader - Emit all the __builtin prototypes used in arm_neon.h
     void runHeader(raw_ostream &o);
 
+    // runTests - Emit tests for all the Neon intrinsics.
+    void runTests(raw_ostream &o);
+
   private:
     void emitIntrinsic(raw_ostream &OS, Record *R);
   };