/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Enum Utility Definitions *| |* *| |* Automatically generated file, do not edit! *| |* From: GPUDeviceMappingAttr.td *| |* *| \*===----------------------------------------------------------------------===*/ namespace mlir::gpu { ::llvm::StringRef stringifyAddressSpace(AddressSpace val) { switch (val) { case AddressSpace::Global: return "global"; case AddressSpace::Workgroup: return "workgroup"; case AddressSpace::Private: return "private"; case AddressSpace::Constant: return "constant"; } return ""; } ::std::optional symbolizeAddressSpace(::llvm::StringRef str) { return ::llvm::StringSwitch<::std::optional>(str) .Case("global", AddressSpace::Global) .Case("workgroup", AddressSpace::Workgroup) .Case("private", AddressSpace::Private) .Case("constant", AddressSpace::Constant) .Default(::std::nullopt); } ::std::optional symbolizeAddressSpace(uint32_t value) { switch (value) { case 1: return AddressSpace::Global; case 2: return AddressSpace::Workgroup; case 3: return AddressSpace::Private; case 4: return AddressSpace::Constant; default: return ::std::nullopt; } } } // namespace mlir::gpu namespace mlir::gpu { ::llvm::StringRef stringifyBarrierScope(BarrierScope val) { switch (val) { case BarrierScope::Subgroup: return "subgroup"; case BarrierScope::Workgroup: return "workgroup"; case BarrierScope::Cluster: return "cluster"; } return ""; } ::std::optional symbolizeBarrierScope(::llvm::StringRef str) { return ::llvm::StringSwitch<::std::optional>(str) .Case("subgroup", BarrierScope::Subgroup) .Case("workgroup", BarrierScope::Workgroup) .Case("cluster", BarrierScope::Cluster) .Default(::std::nullopt); } ::std::optional symbolizeBarrierScope(uint32_t value) { switch (value) { case 1: return BarrierScope::Subgroup; case 2: return BarrierScope::Workgroup; case 3: return BarrierScope::Cluster; default: return ::std::nullopt; } } } // namespace mlir::gpu namespace mlir::gpu { ::llvm::StringRef stringifyDimension(Dimension val) { switch (val) { case Dimension::x: return "x"; case Dimension::y: return "y"; case Dimension::z: return "z"; } return ""; } ::std::optional symbolizeDimension(::llvm::StringRef str) { return ::llvm::StringSwitch<::std::optional>(str) .Case("x", Dimension::x) .Case("y", Dimension::y) .Case("z", Dimension::z) .Default(::std::nullopt); } ::std::optional symbolizeDimension(uint32_t value) { switch (value) { case 0: return Dimension::x; case 1: return Dimension::y; case 2: return Dimension::z; default: return ::std::nullopt; } } } // namespace mlir::gpu namespace mlir::gpu { ::llvm::StringRef stringifyDimensionKind(DimensionKind val) { switch (val) { case DimensionKind::Other: return "other"; case DimensionKind::Block: return "block"; case DimensionKind::Grid: return "grid"; case DimensionKind::Cluster: return "cluster"; } return ""; } ::std::optional symbolizeDimensionKind(::llvm::StringRef str) { return ::llvm::StringSwitch<::std::optional>(str) .Case("other", DimensionKind::Other) .Case("block", DimensionKind::Block) .Case("grid", DimensionKind::Grid) .Case("cluster", DimensionKind::Cluster) .Default(::std::nullopt); } ::std::optional symbolizeDimensionKind(uint32_t value) { switch (value) { case 0: return DimensionKind::Other; case 1: return DimensionKind::Block; case 2: return DimensionKind::Grid; case 3: return DimensionKind::Cluster; default: return ::std::nullopt; } } } // namespace mlir::gpu namespace mlir::gpu { ::llvm::StringRef stringifyMappingId(MappingId val) { switch (val) { case MappingId::DimX: return "x"; case MappingId::DimY: return "y"; case MappingId::DimZ: return "z"; case MappingId::LinearDim0: return "linear_dim_0"; case MappingId::LinearDim1: return "linear_dim_1"; case MappingId::LinearDim2: return "linear_dim_2"; case MappingId::LinearDim3: return "linear_dim_3"; case MappingId::LinearDim4: return "linear_dim_4"; case MappingId::LinearDim5: return "linear_dim_5"; case MappingId::LinearDim6: return "linear_dim_6"; case MappingId::LinearDim7: return "linear_dim_7"; case MappingId::LinearDim8: return "linear_dim_8"; case MappingId::LinearDim9: return "linear_dim_9"; } return ""; } ::std::optional symbolizeMappingId(::llvm::StringRef str) { return ::llvm::StringSwitch<::std::optional>(str) .Case("x", MappingId::DimX) .Case("y", MappingId::DimY) .Case("z", MappingId::DimZ) .Case("linear_dim_0", MappingId::LinearDim0) .Case("linear_dim_1", MappingId::LinearDim1) .Case("linear_dim_2", MappingId::LinearDim2) .Case("linear_dim_3", MappingId::LinearDim3) .Case("linear_dim_4", MappingId::LinearDim4) .Case("linear_dim_5", MappingId::LinearDim5) .Case("linear_dim_6", MappingId::LinearDim6) .Case("linear_dim_7", MappingId::LinearDim7) .Case("linear_dim_8", MappingId::LinearDim8) .Case("linear_dim_9", MappingId::LinearDim9) .Default(::std::nullopt); } ::std::optional symbolizeMappingId(uint64_t value) { switch (value) { case 0: return MappingId::DimX; case 1: return MappingId::DimY; case 2: return MappingId::DimZ; case 3: return MappingId::LinearDim0; case 4: return MappingId::LinearDim1; case 5: return MappingId::LinearDim2; case 6: return MappingId::LinearDim3; case 7: return MappingId::LinearDim4; case 8: return MappingId::LinearDim5; case 9: return MappingId::LinearDim6; case 10: return MappingId::LinearDim7; case 11: return MappingId::LinearDim8; case 12: return MappingId::LinearDim9; default: return ::std::nullopt; } } bool MappingIdAttr::classof(::mlir::Attribute attr) { return (((::llvm::isa<::mlir::IntegerAttr>(attr))) && ((::llvm::cast<::mlir::IntegerAttr>(attr).getType().isSignlessInteger(64)))) && ((( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 0)))) || (( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 1)))) || (( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 2)))) || (( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 3)))) || (( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 4)))) || (( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 5)))) || (( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 6)))) || (( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 7)))) || (( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 8)))) || (( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 9)))) || (( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 10)))) || (( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 11)))) || (( ::llvm::cast<::mlir::IntegerAttr>(attr).getValue().eq(::llvm::APInt(64, 12))))); } MappingIdAttr MappingIdAttr::get(::mlir::MLIRContext *context, MappingId val) { ::mlir::IntegerType intType = ::mlir::IntegerType::get(context, 64); ::mlir::IntegerAttr baseAttr = ::mlir::IntegerAttr::get(intType, static_cast(val)); return ::llvm::cast(baseAttr); } MappingId MappingIdAttr::getValue() const { return static_cast(::mlir::IntegerAttr::getValue().getZExtValue()); } } // namespace mlir::gpu