brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · 0c4a331 Raw
99 lines · plain
1// RUN: llvm-tblgen -gen-sd-node-info -I %p/../../../include %s | FileCheck %s2 3include "llvm/Target/Target.td"4 5def MyTarget : Target;6 7def my_node_1 : SDNode<8    "MyTargetISD::NODE_1",9    SDTypeProfile<1, 1, [SDTCisVT<0, i1>, SDTCisVT<1, i2>]>,10    [SDNPHasChain]11>;12 13let TSFlags = 42 in14def my_node_2 : SDNode<15    "MyTargetISD::NODE_2",16    SDTypeProfile<3, 1, [17        // Prefix of my_node_3 constraints.18        SDTCisVT<0, i1>,19        SDTCisPtrTy<1>,20        SDTCisInt<2>,21        SDTCisFP<3>,22    ]>,23    [SDNPMayStore, SDNPMayLoad, SDNPSideEffect,24     SDNPMemOperand, SDNPVariadic]25>;26 27let IsStrictFP = true, TSFlags = 24 in28def my_node_3 : SDNode<29    "MyTargetISD::NODE_3",30    SDTypeProfile<2, -1, [31        SDTCisVT<0, i1>,32        SDTCisPtrTy<1>,33        SDTCisInt<2>,34        SDTCisFP<3>,35        SDTCisVec<4>,36        SDTCisSameAs<6, 5>,37        SDTCisVTSmallerThanOp<8, 7>,38        SDTCisOpSmallerThanOp<10, 9>,39        SDTCisEltOfVec<12, 11>,40        SDTCisSubVecOfVec<14, 13>,41        SDTCVecEltisVT<15, i32>,42        SDTCisSameNumEltsAs<17, 16>,43        SDTCisSameSizeAs<19, 18>,44    ]>,45    [SDNPCommutative, SDNPAssociative, SDNPHasChain,46     SDNPOutGlue, SDNPInGlue, SDNPOptInGlue]47>;48 49// CHECK:       namespace llvm::MyTargetISD {50// CHECK-EMPTY:51// CHECK-NEXT:  enum GenNodeType : unsigned {52// CHECK-NEXT:    NODE_1 = ISD::BUILTIN_OP_END,53// CHECK-NEXT:    NODE_2,54// CHECK-NEXT:    NODE_3,55// CHECK-NEXT:  };56// CHECK-EMPTY:57// CHECK-NEXT:  static constexpr unsigned GENERATED_OPCODE_END = NODE_3 + 1;58// CHECK-EMPTY:59// CHECK-NEXT:  } // namespace llvm::MyTargetISD60 61// CHECK:       static constexpr char MyTargetSDNodeNamesStorage[] =62// CHECK-NEXT:    "\0"63// CHECK-NEXT:    "MyTargetISD::NODE_1\0"64// CHECK-NEXT:    "MyTargetISD::NODE_2\0"65// CHECK-NEXT:    "MyTargetISD::NODE_3\0"66// CHECK-NEXT:    ;67 68// CHECK:       static const VTByHwModePair MyTargetVTByHwModeTable[] = {69// CHECK-NEXT:   /* dummy */ {0, MVT::INVALID_SIMPLE_VALUE_TYPE}70// CHECK-NEXT:  };71// CHECK-EMPTY:72// CHECK-NEXT:  static const SDTypeConstraint MyTargetSDTypeConstraints[] = {73// CHECK-NEXT:    /* 0 */ {SDTCisVT, 1, 0, 0, MVT::i2},74// CHECK-SAME:            {SDTCisVT, 0, 0, 0, MVT::i1},75// CHECK-NEXT:    /* 2 */ {SDTCisSameSizeAs, 19, 18, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},76// CHECK-SAME:            {SDTCisSameNumEltsAs, 17, 16, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},77// CHECK-SAME:            {SDTCVecEltisVT, 15, 0, 0, MVT::i32},78// CHECK-SAME:            {SDTCisSubVecOfVec, 14, 13, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},79// CHECK-SAME:            {SDTCisEltOfVec, 12, 11, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},80// CHECK-SAME:            {SDTCisOpSmallerThanOp, 10, 9, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},81// CHECK-SAME:            {SDTCisVTSmallerThanOp, 8, 7, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},82// CHECK-SAME:            {SDTCisSameAs, 6, 5, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},83// CHECK-SAME:            {SDTCisVec, 4, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},84// CHECK-SAME:            {SDTCisFP, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},85// CHECK-SAME:            {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},86// CHECK-SAME:            {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},87// CHECK-SAME:            {SDTCisVT, 0, 0, 0, MVT::i1},88// CHECK-NEXT:  };89// CHECK-EMPTY:90// CHECK-NEXT:  static const SDNodeDesc MyTargetSDNodeDescs[] = {91// CHECK-NEXT:          {1, 1, 0|1<<SDNPHasChain, 0, 0, 1, 0, 2}, // NODE_192// CHECK-NEXT:          {3, 1, 0|1<<SDNPVariadic|1<<SDNPMemOperand, 0, 42, 21, 11, 4}, // NODE_293// CHECK-NEXT:          {2, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPInGlue|1<<SDNPOptInGlue, 0|1<<SDNFIsStrictFP, 24, 41, 2, 13}, // NODE_394// CHECK-NEXT:  };95// CHECK-EMPTY:96// CHECK-NEXT: static const SDNodeInfo MyTargetGenSDNodeInfo(97// CHECK-NEXT:     /*NumOpcodes=*/3, MyTargetSDNodeDescs, MyTargetSDNodeNames,98// CHECK-NEXT:     MyTargetVTByHwModeTable, MyTargetSDTypeConstraints);99