vyre 0.4.0

GPU compute intermediate representation with a standard operation library
Documentation
schema_version = 1

id = "workgroup.stack"
archetype = "workgroup-coordinated-sequential"
display_name = "workgroup.stack"
summary = "Bounded LIFO stack stored in workgroup SRAM with per-lane command sequencing."
category = "C"

[intrinsic]
wgsl = "workgroup_stack_push"
operations = [
  "workgroup_stack_push",
  "workgroup_stack_pop",
  "workgroup_stack_peek",
  "workgroup_stack_len",
  "workgroup_stack_is_empty",
]

[signature]
inputs = ["U32", "U32"]
outputs = ["U32", "U32"]
handle = "U32"
value_type = "U32"

laws = [
  "Deterministic",
  "WorkgroupInvariant",
  "BoundedCapacity",
  "StackPushThenPopIdentity",
  "StackPeekDoesNotMutate",
]
equivalence_classes = ["empty", "single_push", "overflow", "underflow", "multi_lane_barrier"]
workgroup_size = [64, 1, 1]
capacity = 256
tags = ["workgroup", "stack", "sram", "lifo", "category-c"]
fixtures_dir = "fixtures/"