add_sat_s: Wasm SIMD-Arithmetik-Instruktion
Die add_sat_s SIMD-Arithmetik-Instruktion führt eine Sättigung bei der Addition von zwei vorzeichenbehafteten v128-Werten durch – dabei wird das Ergebnis auf den durch den Wertetyp erlaubten Bereich begrenzt. Jede Spur des Ergebniswertes ist das Resultat der Addition der entsprechenden Spuren der Eingabewerte.
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_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 Werteinterpretation erlaubt sind, anstatt zu überschreiten. Erlaubte Ausgabewerte sind:
i8x16.add_sat_s:−128bis127(der vollständige Bereich eines 8-Bit-Vorzeichenintegers)i16x8.add_sat_s:−32,768bis32,767(der vollständige Bereich eines 16-Bit-Vorzeichenintegers)
Syntax
value_type.add_sat_s
value_type-
Der Typ des Wertes, auf dem die Instruktion ausgeführt wird. Die folgenden Typen unterstützen
add_sat_s:i8x16i16x8
add_sat_s-
Die
add_sat_s-Instruktion. Muss immer nach demvalue_typeund einem Punkt (.) folgen.
Typ
[input1, input2] -> [output]
Binärcode
| Instruktion | Binärformat | Beispiel Text => Binär |
|---|---|---|
i8x16.add_sat_s |
0xfd 111:u32 |
i8x16.add_sat_s => 0xfd 0x6f |
i16x8.add_sat_s |
0xfd 143:u32 |
i16x8.add_sat_s => 0xfd 0x8f 0x01 |