Open
Description
The i64x2.add
in the following WAT isn't being optimized at all (build/bin/wasm-opt --enable-simd -O3 -S -o - test.wat
):
(module
(export "v128-add" (func $v128-add))
(export "i64-add" (func $i64-add))
(func $v128-add (param v128) (result v128)
(i64x2.add (local.get 0) (v128.const i64x2 0 0))
)
(func $i64-add (param i64) (result i64)
(i64.add (local.get 0) (i64.const 0))
)
)
It outputs:
(module
(type $v128_=>_v128 (func (param v128) (result v128)))
(type $i64_=>_i64 (func (param i64) (result i64)))
(export "v128-add" (func $v128-add))
(export "i64-add" (func $i64-add))
(func $v128-add (; has Stack IR ;) (param $0 v128) (result v128)
(i64x2.add
(local.get $0)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
)
)
(func $i64-add (; has Stack IR ;) (param $0 i64) (result i64)
(local.get $0)
)
)
I'd have expected that add to be optimized away into (local.get $0)
. How do I get that to work?