Purpose and scope
This unit defines the read and write behavior of the predicate-register state and records whether any current instruction encoding consumes P0 through P7.
PTO-ARCH-PROGRAMMING-MODEL-PREDICATE-REGISTERSThe complete ASL owner is shown directly below.
// PTO-UNIT: {"id":"PTO-ARCH-PROGRAMMING-MODEL-PREDICATE-REGISTERS","surface":"arch","classification":["programming-model","predicate-registers"],"depends_on":["PTO-ARCH-PROGRAMMING-MODEL-EXECUTION-CONTEXT"]}readonly func ReadPredicateRegister(index: PredicateIndex) => PredicateWordbegin return if index == 0 then Ones{PTO_PREDICATE_WIDTH} else _PredicateRegisters[[index]];end;
func WritePredicateRegister(index: PredicateIndex, value: PredicateWord)begin if index != 0 then _PredicateRegisters[[index]] = value; end;end;
pure func PredicateRegisterHasInstructionConsumer(index: PredicateIndex) => booleanbegin // PTO has no instruction encoding that consumes P0..P7. return FALSE;end;
This unit defines the read and write behavior of the predicate-register state and records whether any current instruction encoding consumes P0 through P7.
ReadPredicateRegister returns all ones for predicate register index 0. Other indices read their stored element from _PredicateRegisters.
WritePredicateRegister stores a value only when the index is not 0.
Together, the read and write rules make P0 a constant all-ones predicate: writing P0 has no state effect, and reading it does not depend on the backing array.
PredicateRegisterHasInstructionConsumer returns FALSE for every predicate index because the current PTO instruction encoding has no consumer for P0 through P7.
The absence of an instruction consumer is an encoding statement in this owner. The consumer query does not change the read and write behavior defined by ReadPredicateRegister and WritePredicateRegister.
If a test writes a nonzero pattern to P0 and then reads P0, the read still produces an all-ones PredicateWord. The same write to P1 is stored and can be read back from P1.
Bodies come from owning ASL. Dragging or buttons change only this page-session view order.
No NDF clause is attached to this unit.
11 matching entries
PTO-AVS-ARCH-PROGRAMMING-MODEL-PREDICATE-REGISTERS-STATIC-001tests/asl/arch/programming-model/predicate-registers/arch-static-predicate-registers-contract-001.asl1cea82905b03908ba079c7f5864eafdcc5b69b98912e65cc7abf5f3a2748ac4cPTO-AVS-ARCH-TESTPREDICATESTATECONTRACT-STATE-TRANSITION-001tests/asl/arch/programming-model/predicate-registers/arch-state-predicate-contract-001.aslbb0a8726234ed49cf85ca275bf89d1cfcb8382ddeebc2586aebc8e145c8be6b2PTO-EVIDENCE-RELEASE-TRACEABILITYPTO-EVIDENCE-RELEASE-TRACEABILITYspec/evidence/release-traceability-readiness.jsonc7327021d39dc67ac5564bc55073b3870a397d79ac8d9648284d56e33bc14a3ePTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSUREPTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSUREspec/evidence/instruction-contract-closure.json3ef2bb62421c79dff8fa77a1c7983923b523244b8090812883ef81286ca8106aPTO-EVIDENCE-ARCHITECTURE-READINESSPTO-EVIDENCE-ARCHITECTURE-READINESSspec/evidence/architecture-readiness.json4b0b85199101251bea744e0f3591cc31906909dc80d5ab651c417a936036a004PTO-EVIDENCE-RELEASE-GATE-READINESSPTO-EVIDENCE-RELEASE-GATE-READINESSspec/evidence/release-gate-readiness.jsona0f4d2b6920c08981ea55fd8ef820708a40d4feb5402c5150e8e9ab532d84ce0PTO-EVIDENCE-RELEASE-MANIFESTPTO-EVIDENCE-RELEASE-MANIFESTspec/release-manifest.json1a64c109ed7a90351c41e2a418b3c0ebaf8ad975838986d2101385186b85c0d8Loading ADR-0008…
ADR-0008docs/status/decisions/0008-architectural-state-contract.md9c33e1b57d0f04c4d808ee61aaf975187a3dbd32a071329ca65a916dc0e614caLoading ADR-0019…
ADR-0019docs/status/decisions/0019-predicate-register-contract.mdbd4ea338a30ff01ae34a273c900d74685b338e686ec3cad6438550f7c70ce342Loading ADR-0046…
ADR-0046docs/status/decisions/0046-separate-execution-mask-and-warp-predicates.md1f66cc380fe9ef77c95539485910ac21c862c0968fcf4fe67be43b3f1472c279Loading ADR-0051…
ADR-0051docs/status/decisions/0051-predicate-state-namespace-boundary.mdf6291cbe4fbe46ae84e59bb0275fa943ce51888229d8dff4ff3347c57159f337{
"classification": [
"programming-model",
"predicate-registers"
],
"documentation": "docs/arch/programming-model/predicate-registers.md",
"id": "PTO-ARCH-PROGRAMMING-MODEL-PREDICATE-REGISTERS",
"mnemonic": null,
"readiness_subjects": [
"ADR-0008"
],
"semantic_tests": [
"PTO-AVS-ARCH-TESTPREDICATESTATECONTRACT-STATE-TRANSITION-001"
],
"source": "asl/arch/programming-model/predicate-registers.asl",
"surface": "arch",
"tests": [
"PTO-AVS-ARCH-PROGRAMMING-MODEL-PREDICATE-REGISTERS-STATIC-001",
"PTO-AVS-ARCH-TESTPREDICATESTATECONTRACT-STATE-TRANSITION-001"
]
}0.58.5 · Release candidate7dc8b7e5b121d2b2499a2273bebff29e2cd8681210cfd70a5e5caf277c5abbb3976574946b01be2cbe0cd08ce141cf4bde716968dba5bc3463bcc1979ec9511c2ec6c5fa495f94cf14e937552c38d46e2b70ed9dasl/arch/programming-model/predicate-registers.asl