sub_sat_u: Wasm SIMD Arithmetic Instruction
Die sub_sat_u SIMD arithmetische Anweisung führt eine saturierte Subtraktion von zwei unbedeuteten v128 Wertinterpretationen durch — indem der Ausgang auf den durch den Werttyp erlaubten Bereich geklemmt wird. Jede Lane des Ausgabe-Wertes ist das Ergebnis der Subtraktion der entsprechenden Lane der zweiten Eingabe von der entsprechenden Lane der ersten Eingabe.
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.sub_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 durch die Wertinterpretation erlaubten Werte geklemmt werden, anstatt zu überschreiten. Erlaubte Ausgabewerte sind:
i8x16.sub_sat_u:0bis255(der vollständige Bereich eines unbedeuteten 8-Bit-Integers)i16x8.sub_sat_u:0bis65,535(der vollständige Bereich eines unbedeuteten 16-Bit-Integers)
Syntax
value_type.sub_sat_u
value_type-
Der Werttyp, auf dem die Anweisung ausgeführt wird. Die folgenden Typen unterstützen
sub_sat_u:i8x16i16x8
sub_sat_u-
Die
sub_sat_uAnweisung. Muss immer nach demvalue_typeund einem Punkt (.) eingefügt werden.
Typ
[input1, input2] -> [output]
Binäre Codierung
| Anweisung | Binärformat | Beispieltext => Binär |
|---|---|---|
i8x16.sub_sat_u |
0xfd 115:u32 |
i8x16.sub_sat_u => 0xfd 0x73 |
i16x8.sub_sat_u |
0xfd 147:u32 |
i16x8.sub_sat_u => 0xfd 0x93 0x01 |