Skip to main content

PTO-ARCH-FEATURES-MINMAX-PROFILE

PTO-ARCH-FEATURES-MINMAX-PROFILE

ASL pseudocode

The complete ASL owner is shown directly below.

// PTO-UNIT: {"id":"PTO-ARCH-FEATURES-MINMAX-PROFILE","surface":"arch","classification":["features","minmax-profile"],"depends_on":["PTO-ARCH-FEATURES-MX-FORMATS"]}// Convert an assigned binary floating carrier into a monotonically increasing// unsigned key. NaNs and signed-zero ties are resolved before this helper is// called. The returned availability bit keeps unsupported formats explicit.pure func HardwareNumericFloatingOrderKey(    data_type: TileDataType,    value: Word) => (boolean, Word)begin    if !TileNumericEncodingValid(data_type, value) then        return (FALSE, Zeros{PTO_XLEN});    end;
    case data_type of        when TileDataType_FP64 =>            if value[63] == '1' then                return (TRUE, NOT(value));            else                return (TRUE,                    value XOR (Zeros{PTO_XLEN} + 0x8000000000000000));            end;        when TileDataType_FP32, TileDataType_TF32, TileDataType_HF32 =>            let raw = value[31:0];            let key =                if raw[31] == '1' then NOT(raw)                else raw XOR (Zeros{32} + 0x80000000);            return (TRUE, ZeroExtend{PTO_XLEN}(key));        when TileDataType_FP16, TileDataType_BF16 =>            let raw = value[15:0];            let key =                if raw[15] == '1' then NOT(raw)                else raw XOR (Zeros{16} + 0x8000);            return (TRUE, ZeroExtend{PTO_XLEN}(key));        when TileDataType_E4M3, TileDataType_E5M2 =>            let raw = value[7:0];            let key =                if raw[7] == '1' then NOT(raw)                else raw XOR (Zeros{8} + 0x80);            return (TRUE, ZeroExtend{PTO_XLEN}(key));        otherwise =>            return (FALSE, Zeros{PTO_XLEN});    end;end;
// Return availability, selected raw carrier, and invalid-condition status.// Special NaN and zero rules have priority over ordinary numeric ordering.pure func HardwareNumericFloatingMinMax(    maximum: boolean,    data_type: TileDataType,    left: Word,    right: Word) => (boolean, Word, boolean)begin    let (special, special_result, invalid) =        HardwareNumericMinMaxSpecial(maximum, data_type, left, right);    if special then        return (TRUE, special_result, invalid);    end;
    let (left_available, left_key) =        HardwareNumericFloatingOrderKey(data_type, left);    let (right_available, right_key) =        HardwareNumericFloatingOrderKey(data_type, right);    if !left_available || !right_available then        return (FALSE, Zeros{PTO_XLEN}, FALSE);    end;
    if maximum then        if UInt(left_key) >= UInt(right_key) then            return (TRUE, left, FALSE);        else            return (TRUE, right, FALSE);        end;    elsif UInt(left_key) <= UInt(right_key) then        return (TRUE, left, FALSE);    else        return (TRUE, right, FALSE);    end;end;

Architecture behavior

purpose scope

Purpose and scope

This unit supplies the named hardware numeric profile's ordinary floating ordering key and min/max selection after special NaN and signed-zero cases have been resolved.

The returned availability bit keeps unsupported data types explicit instead of imposing an ordering on every TileDataType.

concepts state

Concepts and visible state

  • HardwareNumericFloatingOrderKey validates the carrier and maps supported binary floating encodings to monotonically increasing unsigned keys.
  • Negative carriers are bitwise inverted; nonnegative carriers have their sign bit toggled at the architectural width.
  • HardwareNumericFloatingMinMax first calls HardwareNumericMinMaxSpecial, then compares ordinary keys only when neither operand is a special case.
rules interactions

Rules and interactions

The ordering-key helper supports FP64; FP32, TF32, and HF32; FP16 and BF16; plus E4M3 and E5M2.

Invalid encodings and all other data types return unavailable with a zero placeholder key.

For maximum, the larger unsigned key wins; for minimum, the smaller key wins. Equal keys select the left raw carrier.

boundaries

Architectural boundaries

