sub_sat_s: Wasm SIMD-Arithmetikanweisung
Die sub_sat_s SIMD-Arithmetikanweisung führt eine sättigende Subtraktion zweier signierter v128-Wertinterpretationen durch — sie begrenzt die Ausgabe auf den Bereich, der durch den Werttyp erlaubt ist. Jede Spur des Ausgabewertes ist das Ergebnis der Subtraktion der entsprechenden Spur der zweiten Eingabe von der entsprechenden Spur 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_s
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 Wertinterpretation erlaubt sind, anstatt zu überlaufen. Erlaubte Ausgabewerte sind:
i8x16.sub_sat_s:−128bis127(der gesamte Bereich eines signierten 8-Bit-Integer)i16x8.sub_sat_s:−32,768bis32,767(der gesamte Bereich eines signierten 16-Bit-Integer)
Syntax
value_type.sub_sat_s
value_type-
Der Typ des Wertes, auf dem die Anweisung ausgeführt wird. Die folgenden Typen unterstützen
sub_sat_s:i8x16i16x8
sub_sat_s-
Die Anweisung
sub_sat_s. Muss immer nach demvalue_typeund einem Punkt (.) angegeben werden.
Typ
[input1, input2] -> [output]
Binärcodierung
| Anweisung | Binärformat | Beispieltext => binär |
|---|---|---|
i8x16.sub_sat_s |
0xfd 114:u32 |
i8x16.sub_sat_s => 0xfd 0x72 |
i16x8.sub_sat_s |
0xfd 146:u32 |
i16x8.sub_sat_s => 0xfd 0x92 0x01 |