sub_sat_s: Wasm SIMD Arithmetikinstruktion
Die sub_sat_s SIMD-Arithmetikinstruktion führt eine saturierende Subtraktion von zwei vorzeichenbehafteten v128-Wertinterpretationen durch — dabei wird die Ausgabe auf den Bereich beschränkt, der durch den Werttyp erlaubt ist. Jede Lane des Ausgabe-Werts ist das Ergebnis der Subtraktion der entsprechenden Lane des zweiten Eingangs von der entsprechenden Lane des ersten Eingangs.
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 beschränkt werden, die durch die Wertinterpretation erlaubt sind, anstatt zu überlaufen. Erlaubte Ausgabewerte sind:
i8x16.sub_sat_s:−128bis127(der vollständige Bereich eines vorzeichenbehafteten 8-Bit-Integer)i16x8.sub_sat_s:−32,768bis32,767(der vollständige Bereich eines vorzeichenbehafteten 16-Bit-Integer)
Syntax
value_type.sub_sat_s
value_type-
Der Werttyp, auf dem die Instruktion ausgeführt wird. Die folgenden Typen unterstützen
sub_sat_s:i8x16i16x8
sub_sat_s-
Die
sub_sat_s-Instruktion. Muss immer nach demvalue_typeund einem Punkt (.) eingefügt werden.
Typ
[input1, input2] -> [output]
Binärcodierung
| Instruktion | 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 |
Spezifikationen
| Spezifikation |
|---|
| WebAssembly Core Specification> # vector-instructions%E2%91%A8> |