cubecl-cpp 0.11.0-pre.1

CPP transpiler for CubeCL
Documentation
use crate::{Dialect, shared::Builtin};

use super::BuiltInAttribute;

impl<D: Dialect> Builtin<D> {
    pub fn attribute(&self) -> BuiltInAttribute {
        match self {
            Builtin::AbsolutePosBaseName => BuiltInAttribute::ThreadPositionInGrid,
            Builtin::CubeCountBaseName => BuiltInAttribute::ThreadgroupsPerGrid,
            Builtin::CubeDimBaseName => BuiltInAttribute::ThreadsPerThreadgroup,
            Builtin::CubePosBaseName => BuiltInAttribute::ThreadgroupPositionInGrid,
            Builtin::PlaneDim => BuiltInAttribute::ThreadsPerSIMDgroup,
            Builtin::PlanePos => BuiltInAttribute::SIMDgroupIndexInThreadgroup,
            Builtin::UnitPosBaseName => BuiltInAttribute::ThreadPositionInThreadgroup,
            Builtin::UnitPos => BuiltInAttribute::ThreadIndexInThreadgroup,
            Builtin::UnitPosPlane => BuiltInAttribute::ThreadIndexInSIMDgroup,
            _ => BuiltInAttribute::None,
        }
    }
}