extmul_high_i32x4_u: Wasm SIMD-Arithmetikinstruktion
Die extmul_high_i32x4_u SIMD-Arithmetikinstruktion nimmt die Spuren 2–3 von zwei unsignierten v128 i32x4 Wertinterpretationen, multipliziert die Werte in den entsprechenden Spuren und gibt das Ergebnis dieser Operationen als 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_high_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 2–3 der beiden i32x4 Eingabewerte miteinander multipliziert und die Produkte als i64x2 ausgegeben. Spur 2 des ersten Eingabewerts wird mit Spur 2 des zweiten Eingabewerts multipliziert, und das Produkt wird Spur 0 der Ausgabe. Und so weiter. Als Ergebnis enthält jede Spur der Ausgabe den Wert 2000 (50 * 40).
Die extmul_high_i32x4_u-Instruktion ist eine leistungsfähigere Entsprechung zum Übergeben der Ergebnisse von zwei extend_high_i32x4_u Instruktionen an eine mul Instruktion.
Mit anderen Worten:
(i64x2.extmul_high_i32x4_u
(input1)
(input2)
)
ist äquivalent zu
(i64x2.mul
(i64x2.extend_high_i32x4_u
(input1)
)
(i64x2.extend_high_i32x4_u
(input2)
)
)
Syntax
i64x2.extmul_high_i32x4_u
i64x2.extmul_high_i32x4_u-
Die
i64x2.extmul_high_i32x4_u-Instruktion.
Typ
[input1, input2] -> [output]
Binärcodierung
| Instruktion | Binärformat | Beispieltext => binär |
|---|---|---|
i64x2.extmul_high_i32x4_u |
0xfd 223:u32 |
i64x2.extmul_high_i32x4_u => 0xfd 0xdf 0x01 |