1;;! target = "x86_64"
2;;! test = "winch"
3(module
4  (func $fx (export "effects") (result i32)
5    (local i32)
6    (block
7      (loop
8        (local.set 0 (i32.const 1))
9        (local.set 0 (i32.mul (local.get 0) (i32.const 3)))
10        (local.set 0 (i32.sub (local.get 0) (i32.const 5)))
11        (local.set 0 (i32.mul (local.get 0) (i32.const 7)))
12        (br 1)
13        (local.set 0 (i32.mul (local.get 0) (i32.const 100)))
14      )
15    )
16    (i32.eq (local.get 0) (i32.const -14))
17  )
18)
19;; wasm[0]::function[0]::fx:
20;;       pushq   %rbp
21;;       movq    %rsp, %rbp
22;;       movq    8(%rdi), %r11
23;;       movq    0x18(%r11), %r11
24;;       addq    $0x20, %r11
25;;       cmpq    %rsp, %r11
26;;       ja      0x83
27;;   1c: movq    %rdi, %r14
28;;       subq    $0x20, %rsp
29;;       movq    %rdi, 0x18(%rsp)
30;;       movq    %rsi, 0x10(%rsp)
31;;       movq    $0, 8(%rsp)
32;;       movl    $1, %eax
33;;       movl    %eax, 0xc(%rsp)
34;;       movl    0xc(%rsp), %eax
35;;       imull   $3, %eax, %eax
36;;       movl    %eax, 0xc(%rsp)
37;;       movl    0xc(%rsp), %eax
38;;       subl    $5, %eax
39;;       movl    %eax, 0xc(%rsp)
40;;       movl    0xc(%rsp), %eax
41;;       imull   $7, %eax, %eax
42;;       movl    %eax, 0xc(%rsp)
43;;       movl    0xc(%rsp), %eax
44;;       cmpl    $-0xe, %eax
45;;       movl    $0, %eax
46;;       sete    %al
47;;       addq    $0x20, %rsp
48;;       popq    %rbp
49;;       retq
50;;   83: ud2
51