sub_sat_s: Wasm SIMD Arithmetik-Anweisung
Die sub_sat_s SIMD Arithmetik-Anweisung führt eine saturierende Subtraktion von zwei vorzeichenbehafteten v128 Wertinterpretationen durch — dabei wird das Ergebnis auf den Bereich beschränkt, der durch den Werttyp erlaubt ist. Jede Lane des Ausgabe-Werts 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_s
i16x8.extract_lane_s 7
call $log ;; log the result
)
(start $main)
)
WebAssembly.instantiateStreaming(fetch("{%wasm-url%}"), { console });
Sättigung bedeutet, dass die Ausgabe-Werte auf die oberen und unteren Werte begrenzt werden, die durch die Wertinterpretation erlaubt sind, anstatt zu überschreiten. Erlaubte Ausgabe-Werte sind:
i8x16.sub_sat_s:−128bis127(der vollständige Bereich eines vorzeichenbehafteten 8-Bit-Ganzzahlwerts)i16x8.sub_sat_s:−32,768bis32,767(der vollständige Bereich eines vorzeichenbehafteten 16-Bit-Ganzzahlwerts)
Syntax
value_type.sub_sat_s
value_type-
Der Werttyp, auf dem die Anweisung ausgeführt wird. Die folgenden Typen unterstützen
sub_sat_s:i8x16i16x8
sub_sat_s-
Die
sub_sat_sAnweisung. Muss immer nach demvalue_typeund einem Punkt (.) enthalten sein.
Typ
[input1, input2] -> [output]
Binäre Kodierung
| 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 |