45 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_1a : SDNode<"MyTargetISD::NODE_1", SDTypeProfile<1, 0, [SDTCisVT<0, i32>]>>;8def my_node_1b : SDNode<"MyTargetISD::NODE_1", SDTypeProfile<1, 0, [SDTCisVT<0, i32>]>>;9def my_node_2a : SDNode<"MyTargetISD::NODE_2", SDTypeProfile<1, 0, [SDTCisVT<0, i32>]>>;10def my_node_2b : SDNode<"MyTargetISD::NODE_2", SDTypeProfile<1, 0, [SDTCisVT<0, untyped>]>>;11 12// CHECK: namespace llvm::MyTargetISD {13// CHECK-EMPTY:14// CHECK-NEXT: enum GenNodeType : unsigned {15// CHECK-NEXT: NODE_1 = ISD::BUILTIN_OP_END,16// CHECK-NEXT: NODE_2,17// CHECK-NEXT: };18// CHECK-EMPTY:19// CHECK-NEXT: static constexpr unsigned GENERATED_OPCODE_END = NODE_2 + 1;20// CHECK-EMPTY:21// CHECK-NEXT: } // namespace llvm::MyTargetISD22 23// CHECK: static constexpr char MyTargetSDNodeNamesStorage[] =24// CHECK-NEXT: "\0"25// CHECK-NEXT: "MyTargetISD::NODE_1\0"26// CHECK-NEXT: "MyTargetISD::NODE_2\0"27// CHECK-NEXT: ;28 29// CHECK: static const VTByHwModePair MyTargetVTByHwModeTable[] = {30// CHECK-NEXT: /* dummy */ {0, MVT::INVALID_SIMPLE_VALUE_TYPE}31// CHECK-NEXT: };32// CHECK-EMPTY:33// CHECK-NEXT: static const SDTypeConstraint MyTargetSDTypeConstraints[] = {34// CHECK-NEXT: /* 0 */ {SDTCisVT, 0, 0, 0, MVT::i32},35// CHECK-NEXT: };36// CHECK-EMPTY:37// CHECK-NEXT: static const SDNodeDesc MyTargetSDNodeDescs[] = {38// CHECK-NEXT: {1, 0, 0, 0, 0, 1, 0, 1}, // NODE_139// CHECK-NEXT: {1, 0, 0, 0, 0, 21, 0, 0}, // NODE_240// CHECK-NEXT: };41// CHECK-EMPTY:42// CHECK-NEXT: static const SDNodeInfo MyTargetGenSDNodeInfo(43// CHECK-NEXT: /*NumOpcodes=*/2, MyTargetSDNodeDescs, MyTargetSDNodeNames,44// CHECK-NEXT: MyTargetVTByHwModeTable, MyTargetSDTypeConstraints);45