add_sat_u: Wasm SIMD arithmetische Anweisung
Die add_sat_u SIMD arithmetische Anweisung führt eine saturierende Addition zweier unsignierter v128 Werteinterpretationen durch – dabei wird die Ausgabe auf den Bereich begrenzt, der durch den Werttyp erlaubt ist. Jede Spur des Ausgabewertes ist das Ergebnis der Addition der entsprechenden Spuren des Eingabewertes.
Probieren Sie es aus
(module
(import "console" "log" (func $log (param i32)))
(func $main
v128.const i16x8 4 6 16 8 23 65 82 9
v128.const i16x8 0 25 2 30 2 34 45 80
i16x8.add_sat_u
i16x8.extract_lane_s 7
call $log ;; log the result
)
(start $main)
)
WebAssembly.instantiateStreaming(fetch("{%wasm-url%}"), { console });
Sättigung bedeutet, dass die Ausgabewerte auf die oberen und unteren Werte begrenzt werden, die durch die Werteinterpretation erlaubt sind, anstatt zu überlaufen. Erlaubte Ausgabewerte sind:
i8x16.add_sat_u:0bis255(der volle Bereich eines unsignierten 8-Bit-Ganzzahlwerts)i16x8.add_sat_u:0bis65,535(der volle Bereich eines unsignierten 16-Bit-Ganzzahlwerts)
Syntax
value_type.add_sat_u
value_type-
Der Typ des Wertes, auf den die Anweisung angewendet wird. Die folgenden Typen unterstützen
add_sat_u:i8x16i16x8
add_sat_u-
Die
add_sat_uAnweisung. Muss immer nach demvalue_typeund einem Punkt (.) eingefügt werden.
Typ
[input1, input2] -> [output]
Binäre Kodierung
| Anweisung | Binärformat | Beispieltext => binär |
|---|---|---|
i8x16.add_sat_u |
0xfd 112:u32 |
i8x16.add_sat_u => 0xfd 0x70 |
i16x8.add_sat_u |
0xfd 144:u32 |
i16x8.add_sat_u => 0xfd 0x90 0x01 |
Spezifikationen
| Spezifikation |
|---|
| WebAssembly Core Specification> # vector-instructions%E2%91%A8> |