add_sat_u: Wasm SIMD Arithmetikinstruktion
Die add_sat_u SIMD Arithmetikinstruktion führt eine saturierende Addition von zwei unsigned v128 Wertinterpretationen durch — wobei das Ausgabeergebnis auf den Bereich begrenzt wird, der durch den Werttyp erlaubt ist. Jede Spur des Ausgabeergebnisses ist das Resultat der Addition der entsprechenden Spuren des Eingabewerts.
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_u
i16x8.extract_lane_s 7
call $log ;; log the result
)
(start $main)
)
WebAssembly.instantiateStreaming(fetch("{%wasm-url%}"), { console });
Sättigung bedeutet, dass die Ausgabewerte an die oberen und unteren Werte angepasst werden, die durch die Wertinterpretation erlaubt sind, anstatt zu überlaufen. Erlaubte Ausgabewerte sind:
i8x16.add_sat_u:0bis255(der volle Bereich eines unsigned 8-Bit-Integers)i16x8.add_sat_u:0bis65,535(der volle Bereich eines unsigned 16-Bit-Integers)
Syntax
value_type.add_sat_u
value_type-
Der Werttyp, auf dem die Instruktion ausgeführt wird. Die folgenden Typen unterstützen
add_sat_u:i8x16i16x8
add_sat_u-
Die
add_sat_uInstruktion. Muss immer nach demvalue_typeund einem Punkt (.) angegeben werden.
Typ
[input1, input2] -> [output]
Binärcodekodierung
| Instruktion | Binärformat | Beispieltext => Binär |
|---|---|---|
i8x16.add_sat_u |
0xfd 112:u32 |
i8x16.add_sat_u => 0xfd 0x70 |
i16x8.add_sat_u |
0xfd 144:u32 |
i16x8.add_sat_u => 0xfd 0x90 0x01 |