69 lines · plain
1// RUN: llvm-tblgen -gen-sd-node-info -I %p/../../../include %s -sdnode-namespace=EmptyISD \2// RUN: | FileCheck %s -check-prefix=EMPTY3 4// RUN: llvm-tblgen -gen-sd-node-info -I %p/../../../include %s \5// RUN: | FileCheck %s --check-prefixes=COMMON,TARGET -DNS=MyTargetISD6// RUN: llvm-tblgen -gen-sd-node-info -I %p/../../../include %s -sdnode-namespace=MyCustomISD \7// RUN: | FileCheck %s -check-prefixes=COMMON,CUSTOM -DNS=MyCustomISD8 9include "llvm/Target/Target.td"10 11def MyTarget : Target;12 13def node_1 : SDNode<"MyTargetISD::NODE", SDTypeProfile<1, 0, [SDTCisVT<0, i1>]>>;14def node_2 : SDNode<"MyCustomISD::NODE", SDTypeProfile<0, 1, [SDTCisVT<0, i2>]>>;15 16// EMPTY: namespace llvm::EmptyISD {17// EMPTY-EMPTY:18// EMPTY-NEXT: static constexpr unsigned GENERATED_OPCODE_END = ISD::BUILTIN_OP_END;19// EMPTY-EMPTY:20// EMPTY-NEXT: } // namespace llvm::EmptyISD21 22// EMPTY: static constexpr char MyTargetSDNodeNamesStorage[] =23// EMPTY-NEXT: "\0"24// EMPTY-NEXT: ;25 26// EMPTY: static const SDTypeConstraint MyTargetSDTypeConstraints[] = {27// EMPTY-NEXT: /* dummy */ {SDTCisVT, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}28// EMPTY-NEXT: };29// EMPTY-EMPTY:30// EMPTY-NEXT: static const SDNodeDesc MyTargetSDNodeDescs[] = {31// EMPTY-NEXT: };32// EMPTY-EMPTY:33// EMPTY-NEXT: static const SDNodeInfo MyTargetGenSDNodeInfo(34// EMPTY-NEXT: /*NumOpcodes=*/0, MyTargetSDNodeDescs, MyTargetSDNodeNames,35// EMPTY-NEXT: MyTargetVTByHwModeTable, MyTargetSDTypeConstraints);36 37// COMMON: namespace llvm::[[NS]] {38// COMMON-EMPTY:39// COMMON-NEXT: enum GenNodeType : unsigned {40// COMMON-NEXT: NODE = ISD::BUILTIN_OP_END,41// COMMON-NEXT: };42// COMMON-EMPTY:43// COMMON-NEXT: static constexpr unsigned GENERATED_OPCODE_END = NODE + 1;44// COMMON-EMPTY:45// COMMON-NEXT: } // namespace llvm::[[NS]]46 47// COMMON: static constexpr char MyTargetSDNodeNamesStorage[] =48// COMMON-NEXT: "\0"49// COMMON-NEXT: "[[NS]]::NODE\0"50// COMMON-NEXT: ;51 52// COMMON: static const VTByHwModePair MyTargetVTByHwModeTable[] = {53// COMMON-NEXT: /* dummy */ {0, MVT::INVALID_SIMPLE_VALUE_TYPE}54// COMMON-NEXT: };55 56// COMMON: static const SDTypeConstraint MyTargetSDTypeConstraints[] = {57// TARGET-NEXT: /* 0 */ {SDTCisVT, 0, 0, 0, MVT::i1},58// CUSTOM-NEXT: /* 0 */ {SDTCisVT, 0, 0, 0, MVT::i2},59// COMMON-NEXT: };60// COMMON-EMPTY:61// COMMON-NEXT: static const SDNodeDesc MyTargetSDNodeDescs[] = {62// TARGET-NEXT: {1, 0, 0, 0, 0, 1, 0, 1}, // NODE63// CUSTOM-NEXT: {0, 1, 0, 0, 0, 1, 0, 1}, // NODE64// COMMON-NEXT: };65// COMMON-EMPTY:66// COMMON-NEXT: static const SDNodeInfo MyTargetGenSDNodeInfo(67// COMMON-NEXT: /*NumOpcodes=*/1, MyTargetSDNodeDescs, MyTargetSDNodeNames,68// COMMON-NEXT: MyTargetVTByHwModeTable, MyTargetSDTypeConstraints);69