```ts function test(x: i32, y: i32, z: i32): i32 { return x ? y : z } ``` which is equivalent to: ```wat (func $test (param $p0 i32) (param $p1 i32) (param $p2 i32) (result i32) local.get $p0 if $I0 (result i32) local.get $p1 else local.get $p2 end ) ``` Currently optimize with (only for -O4) to: ```wat (func $test (param $p0 i32) (param $p1 i32) (param $p2 i32) (result i32) local.get $p0 i32.eqz if $I0 local.get $p2 local.set $p1 end local.get $p1 ) ``` while optimal and expected output and this btw happening for (-O2 and -O3): ```wat (func $test (param $p0 i32) (param $p1 i32) (param $p2 i32) (result i32) local.get $p1 local.get $p2 local.get $p0 select ) ``` As I understand it relate to Relooper or Flatten pass?