NaN and signed-zero tie behavior is not derived from the ordinary key. It is resolved by HardwareNumericMinMaxSpecial before key comparison.

This is a named profile implementation, not a portable ordering promise for formats that return unavailable.

example usage

illustrative reading example

For two valid positive FP32 normals, toggling the sign bit yields keys ordered like their numeric values, so the requested min or max selects the corresponding raw carrier.

If either operand is an invalid TF32 carrier, ordinary key selection reports unavailable rather than silently comparing the upper bits.

NDF clauses

Bodies come from owning ASL. Dragging or buttons change only this page-session view order.

No NDF clause is attached to this unit.

Evidence index

10 matching entries

Executable evidence5
  • PTO-ARCH-FEATURES-MINMAX-PROFILE compiles as an independent normative unit
    1. surfaceARCH
    2. ownerPTO-ARCH-FEATURES-MINMAX-PROFILE
    3. categorySTATIC-INVARIANT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-FEATURES-MINMAX-PROFILE-STATIC-001
    Path
    tests/asl/arch/features/minmax-profile/arch-static-minmax-profile-contract-001.asl
    Kind / role
    static-invariant
    Pass condition
    the complete model and this unit's static invariant compile
    SHA-256
    8f882a47dc18ee178fbd38297d9b938ce73dbd0b0d54b5788ffc8b6104c8bffc
    Open exact source ↗ for PTO-AVS-ARCH-FEATURES-MINMAX-PROFILE-STATIC-001
  • invalid TF32 and unsupported integer carriers have no floating order key
    1. surfaceARCH
    2. ownerPTO-ARCH-FEATURES-MINMAX-PROFILE
    3. categoryBOUNDARY
    4. case002
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-MINMAX-AVAILABILITY-BOUND-002
    Path
    tests/asl/arch/features/minmax-profile/arch-bound-minmax-availability-002.asl
    Kind / role
    boundary
    Pass condition
    invalid and unsupported requests return unavailable with the zero placeholder
    SHA-256
    9e431386d0ee57e6dbb5eb8ac03abacde6daa2d58b1d1ca9a924df3d9df22add
    Open exact source ↗ for PTO-AVS-ARCH-MINMAX-AVAILABILITY-BOUND-002
  • floating order keys cover positive and negative carriers at every supported width
    1. surfaceARCH
    2. ownerPTO-ARCH-FEATURES-MINMAX-PROFILE
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-MINMAX-ORDER-KEYS-EXEC-001
    Path
    tests/asl/arch/features/minmax-profile/arch-exec-minmax-order-keys-001.asl
    Kind / role
    execution
    Pass condition
    64-, 32-, 16-, and 8-bit positive and negative order-key assertions hold
    SHA-256
    605a42427e2a7f408170fc0537474f377092e75619ce04138774c5ead7ed196f
    Open exact source ↗ for PTO-AVS-ARCH-MINMAX-ORDER-KEYS-EXEC-001
  • ordinary min-max follows numeric key order and selects the left carrier on equal keys
    1. surfaceARCH
    2. ownerPTO-ARCH-FEATURES-MINMAX-PROFILE
    3. categoryEXECUTION
    4. case004
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-MINMAX-ORDERING-TIES-EXEC-004
    Path
    tests/asl/arch/features/minmax-profile/arch-exec-minmax-ordering-ties-004.asl
    Kind / role
    execution
    Pass condition
    positive, negative, and equal-key left-tie assertions hold
    SHA-256
    71b617cf8a6faeb890d723d976f4292a774c1d15b2092989f42b0e03888ed649
    Open exact source ↗ for PTO-AVS-ARCH-MINMAX-ORDERING-TIES-EXEC-004
  • floating min-max delegates NaN and signed-zero cases to the special-value owner
    1. surfaceARCH
    2. ownerPTO-ARCH-FEATURES-MINMAX-PROFILE
    3. categoryEXECUTION
    4. case003
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-MINMAX-SPECIAL-DELEGATION-EXEC-003
    Path
    tests/asl/arch/features/minmax-profile/arch-exec-minmax-special-delegation-003.asl
    Kind / role
    execution
    Pass condition
    one-NaN and signed-zero min-max results match the delegated special rules
    SHA-256
    237fa58d299f4b47d027ca9e63daa7914a0d8e1cc0c514aff5b06566f831c140
    Open exact source ↗ for PTO-AVS-ARCH-MINMAX-SPECIAL-DELEGATION-EXEC-003
