cubecl_cpp/metal/
value.rs1use crate::{Dialect, shared::Builtin};
2
3use super::BuiltInAttribute;
4
5impl<D: Dialect> Builtin<D> {
6 pub fn attribute(&self) -> BuiltInAttribute {
7 match self {
8 Builtin::AbsolutePosBaseName => BuiltInAttribute::ThreadPositionInGrid,
9 Builtin::CubeCountBaseName => BuiltInAttribute::ThreadgroupsPerGrid,
10 Builtin::CubeDimBaseName => BuiltInAttribute::ThreadsPerThreadgroup,
11 Builtin::CubePosBaseName => BuiltInAttribute::ThreadgroupPositionInGrid,
12 Builtin::PlaneDim => BuiltInAttribute::ThreadsPerSIMDgroup,
13 Builtin::PlanePos => BuiltInAttribute::SIMDgroupIndexInThreadgroup,
14 Builtin::UnitPosBaseName => BuiltInAttribute::ThreadPositionInThreadgroup,
15 Builtin::UnitPos => BuiltInAttribute::ThreadIndexInThreadgroup,
16 Builtin::UnitPosPlane => BuiltInAttribute::ThreadIndexInSIMDgroup,
17 _ => BuiltInAttribute::None,
18 }
19 }
20}