MDN / avgr_u: Wasm SIMD arithmetic instruction
MDN / avgr_u: Wasm SIMD arithmetic instruction
The avgr_u SIMD arithmetic instruction performs a rounding average of two unsigned v128 value interpretations. Each lane of the output value is (a + b + 1) / 2, i.e., the mean average of the corresponding lanes of the input values, rounded up to the nearest integer.
(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.avgr_u
i16x8.extract_lane_s 7
call $log ;; log the result
)
(start $main)
)
WebAssembly.instantiateStreaming(fetch("{%wasm-url%}"), { console });
Syntax
value_type.avgr_u
value_type: The type of value the instruction is being run on. The following types support
avgr_u:i8x16i16x8
avgr_u: The
avgr_uinstruction. Must always be included after thevalue_typeand a period (.).
Type
[input1, input2] -> [output]
input1: The first input value.
input2: The second input value.
output: The output value.
Binary encoding
InstructionBinary formatExample text => binaryi8x16.avgr_u0xfd 123:u32i8x16.avgr_u => 0xfd 0x7bi16x8.avgr_u0xfd 155:u32i16x8.avgr_u => 0xfd 0x9b 0x01