Commit-scoped evidence5
  • spec/evidence/release-traceability-readiness.json · closedPTO-EVIDENCE-RELEASE-TRACEABILITY
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-TRACEABILITY
    Path
    spec/evidence/release-traceability-readiness.json
    Kind / role
    ASL/NDF/documentation/AVS traceability
    SHA-256
    c7327021d39dc67ac5564bc55073b3870a397d79ac8d9648284d56e33bc14a3e
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-TRACEABILITY
  • spec/evidence/instruction-contract-closure.json · closedPTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Path
    spec/evidence/instruction-contract-closure.json
    Kind / role
    mnemonic and encoding contract closure
    SHA-256
    3ef2bb62421c79dff8fa77a1c7983923b523244b8090812883ef81286ca8106a
    Open exact source ↗ for PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
  • spec/evidence/architecture-readiness.json · openPTO-EVIDENCE-ARCHITECTURE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-ARCHITECTURE-READINESS
    Path
    spec/evidence/architecture-readiness.json
    Kind / role
    architecture maturity and blockers
    SHA-256
    4b0b85199101251bea744e0f3591cc31906909dc80d5ab651c417a936036a004
    Open exact source ↗ for PTO-EVIDENCE-ARCHITECTURE-READINESS
  • spec/evidence/release-gate-readiness.json · ready-for-exact-head-verificationPTO-EVIDENCE-RELEASE-GATE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-GATE-READINESS
    Path
    spec/evidence/release-gate-readiness.json
    Kind / role
    exact-head gate readiness
    SHA-256
    a0f4d2b6920c08981ea55fd8ef820708a40d4feb5402c5150e8e9ab532d84ce0
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-GATE-READINESS
  • spec/release-manifest.json · draftPTO-EVIDENCE-RELEASE-MANIFEST
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-MANIFEST
    Path
    spec/release-manifest.json
    Kind / role
    release content and encoding fingerprints
    SHA-256
    1a64c109ed7a90351c41e2a418b3c0ebaf8ad975838986d2101385186b85c0d8
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-MANIFEST

Unit metadata

Open 4 generated metadata fields
id
PTO-ARCH-FEATURES-MINMAX-PROFILE
surface
arch
classification
[
  "features",
  "minmax-profile"
]
depends_on
[
  "PTO-ARCH-FEATURES-MX-FORMATS"
]
Open generated traceability record
{
  "classification": [
    "features",
    "minmax-profile"
  ],
  "documentation": "docs/arch/features/minmax-profile.md",
  "id": "PTO-ARCH-FEATURES-MINMAX-PROFILE",
  "mnemonic": null,
  "readiness_subjects": [],
  "semantic_tests": [
    "PTO-AVS-ARCH-MINMAX-AVAILABILITY-BOUND-002",
    "PTO-AVS-ARCH-MINMAX-ORDER-KEYS-EXEC-001",
    "PTO-AVS-ARCH-MINMAX-ORDERING-TIES-EXEC-004",
    "PTO-AVS-ARCH-MINMAX-SPECIAL-DELEGATION-EXEC-003"
  ],
  "source": "asl/arch/features/minmax-profile.asl",
  "surface": "arch",
  "tests": [
    "PTO-AVS-ARCH-FEATURES-MINMAX-PROFILE-STATIC-001",
    "PTO-AVS-ARCH-MINMAX-AVAILABILITY-BOUND-002",
    "PTO-AVS-ARCH-MINMAX-ORDER-KEYS-EXEC-001",
    "PTO-AVS-ARCH-MINMAX-ORDERING-TIES-EXEC-004",
    "PTO-AVS-ARCH-MINMAX-SPECIAL-DELEGATION-EXEC-003"
  ]
}

Sources and release identity

Show commit, paths, hashes, version, and canonical owners
Release
0.58.5 · Release candidate
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
11a35922a15d2222796ba5fa2735cd600f82d767dd171cefb468bf18298fe1a4
Generated documentation
docs/arch/features/minmax-profile.md · embedded in this page
Documentation SHA-256
54f233c382dd53267281676e107655e8c55d2143be12201330770ca00c8934d8

Exact owners