Expand description
Comparison and selection nodes.
Two families:
-
Comparison (
u64_eq,u64_lt,f64_lt, …): two-input nodes that produce a u64 truth value (0 or 1). The DSL’s==,!=,<,>,<=,>=infix operators desugar to these — type-aware dispatch incompile_bindingpicks theu64_*orf64_*variant based on operand types. -
Selection (
select_u64,select_f64): three-input nodes that pick between two operand values based on a u64 condition (any nonzero → first arg, zero → second). Used to desugarif(cond, a, b)once the compiler knows the result type. Both branches always evaluate — no short-circuit. JIT level: P3 (JitOp::SelectU64/SelectF64, a native conditional select).
Output of every comparison node is u64 so downstream code can
mix them with bitwise operators (a < b & c < d) without
widening, and pass them as the cond input to select_*.
Structs§
- F64Eq
- The
f64_eqnode. - F64Ge
- The
f64_genode. - F64Gt
- The
f64_gtnode. - F64Le
- The
f64_lenode. - F64Lt
- The
f64_ltnode. - F64Ne
- The
f64_nenode. - Select
F64 - Pick between two f64 inputs based on a u64 condition. f64s travel as raw u64 bit patterns through the compiled buffer.
- Select
Str - Pick between two String inputs based on a u64 condition.
Any nonzero
cond→a; zero →b. - Select
U64 - Pick between two u64 inputs based on a u64 condition.
- StrEq
- Equality of two String wires. Returns 1 if equal else 0.
- StrNe
- Inequality of two String wires.
- U64Eq
- The
u64_eqnode. - U64Ge
- The
u64_genode. - U64Gt
- The
u64_gtnode. - U64Le
- The
u64_lenode. - U64Lt
- The
u64_ltnode. - U64Ne
- The
u64_nenode.