1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
use crate;
use crateprimitive;
use crate;
// Element-wise multiplication of two f32 buffers.
// IEEE-754 f32 multiplication is NOT bitwise-associative under
// rounding and `Absorbing { element: 0 }` fails on `0 * NaN = NaN` and
// `0 * Inf = NaN` (neither returns 0). `Identity { element: 1 }` holds
// bit-exactly (IEEE guarantees `1 * x = x` for every finite, signed
// zero, infinity, and NaN payload). Per audit
// `primitive-laws-kimi-AUDIT`, F32Mul satisfies commutativity and
// right-identity-by-one only.
pub const LAWS: & = &;
/// f32 element-wise multiplication operation.
;
// Backend-specific lowering tripwires for `primitive.float.f32_mul`.
// WGSL lowering marker for `primitive.float.f32_mul`.
//
// Not a stub: this is a zero-overhead Category A marker. `F32Mul::program`
// builds concrete IR through `core/src/ops/primitive/binary_f32_program.rs`;
// `core/src/lower/wgsl/expr.rs::emit_binop` emits WGSL.
// `core/tests/conformance.rs::conformance_all_primitives` verifies
// lowered GPU bytes are bit-exact against the conform CPU reference.
//
// ```wgsl
// _vyre_store_out(idx, (_vyre_load_a(idx) * _vyre_load_b(idx)));
// ```