Skip to main content

Module register_view

Module register_view 

Source
Expand description

The register view retags the assembler inserts between register ports of different lane typings, and the register-port predicate it keys on (type_system_alignment.md §8.4 layer 2).

A view is a free bitcast: the 128 bits are untouched and only the lane typing changes. Each view is an ordinary registered node, like every other entry of the conversion table, so a program can call it and the conversion fuzzer can reach it by the name the table gives. It used to be one hand-written node parameterized by its target type, which the assembler could insert but no program could name.

Each takes the raw word: any register view satisfies a register slot (the free-bitcast rule in Value::satisfies_slot).

Structs§

RegViewF16x8
A register word viewed as eight f16 lanes.
RegViewF32x4
A register word viewed as four f32 lanes.
RegViewF64x2
A register word viewed as two f64 lanes.
RegViewI8x16
A register word viewed as sixteen i8 lanes.
RegViewI16x8
A register word viewed as eight i16 lanes.
RegViewI32x4
A register word viewed as four i32 lanes.
RegViewI64x2
A register word viewed as two i64 lanes.
RegViewRaw
A register word viewed raw, without a lane typing.

Functions§

is_reg_port
true when t is any register-plane PortType.
reg_view
The view of a register word as to, the retag the assembler inserts between register ports of different lane typings. None when to is not a register type.