add_sat_s: Wasm SIMD Arithmetik-Anweisung
Die add_sat_s SIMD Arithmetik-Anweisung führt eine saturierte Addition von zwei signierten v128 Wertinterpretationen durch — wobei der Ausgabewert auf den Bereich begrenzt wird, der durch den Wertetyp erlaubt ist. Jedes Lane des Ausgabewerts ist das Ergebnis der Addition der entsprechenden Lanes des Eingangswerts.
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 Wertinterpretation erlaubt sind, anstatt zu umwickeln. Erlaubte Ausgabewerte sind:
i8x16.add_sat_s:−128bis127(der volle Bereich eines signierten 8-Bit-Integer)i16x8.add_sat_s:−32,768bis32,767(der volle Bereich eines signierten 16-Bit-Integer)
Syntax
value_type.add_sat_s
value_type-
Der Wertetyp, auf dem die Anweisung ausgeführt wird. Die folgenden Typen unterstützen
add_sat_s:i8x16i16x8
add_sat_s-
Die
add_sat_sAnweisung. Muss immer nach demvalue_typeund einem Punkt (.) angegeben werden.
Typ
[input1, input2] -> [output]
Binärcodierung
| Anweisung | Binärformat | Beispieltext => 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 |
Spezifikationen
| Spezifikation |
|---|
| WebAssembly Core Specification> # vector-instructions%E2%91%A8> |