`FixedVectorShuffle` is a real two-input leading-block selection and
duplication network. Its closed `FixedVectorShuffleParams` record owns
integer-element widths, floating-element formats, positive maximum operand,
result, and block payload widths, and positive maximum source- and
result-block counts. Admission derives block geometry from the exact actor
types and requires both operands, the result, and every selector domain to fit
the concrete physical ports and these capacities.
Independent review
No independent interface audit has been supplied for this attempt.
Execution provenance
The original pilot recorded the compiler hash and checkout revision separately; its binary build revision was not verified. Coverage follow-ups use separately identified rebuilt binaries. Original simulator binary hashes were not retained.
Original standalone-test agent report
This is exploratory evidence, not an accepted production-format PBT.
No author explanation recorded.
Reported numeric verdicts
not measured
Tested obligations
closed record: exactly the seven owned fields (missing field rejected, unowned extra field rejected)
positive maximum operand payload bits
positive maximum result payload bits
positive maximum block payload bits
positive maximum source-block count
positive maximum result-block count
block payload capacity must not exceed operand/result payload capacity
record owns integer-element widths and floating-element formats (empty domain rejected; float formats admitted)
two-input network requires at least two source blocks
well-formed record with positive maxima is admitted
Untested obligations
admission derives block geometry from the exact actor types
both operands, the result, and every selector domain fit the concrete physical ports and these capacities
trailing-block geometry equality and selector-domain range checks (admitShuffle in lib/Fabric/IR/ImplementationFamilyVectorStructure.cpp)
Format
standalone Python generator + oracle assertions (no ProGRMR grammar / .spct checker; property is a single-input admission verdict, not an input/output postcondition)
Reproduction
python3 pbt_shuffle_params.py 100
Measured subject code coverage
pending · Instrumented coverage follow-up in progress; original pilot did not collect profiles.
a record satisfying every documented obligation is labelled 'reject' by the oracle; subject accepts it, harness reports fail
detected
true
kind
synthetic oracle label flip (checker self-test, not a subject defect)
coverage
omitted: no coverage-instrumented loom build was directly usable for this CLI surface within the session budget; effort spent on making the PBT exercise the real subject
standalone Python generator + oracle assertions (no ProGRMR grammar / .spct checker; property is a single-input admission verdict, not an input/output postcondition)
parse+verify of fabric.op [@vector.shuffle] with implementation_family<FixedVectorShuffle> and hw_params record
tested obligations
closed record: exactly the seven owned fields (missing field rejected, unowned extra field rejected)
positive maximum operand payload bits
positive maximum result payload bits
positive maximum block payload bits
positive maximum source-block count
positive maximum result-block count
block payload capacity must not exceed operand/result payload capacity
record owns integer-element widths and floating-element formats (empty domain rejected; float formats admitted)
two-input network requires at least two source blocks
well-formed record with positive maxima is admitted
untested obligations
admission derives block geometry from the exact actor types
both operands, the result, and every selector domain fit the concrete physical ports and these capacities
trailing-block geometry equality and selector-domain range checks (admitShuffle in lib/Fabric/IR/ImplementationFamilyVectorStructure.cpp)
untested reason
no CLI or pass surface exercises per-actor family admission: loom --list-passes has no family-admission pass, loom-adg only accepts builtin presets/config parameters, and no textual-MLIR lit test drives shuffle actor admission. Reaching it would require building a new C++ harness against the subject checkout.