extract_lane: Wasm SIMD extract instruction
The extract_lane SIMD extract instruction extracts the value contained within the specified lane of a v128 value interpretation.
Try it
(module
(import "console" "log" (func $log (param f32)))
(func $main
;; load two SIMD values onto the stack
(v128.const f32x4 0x9 0xa 0xb 0xc)
(v128.const f32x4 0x10 0x11 0x12 0x13)
f32x4.add ;; add the two values
f32x4.extract_lane 0 ;; Extract a float value from the result
call $log ;; log the result
)
(start $main)
)
WebAssembly.instantiateStreaming(fetch("{%wasm-url%}"), { console });
Syntax
value_type.extract_lane
value_type-
The type of value the instruction is being run on. The following
v128value interpretations supportextract_lane:i32x4i64x2f32x4f64x2
extract_lane-
The
extract_laneinstruction. Must always be included after thevalue_typeand a period (.).
Type
[input, lane] -> [output]
Binary encoding
| Instruction | Binary format | Example text => binary |
|---|---|---|
i32x4.extract_lane |
0xfd 27:u32 l:laneidx |
i32x4.extract_lane 3 => 0xfd 0x1b 0x03 |
i64x2.extract_lane |
0xfd 29:u32 l:laneidx |
i64x2.extract_lane 1 => 0xfd 0x1d 0x01 |
f32x4.extract_lane |
0xfd 31:u32 l:laneidx |
f32x4.extract_lane 3 => 0xfd 0x1f 0x03 |
f64x2.extract_lane |
0xfd 33:u32 l:laneidx |
f64x2.extract_lane 1 => 0xfd 0x21 0x01 |