extmul_low_i32x4_u: Wasm SIMD arithmetische Anweisung
Die extmul_low_i32x4_u SIMD arithmetische Anweisung nimmt die Spuren 0–1 von zwei unsignierten v128 i32x4 Wertinterpretationen, multipliziert die Werte in den entsprechenden Spuren und gibt das Ergebnis dieser Operationen in eine i64x2 Wertinterpretation aus.
Probieren Sie es aus
(module
(import "console" "log" (func $log (param i64)))
(func $main
v128.const i32x4 25 25 50 50
v128.const i32x4 20 20 40 40
i64x2.extmul_low_i32x4_u
i64x2.extract_lane 1
call $log ;; log the result
)
(start $main)
)
WebAssembly.instantiateStreaming(fetch("{%wasm-url%}"), { console });
Im obigen Beispiel werden die Spuren 0–1 der beiden i32x4 Eingabewerte miteinander multipliziert, und die Produkte werden als i64x2 ausgegeben. Spur 0 der ersten Eingabe wird mit Spur 0 der zweiten Eingabe multipliziert, und das Produkt wird zu Spur 0 der Ausgabe, und so weiter. Somit enthält jede Spur der Ausgabe den Wert 500 (25 * 20).
Die extmul_low_i32x4_u Anweisung ist eine leistungsfähigere Entsprechung zum Übergeben der Ergebnisse von zwei extend_low_i32x4_u Anweisungen in eine mul Anweisung.
Anders ausgedrückt:
(i64x2.extmul_low_i32x4_u
(input1)
(input2)
)
entspricht
(i64x2.mul
(i64x2.extend_low_i32x4_u
(input1)
)
(i64x2.extend_low_i32x4_u
(input2)
)
)
Syntax
i64x2.extmul_low_i32x4_u
i64x2.extmul_low_i32x4_u-
Die
i64x2.extmul_low_i32x4_uAnweisung.
Typ
[input1, input2] -> [output]
Binäre Kodierung
| Anweisung | Binärformat | Beispieltext => binär |
|---|---|---|
i64x2.extmul_low_i32x4_u |
0xfd 222:u32 |
i64x2.extmul_low_i32x4_u => 0xfd 0xde 0x01 |