Skip to content

Operation signatures

Registered operations: 97. Registered type signatures: 404. Implemented operations: 97. Implemented signatures: 404.

P = planned, I = implemented but not verified on the target, V = verified within the recorded scope, F = scalar fallback. Evidence is recorded per signature in the registry. Read support and compatibility for platform limits and numerical contracts.

IDOperationType signatureNative scalarAVX2NEONWasm scalarSIMD128
0addf32, f32 → f32VIVVV
0addf64, f64 → f64VFFVF
0addi8, i8 → i8VFFVF
0addi16, i16 → i16VFFVF
0addi32, i32 → i32VFFVF
0addu8, u8 → u8VFFVF
0addu16, u16 → u16VFFVF
0addu32, u32 → u32VFFVF
1subf32, f32 → f32VIVVV
1subf64, f64 → f64VFFVF
1subi8, i8 → i8VFFVF
1subi16, i16 → i16VFFVF
1subi32, i32 → i32VFFVF
1subu8, u8 → u8VFFVF
1subu16, u16 → u16VFFVF
1subu32, u32 → u32VFFVF
2mulf32, f32 → f32VIVVV
2mulf64, f64 → f64VFFVF
2muli8, i8 → i8VFFVF
2muli16, i16 → i16VFFVF
2muli32, i32 → i32VFFVF
2mulu8, u8 → u8VFFVF
2mulu16, u16 → u16VFFVF
2mulu32, u32 → u32VFFVF
3divf32, f32 → f32VIVVV
3divf64, f64 → f64VFFVF
4absf32 → f32VIVVV
4absf64 → f64VFFVF
4absi8 → i8VFFVF
4absi16 → i16VFFVF
4absi32 → i32VFFVF
5minf32, f32 → f32VIVVV
5minf64, f64 → f64VFFVF
5mini8, i8 → i8VFFVF
5mini16, i16 → i16VFFVF
5mini32, i32 → i32VFFVF
5minu8, u8 → u8VFFVF
5minu16, u16 → u16VFFVF
5minu32, u32 → u32VFFVF
6maxf32, f32 → f32VIVVV
6maxf64, f64 → f64VFFVF
6maxi8, i8 → i8VFFVF
6maxi16, i16 → i16VFFVF
6maxi32, i32 → i32VFFVF
6maxu8, u8 → u8VFFVF
6maxu16, u16 → u16VFFVF
6maxu32, u32 → u32VFFVF
7clampf32, scalar<f32>, scalar<f32> → f32VIVVV
7clampf64, scalar<f64>, scalar<f64> → f64VFFVF
7clampi8, scalar<i8>, scalar<i8> → i8VFFVF
7clampi16, scalar<i16>, scalar<i16> → i16VFFVF
7clampi32, scalar<i32>, scalar<i32> → i32VFFVF
7clampu8, scalar<u8>, scalar<u8> → u8VFFVF
7clampu16, scalar<u16>, scalar<u16> → u16VFFVF
7clampu32, scalar<u32>, scalar<u32> → u32VFFVF
8negf32 → f32VIVVV
8negf64 → f64VFFVF
8negi8 → i8VFFVF
8negi16 → i16VFFVF
8negi32 → i32VFFVF
9squaref32 → f32VIVVV
9squaref64 → f64VFFVF
9squarei8 → i8VFFVF
9squarei16 → i16VFFVF
9squarei32 → i32VFFVF
9squareu8 → u8VFFVF
9squareu16 → u16VFFVF
9squareu32 → u32VFFVF
10sqrtf32 → f32VIVVV
10sqrtf64 → f64VFFVF
11reciprocalf32 → f32VIVVV
11reciprocalf64 → f64VFFVF
12signf32 → f32VFFVF
12signf64 → f64VFFVF
13copysignf32, f32 → f32VIVVV
13copysignf64, f64 → f64VFFVF
14floorf32 → f32VIVVV
14floorf64 → f64VFFVF
15ceilf32 → f32VIVVV
15ceilf64 → f64VFFVF
16truncf32 → f32VIVVV
16truncf64 → f64VFFVF
17roundf32 → f32VFFVF
17roundf64 → f64VFFVF
18roundEvenf32 → f32VIVVV
18roundEvenf64 → f64VFFVF
19eqf32, f32 → maskVFFVF
19eqf64, f64 → maskVFFVF
19eqi8, i8 → maskVFFVF
19eqi16, i16 → maskVFFVF
19eqi32, i32 → maskVFFVF
19equ8, u8 → maskVFFVF
19equ16, u16 → maskVFFVF
19equ32, u32 → maskVFFVF
20nef32, f32 → maskVFFVF
20nef64, f64 → maskVFFVF
20nei8, i8 → maskVFFVF
20nei16, i16 → maskVFFVF
20nei32, i32 → maskVFFVF
20neu8, u8 → maskVFFVF
20neu16, u16 → maskVFFVF
20neu32, u32 → maskVFFVF
21ltf32, f32 → maskVFFVF
21ltf64, f64 → maskVFFVF
21lti8, i8 → maskVFFVF
21lti16, i16 → maskVFFVF
21lti32, i32 → maskVFFVF
21ltu8, u8 → maskVFFVF
21ltu16, u16 → maskVFFVF
21ltu32, u32 → maskVFFVF
22lef32, f32 → maskVFFVF
22lef64, f64 → maskVFFVF
22lei8, i8 → maskVFFVF
22lei16, i16 → maskVFFVF
22lei32, i32 → maskVFFVF
22leu8, u8 → maskVFFVF
22leu16, u16 → maskVFFVF
22leu32, u32 → maskVFFVF
23gtf32, f32 → maskVFFVF
23gtf64, f64 → maskVFFVF
23gti8, i8 → maskVFFVF
23gti16, i16 → maskVFFVF
23gti32, i32 → maskVFFVF
23gtu8, u8 → maskVFFVF
23gtu16, u16 → maskVFFVF
23gtu32, u32 → maskVFFVF
24gef32, f32 → maskVFFVF
24gef64, f64 → maskVFFVF
24gei8, i8 → maskVFFVF
24gei16, i16 → maskVFFVF
24gei32, i32 → maskVFFVF
24geu8, u8 → maskVFFVF
24geu16, u16 → maskVFFVF
24geu32, u32 → maskVFFVF
25isNaNf32 → maskVFFVF
25isNaNf64 → maskVFFVF
26isFinitef32 → maskVFFVF
26isFinitef64 → maskVFFVF
27isInff32 → maskVFFVF
27isInff64 → maskVFFVF
28signbitf32 → maskVFFVF
28signbitf64 → maskVFFVF
29selectmask, f32, f32 → f32VFFVF
29selectmask, f64, f64 → f64VFFVF
29selectmask, i8, i8 → i8VFFVF
29selectmask, i16, i16 → i16VFFVF
29selectmask, i32, i32 → i32VFFVF
29selectmask, u8, u8 → u8VFFVF
29selectmask, u16, u16 → u16VFFVF
29selectmask, u32, u32 → u32VFFVF
30mask.andmask, mask → maskVFFVF
31mask.ormask, mask → maskVFFVF
32mask.xormask, mask → maskVFFVF
33mask.notmask → maskVFFVF
34mask.anymask → scalar<boolean>VFFVF
35mask.allmask → scalar<boolean>VFFVF
36sumf32 → scalar<number>VFFVF
36sumf64 → scalar<number>VFFVF
37productf32 → scalar<number>VFFVF
37productf64 → scalar<number>VFFVF
38meanf32 → scalar<number>VFFVF
38meanf64 → scalar<number>VFFVF
39reduceMinf32 → scalar<number>VFFVF
39reduceMinf64 → scalar<number>VFFVF
39reduceMini8 → scalar<number>VFFVF
39reduceMini16 → scalar<number>VFFVF
39reduceMini32 → scalar<number>VFFVF
39reduceMinu8 → scalar<number>VFFVF
39reduceMinu16 → scalar<number>VFFVF
39reduceMinu32 → scalar<number>VFFVF
40reduceMaxf32 → scalar<number>VFFVF
40reduceMaxf64 → scalar<number>VFFVF
40reduceMaxi8 → scalar<number>VFFVF
40reduceMaxi16 → scalar<number>VFFVF
40reduceMaxi32 → scalar<number>VFFVF
40reduceMaxu8 → scalar<number>VFFVF
40reduceMaxu16 → scalar<number>VFFVF
40reduceMaxu32 → scalar<number>VFFVF
41argMinf32 → scalar<number>VFFVF
41argMinf64 → scalar<number>VFFVF
41argMini8 → scalar<number>VFFVF
41argMini16 → scalar<number>VFFVF
41argMini32 → scalar<number>VFFVF
41argMinu8 → scalar<number>VFFVF
41argMinu16 → scalar<number>VFFVF
41argMinu32 → scalar<number>VFFVF
42argMaxf32 → scalar<number>VFFVF
42argMaxf64 → scalar<number>VFFVF
42argMaxi8 → scalar<number>VFFVF
42argMaxi16 → scalar<number>VFFVF
42argMaxi32 → scalar<number>VFFVF
42argMaxu8 → scalar<number>VFFVF
42argMaxu16 → scalar<number>VFFVF
42argMaxu32 → scalar<number>VFFVF
43dotf32, f32 → scalar<number>VFFVF
43dotf64, f64 → scalar<number>VFFVF
44l1Normf32 → scalar<number>VFFVF
44l1Normf64 → scalar<number>VFFVF
45l2Normf32 → scalar<number>VFFVF
45l2Normf64 → scalar<number>VFFVF
46squaredNormf32 → scalar<number>VFFVF
46squaredNormf64 → scalar<number>VFFVF
47variancef32 → scalar<number>VFFVF
47variancef64 → scalar<number>VFFVF
48stddevf32 → scalar<number>VFFVF
48stddevf64 → scalar<number>VFFVF
49cumsumf32 → f32VFFVF
49cumsumf64 → f64VFFVF
50cumprodf32 → f32VFFVF
50cumprodf64 → f64VFFVF
51cumminf32 → f32VFFVF
51cumminf64 → f64VFFVF
52cummaxf32 → f32VFFVF
52cummaxf64 → f64VFFVF
53scaleAddf32, scalar<f32>, scalar<f32> → f32VFFVF
53scaleAddf64, scalar<f64>, scalar<f64> → f64VFFVF
54mulAddf32, f32, f32 → f32VFFVF
54mulAddf64, f64, f64 → f64VFFVF
55lerpf32, f32, f32 → f32VFFVF
55lerpf64, f64, f64 → f64VFFVF
56bitAndi8, i8 → i8VFFVF
56bitAndi16, i16 → i16VFFVF
56bitAndi32, i32 → i32VFFVF
56bitAndu8, u8 → u8VFFVF
56bitAndu16, u16 → u16VFFVF
56bitAndu32, u32 → u32VFFVF
57bitOri8, i8 → i8VFFVF
57bitOri16, i16 → i16VFFVF
57bitOri32, i32 → i32VFFVF
57bitOru8, u8 → u8VFFVF
57bitOru16, u16 → u16VFFVF
57bitOru32, u32 → u32VFFVF
58bitXori8, i8 → i8VFFVF
58bitXori16, i16 → i16VFFVF
58bitXori32, i32 → i32VFFVF
58bitXoru8, u8 → u8VFFVF
58bitXoru16, u16 → u16VFFVF
58bitXoru32, u32 → u32VFFVF
59bitNoti8 → i8VFFVF
59bitNoti16 → i16VFFVF
59bitNoti32 → i32VFFVF
59bitNotu8 → u8VFFVF
59bitNotu16 → u16VFFVF
59bitNotu32 → u32VFFVF
60shiftLefti8, scalar<i8> → i8VFFVF
60shiftLefti16, scalar<i16> → i16VFFVF
60shiftLefti32, scalar<i32> → i32VFFVF
60shiftLeftu8, scalar<u8> → u8VFFVF
60shiftLeftu16, scalar<u16> → u16VFFVF
60shiftLeftu32, scalar<u32> → u32VFFVF
61shiftRighti8, scalar<i8> → i8VFFVF
61shiftRighti16, scalar<i16> → i16VFFVF
61shiftRighti32, scalar<i32> → i32VFFVF
61shiftRightu8, scalar<u8> → u8VFFVF
61shiftRightu16, scalar<u16> → u16VFFVF
61shiftRightu32, scalar<u32> → u32VFFVF
62shiftRightLogicali8, scalar<i8> → i8VFFVF
62shiftRightLogicali16, scalar<i16> → i16VFFVF
62shiftRightLogicali32, scalar<i32> → i32VFFVF
62shiftRightLogicalu8, scalar<u8> → u8VFFVF
62shiftRightLogicalu16, scalar<u16> → u16VFFVF
62shiftRightLogicalu32, scalar<u32> → u32VFFVF
63addSaturatingi8, i8 → i8VFFVF
63addSaturatingi16, i16 → i16VFFVF
63addSaturatingi32, i32 → i32VFFVF
63addSaturatingu8, u8 → u8VFFVF
63addSaturatingu16, u16 → u16VFFVF
63addSaturatingu32, u32 → u32VFFVF
64subSaturatingi8, i8 → i8VFFVF
64subSaturatingi16, i16 → i16VFFVF
64subSaturatingi32, i32 → i32VFFVF
64subSaturatingu8, u8 → u8VFFVF
64subSaturatingu16, u16 → u16VFFVF
64subSaturatingu32, u32 → u32VFFVF
65divTrunci8, i8 → i8VFFVF
65divTrunci16, i16 → i16VFFVF
65divTrunci32, i32 → i32VFFVF
65divTruncu8, u8 → u8VFFVF
65divTruncu16, u16 → u16VFFVF
65divTruncu32, u32 → u32VFFVF
66remainderi8, i8 → i8VFFVF
66remainderi16, i16 → i16VFFVF
66remainderi32, i32 → i32VFFVF
66remainderu8, u8 → u8VFFVF
66remainderu16, u16 → u16VFFVF
66remainderu32, u32 → u32VFFVF
67mulHighi8, i8 → i8VFFVF
67mulHighi16, i16 → i16VFFVF
67mulHighi32, i32 → i32VFFVF
67mulHighu8, u8 → u8VFFVF
67mulHighu16, u16 → u16VFFVF
67mulHighu32, u32 → u32VFFVF
68rotli8, scalar<i8> → i8VFFVF
68rotli16, scalar<i16> → i16VFFVF
68rotli32, scalar<i32> → i32VFFVF
68rotlu8, scalar<u8> → u8VFFVF
68rotlu16, scalar<u16> → u16VFFVF
68rotlu32, scalar<u32> → u32VFFVF
69rotri8, scalar<i8> → i8VFFVF
69rotri16, scalar<i16> → i16VFFVF
69rotri32, scalar<i32> → i32VFFVF
69rotru8, scalar<u8> → u8VFFVF
69rotru16, scalar<u16> → u16VFFVF
69rotru32, scalar<u32> → u32VFFVF
70popcounti8 → i8VFFVF
70popcounti16 → i16VFFVF
70popcounti32 → i32VFFVF
70popcountu8 → u8VFFVF
70popcountu16 → u16VFFVF
70popcountu32 → u32VFFVF
71clzi8 → i8VFFVF
71clzi16 → i16VFFVF
71clzi32 → i32VFFVF
71clzu8 → u8VFFVF
71clzu16 → u16VFFVF
71clzu32 → u32VFFVF
72ctzi8 → i8VFFVF
72ctzi16 → i16VFFVF
72ctzi32 → i32VFFVF
72ctzu8 → u8VFFVF
72ctzu16 → u16VFFVF
72ctzu32 → u32VFFVF
73convertf32 → f64VFFVF
73convertf64 → f32VFFVF
73converti32 → f32VFFVF
73convertf32 → i32VFFVF
73convertu8 → f32VFFVF
73convertf32 → u8VFFVF
73converti8 → i16VFFVF
73converti8 → i32VFFVF
73converti8 → u8VFFVF
73converti8 → u16VFFVF
73converti8 → u32VFFVF
73converti16 → i8VFFVF
73converti16 → i32VFFVF
73converti16 → u8VFFVF
73converti16 → u16VFFVF
73converti16 → u32VFFVF
73converti32 → i8VFFVF
73converti32 → i16VFFVF
73converti32 → u8VFFVF
73converti32 → u16VFFVF
73converti32 → u32VFFVF
73convertu8 → i8VFFVF
73convertu8 → i16VFFVF
73convertu8 → i32VFFVF
73convertu8 → u16VFFVF
73convertu8 → u32VFFVF
73convertu16 → i8VFFVF
73convertu16 → i16VFFVF
73convertu16 → i32VFFVF
73convertu16 → u8VFFVF
73convertu16 → u32VFFVF
73convertu32 → i8VFFVF
73convertu32 → i16VFFVF
73convertu32 → i32VFFVF
73convertu32 → u8VFFVF
73convertu32 → u16VFFVF
74expf32 → f32VFFVF
74expf64 → f64VFFVF
75exp2f32 → f32VFFVF
75exp2f64 → f64VFFVF
76expm1f32 → f32VFFVF
76expm1f64 → f64VFFVF
77logf32 → f32VFFVF
77logf64 → f64VFFVF
78log2f32 → f32VFFVF
78log2f64 → f64VFFVF
79log10f32 → f32VFFVF
79log10f64 → f64VFFVF
80log1pf32 → f32VFFVF
80log1pf64 → f64VFFVF
81powf32, f32 → f32VFFVF
81powf64, f64 → f64VFFVF
82cbrtf32 → f32VFFVF
82cbrtf64 → f64VFFVF
83hypotf32, f32 → f32VFFVF
83hypotf64, f64 → f64VFFVF
84sinf32 → f32VFFVF
84sinf64 → f64VFFVF
85cosf32 → f32VFFVF
85cosf64 → f64VFFVF
86tanf32 → f32VFFVF
86tanf64 → f64VFFVF
87asinf32 → f32VFFVF
87asinf64 → f64VFFVF
88acosf32 → f32VFFVF
88acosf64 → f64VFFVF
89atanf32 → f32VFFVF
89atanf64 → f64VFFVF
90atan2f32, f32 → f32VFFVF
90atan2f64, f64 → f64VFFVF
91sinhf32 → f32VFFVF
91sinhf64 → f64VFFVF
92coshf32 → f32VFFVF
92coshf64 → f64VFFVF
93tanhf32 → f32VFFVF
93tanhf64 → f64VFFVF
94asinhf32 → f32VFFVF
94asinhf64 → f64VFFVF
95acoshf32 → f32VFFVF
95acoshf64 → f64VFFVF
96atanhf32 → f32VFFVF
96atanhf64 → f64VFFVF

Released under the MIT License.