2 (type $0 (func (param i32 i32) (result i32)))
4 (func $conditionals (type $0) (param $0 i32) (param $1 i32) (result i32)
27 (i32.or ;; this or is very expensive. we should compute one side, then see if we even need the other
32 (tee_local $7 ;; side effect, so we can't do this one
90 (func $side-effect (type $0) (param $0 i32) (param $1 i32) (result i32)
113 (i32.or ;; this or is very expensive, but has a side effect on both sides
176 (func $flip (type $0) (param $0 i32) (param $1 i32) (result i32)
199 (i32.or ;; this or is very expensive, and the first side has no side effect
262 (func $invalidate-conditionalizeExpensiveOnBitwise (param $0 i32) (param $1 i32) (result i32)
271 (get_local $1) ;; conflict with tee
290 (return (get_local $0))
292 (return (get_local $1))
294 (func $invalidate-conditionalizeExpensiveOnBitwise-ok (param $0 i32) (param $1 i32) (result i32)
303 (get_local $0) ;; no conflict
322 (return (get_local $0))
324 (return (get_local $1))
327 (func $conditionalize-if-type-change (result f64)
330 (loop $label$1 (result f32)
331 (block $label$2 (result f32)
333 (block $label$3 (result f32)
335 (i32.or ;; this turns into an if, but then the if might not be unreachable
362 (f64.const -nan:0xfffffffffffff)