use super::{
ProgramStats, CAP_ASYNC_DISPATCH, CAP_BF16, CAP_DISTRIBUTED_COLLECTIVES, CAP_F16, CAP_F64,
CAP_INDIRECT_DISPATCH, CAP_SUBGROUP_OPS, CAP_TENSOR_OPS, CAP_TRAP, NODE_KIND_ASSIGN,
NODE_KIND_BARRIER, NODE_KIND_IF, NODE_KIND_LET, NODE_KIND_LOOP, NODE_KIND_REGION,
NODE_KIND_STORE,
};
impl ProgramStats {
#[inline]
#[must_use]
pub fn subgroup_ops(&self) -> bool {
self.capability_bits & CAP_SUBGROUP_OPS != 0
}
#[inline]
#[must_use]
pub fn f16(&self) -> bool {
self.capability_bits & CAP_F16 != 0
}
#[inline]
#[must_use]
pub fn bf16(&self) -> bool {
self.capability_bits & CAP_BF16 != 0
}
#[inline]
#[must_use]
pub fn f64(&self) -> bool {
self.capability_bits & CAP_F64 != 0
}
#[inline]
#[must_use]
pub fn async_dispatch(&self) -> bool {
self.capability_bits & CAP_ASYNC_DISPATCH != 0
}
#[inline]
#[must_use]
pub fn indirect_dispatch(&self) -> bool {
self.capability_bits & CAP_INDIRECT_DISPATCH != 0
}
#[inline]
#[must_use]
pub fn tensor_ops(&self) -> bool {
self.capability_bits & CAP_TENSOR_OPS != 0
}
#[inline]
#[must_use]
pub fn trap(&self) -> bool {
self.capability_bits & CAP_TRAP != 0
}
#[inline]
#[must_use]
pub fn distributed_collectives(&self) -> bool {
self.capability_bits & CAP_DISTRIBUTED_COLLECTIVES != 0
}
#[inline]
#[must_use]
pub fn has_any_node_kind(&self, mask: u32) -> bool {
(self.node_kinds_present & mask) != 0
}
#[inline]
#[must_use]
pub fn has_node_let(&self) -> bool {
self.has_any_node_kind(NODE_KIND_LET)
}
#[inline]
#[must_use]
pub fn has_node_loop(&self) -> bool {
self.has_any_node_kind(NODE_KIND_LOOP)
}
#[inline]
#[must_use]
pub fn has_node_if(&self) -> bool {
self.has_any_node_kind(NODE_KIND_IF)
}
#[inline]
#[must_use]
pub fn has_node_store(&self) -> bool {
self.has_any_node_kind(NODE_KIND_STORE)
}
#[inline]
#[must_use]
pub fn has_node_barrier(&self) -> bool {
self.has_any_node_kind(NODE_KIND_BARRIER)
}
#[inline]
#[must_use]
pub fn has_node_assign(&self) -> bool {
self.has_any_node_kind(NODE_KIND_ASSIGN)
}
#[inline]
#[must_use]
pub fn has_node_region(&self) -> bool {
self.has_any_node_kind(NODE_KIND_REGION)
}
}