Skip to content

SIMD add not being optimized away #5633

Open
@CountBleck

Description

@CountBleck

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?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions