The max_s instruction compares two v128 signed integer value interpretations and returns a new interpretation with each lane set to the greater of that lane index's value on the two inputs.
(module
(import "console" "log" (func $log (param i32)))
(func $main
;; load two v128 i16x8s onto the stack
v128.const i16x8 10 400 0 86 87 9000 -5 19
v128.const i16x8 200 20 0 -5 80 9 -6 283
;; return a i16x8 containing the greatest values from each input
i16x8.max_s
i16x8.extract_lane_s 5 ;; Extract a single lane
call $log ;; log the result
)
(start $main)
)const url = "{%wasm-url%}";
await WebAssembly.instantiateStreaming(fetch(url), { console });value_type.max_s
value_typeThe type of value the instruction is being run on. The following types support max_s:
i8x16i16x8i32x4max_sThe max_s instruction. Must always be included after the value_type and a period (.).
[input1, input2] -> [output]
input1The first input value.
input2The second input value.
outputThe output value. A new v128 of the same type as the inputs, with each lane set to the greater of that lane index's value on the two inputs.
| Instruction | Binary format | Example text => binary |
|---|---|---|
i8x16.max_s | 0xfd 120:u32 | i8x16.max_s => 0xfd 0x78 |
i16x8.max_s | 0xfd 152:u32 | i16x8.max_s => 0xfd 0x98 0x01 |
i32x4.max_s | 0xfd 184:u32 | i32x4.max_s => 0xfd 0xb8 0x01 |