swizzle: Wasm SIMD Konvertierungsanweisung
Die swizzle SIMD Konvertierungsanweisung gibt einen neuen v128 Wert zurück, dessen Werte in den Lanes von einem Eingabe-v128-Wert ausgewählt werden, basierend auf Indizes, die in einem zweiten Eingabe-v128 bereitgestellt werden.
Probieren Sie es aus
(module
(import "console" "log" (func $log (param i32)))
(func $main
v128.const i8x16 10 23 56 15 25 29 92 45 36 4 78 12 34 25 72 82
v128.const i8x16 0 2 5 7 3 5 9 2 4 6 1 7 0 3 5 1
i8x16.swizzle
i8x16.extract_lane_u 6
call $log ;; log the result
)
(start $main)
)
WebAssembly.instantiateStreaming(fetch("{%wasm-url%}"), { console });
Im obigen Beispiel extrahieren und protokollieren wir den Wert an der Indexposition 6 des swizzle Anweisungsausgabewerts. Dies wird 4 sein, da die swizzle-Anweisung den Wert an der Indexposition 9 des Eingabewerts ausgewählt hat, um bei der Indexposition 6 des Ausgabewerts eingefügt zu werden.
Syntax
value_type.swizzle
value_type-
Der Typ des Werts, auf dem die Anweisung ausgeführt wird. Die folgenden
v128Wertinterpretationen unterstützenswizzle:i8x16
swizzle-
Die
swizzleAnweisung. Muss immer nach demvalue_typeund einem Punkt (.) enthalten sein.
Typ
[input, indices] -> [output]
input-
Die Eingabe-
v128-i8x16-Wertinterpretation. indices-
Der
v128Wert, der die Indizes enthält, die Sie verwenden möchten, um auszuwählen, welche Werte aus dem Eingabewert genommen und in die Ausgabe einbezogen werden sollen. In jedem Fall repräsentiert die Indexnummer die zu entnehmende Indexposition aus dem Eingabewert und die Position des Index repräsentiert die Position, an der er imoutput-Wert erscheinen soll.Diese Werte müssen zwischen
0und15liegen, inklusive. Für Indizes außerhalb dieses Bereichs werden die resultierenden Lanes auf0initialisiert. output-
Die Ausgabe-
v128-Wertinterpretation.
Binäre Codierung
| Anweisung | Binärformat | Beispieltext => binär |
|---|---|---|
i8x16.swizzle |
0xfd 14:u32 |
i8x16.swizzle => 0xfd 0x0e |
Spezifikationen
| Spezifikation |
|---|
| WebAssembly Core Specification> # vector-instructions%E2%91%A8> |