(module
  (memory 256 256)
  (func $b0-yes (param $i1 i32)
    (block $topmost
    )
  )
  (func $b1 (param $i1 i32)
    (block $topmost
      (i32.const 0)
    )
  )
  (func $b2 (param $i1 i32)
    (block $topmost
      (block $inner
      )
    )
  )
  (func $b3-yes (param $i1 i32)
    (block $topmost
      (block $inner
      )
    )
  )
  (func $b4 (param $i1 i32)
    (block $topmost
      (block $inner
        (i32.const 0)
      )
    )
  )
  (func $b5 (param $i1 i32)
    (block $topmost
      (block $inner
        (i32.const 0)
      )
    )
  )
  (func $b6 (param $i1 i32)
    (block $topmost
      (br_if $topmost
        (i32.const 1)
      )
    )
  )
  (func $b7 (param $i1 i32)
    (block $topmost
      (br_if $topmost
        (i32.const 0)
        (i32.const 1)
      )
    )
  )
  (func $b8 (param $i1 i32)
    (block $topmost
      (block $inner
        (br_if $topmost
          (i32.const 1)
        )
      )
    )
  )
  (func $b9 (param $i1 i32)
    (block $topmost
      (block $inner
        (br_if $topmost
          (i32.const 1)
        )
      )
    )
  )
  (func $b10 (param $i1 i32)
    (block $topmost
      (block $inner
        (br_if $topmost
          (i32.const 0)
          (i32.const 1)
        )
      )
    )
  )
  (func $b11 (param $i1 i32)
    (block $topmost
      (block $inner
        (br_if $inner
          (i32.const 0)
          (i32.const 1)
        )
      )
    )
  )
  (func $b12-yes
    (block $topmost
      (select
        (block $block1
          (i32.const 12)
          (i32.const 1)
        )
        (block $block3
          (i32.const 27)
          (i32.const 2)
        )
        (i32.const 1)
      )
    )
  )
  (func $b13 (result i32)
    (block $topmost
      (if
        (i32.const 1)
        (block $block1
          (i32.const 12)
          (br_if $topmost
            (i32.const 1)
            (i32.const 1)
          )
        )
        (block $block3
          (i32.const 27)
          (br $topmost
            (i32.const 2)
          )
        )
      )
      (i32.const 3)
    )
  )
  (func $b14 (result i32)
    (block $topmost
      (select
        (block $block1
          (i32.const 12)
        )
        (block $block3
          (i32.const 27)
        )
        (i32.const 1)
      )
    )
  )
  (func $b15
    (block $topmost
      (br_if $topmost
        (i32.const 17)
      )
    )
  )
  (func $b15
    (block $topmost
      (br_if $topmost
        (i32.const 0)
        (i32.const 18)
      )
    )
  )
  (func $b16
    (block $a
      (block $b
        (block $c
        )
      )
    )
    (block $a
      (block $b
        (block $c
        )
      )
    )
    (block $a
      (block $b
        (block $c
        )
      )
    )
  )
  (func $b17
    (block $a
      (select
        (block $block1
        )
        (block $block3
        )
        (i32.const 0)
      )
    )
    (block $a
      (select
        (i32.const 1)
        (block $block6
        )
        (i32.const 0)
      )
    )
    (block $a
      (select
        (block $block8
        )
        (i32.const 1)
        (i32.const 0)
      )
    )
    (block $c
      (block $b
        (select
          (block $block11
          )
          (block $block13
          )
          (i32.const 0)
        )
      )
    )
  )
  (func $ret-1
    (nop)
  )
  (func $ret-2
    (block $block0
      (block $block1
      )
    )
  )
  (func $ret-3
    (block $block0
      (select
        (nop)
        (block $block3
        )
        (i32.const 0)
      )
    )
  )
  (func $ret-value (result i32)
    (block $block0
      (block $block1
        (i32.const 1)
      )
    )
  )
  (func $no-select-but-the-last
    (block $a
      (if
        (i32.const 0)
        (i32.const 1)
        (block $block2
          (br $a
            (i32.const 2)
          )
          (i32.const 3)
        )
      )
      (if
        (i32.const 0)
        (block $block4
          (br $a
            (i32.const 2)
          )
          (i32.const 3)
        )
        (i32.const 1)
      )
      (if
        (block $block6
          (br $a
            (i32.const 2)
          )
          (i32.const 3)
        )
        (i32.const 0)
        (i32.const 1)
      )
      (select
        (block $a
          (i32.const 1)
        )
        (block $a
          (i32.const 2)
        )
        (block $a
          (i32.const 0)
        )
      )
    )
  )
)
