summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJF Bastien <jfb@chromium.org>2016-02-13 14:20:09 -0800
committerJF Bastien <jfb@chromium.org>2016-02-13 14:20:09 -0800
commit551005d16fd71c47271f2fc84d806c04c136603b (patch)
tree4eda0e30999c1924f33ba4a26f3a133e11f0ed9a
parenta53cf3b263c26bacdac24b0a4a67a8c3189645ca (diff)
downloadbinaryen-551005d16fd71c47271f2fc84d806c04c136603b.tar.gz
binaryen-551005d16fd71c47271f2fc84d806c04c136603b.tar.bz2
binaryen-551005d16fd71c47271f2fc84d806c04c136603b.zip
Update to build 3113
A few more LLVM tests make it through.
-rw-r--r--test/revision2
-rw-r--r--test/s2wasm_known_binaryen_shell_test_failures.txt3
-rw-r--r--test/torture-s/20001203-2.c.s123
-rw-r--r--test/torture-s/20011019-1.c.s2
-rw-r--r--test/torture-s/20020406-1.c.s1
-rw-r--r--test/torture-s/20120427-1.c.s334
-rw-r--r--test/torture-s/20120427-2.c.s334
-rw-r--r--test/torture-s/991216-2.c.s274
-rw-r--r--test/torture-s/ashldi-1.c.s139
-rw-r--r--test/torture-s/ashrdi-1.c.s724
-rw-r--r--test/torture-s/builtin-bitops-1.c.s1895
-rw-r--r--test/torture-s/loop-11.c.s58
-rw-r--r--test/torture-s/lshrdi-1.c.s139
-rw-r--r--test/torture-s/mode-dependent-address.c.s309
-rw-r--r--test/torture-s/pr19005.c.s48
-rw-r--r--test/torture-s/va-arg-10.c.s967
16 files changed, 4904 insertions, 448 deletions
diff --git a/test/revision b/test/revision
index 830a20363..fb7eaf521 100644
--- a/test/revision
+++ b/test/revision
@@ -1 +1 @@
-3002
+3113
diff --git a/test/s2wasm_known_binaryen_shell_test_failures.txt b/test/s2wasm_known_binaryen_shell_test_failures.txt
index 9d1820ea2..aba6024d1 100644
--- a/test/s2wasm_known_binaryen_shell_test_failures.txt
+++ b/test/s2wasm_known_binaryen_shell_test_failures.txt
@@ -31,6 +31,7 @@ pr27260.c.s.wast
991201-1.c.s.wast
bitfld-5.c.s.wast
memcpy-1.c.s.wast
+mode-dependent-address.c.s.wast
multi-ix.c.s.wast
pr29006.c.s.wast
pr37573.c.s.wast
@@ -108,6 +109,7 @@ pr48814-1.c.s.wast
990628-1.c.s.wast # malloc
991112-1.c.s.wast # isprint
align-2.c.s.wast # __eqtf2
+builtin-bitops-1.c.s.wast # __builtin_clrsb
complex-5.c.s.wast # __divsc3
ipa-sra-2.c.s.wast # calloc
loop-2f.c.s.wast # open
@@ -143,3 +145,4 @@ string-opt-5.c.s.wast # strlen
strlen-1.c.s.wast # strlen
strncmp-1.c.s.wast # strcmp
struct-cpy-1.c.s.wast # memset
+va-arg-10.c.s.wast # strlen
diff --git a/test/torture-s/20001203-2.c.s b/test/torture-s/20001203-2.c.s
index a3c43f8ba..45040af18 100644
--- a/test/torture-s/20001203-2.c.s
+++ b/test/torture-s/20001203-2.c.s
@@ -10,94 +10,87 @@ create_array_type: # @create_array_type
.local i32, i32, i32, i32, i32, i32
# BB#0: # %entry
block
- i32.const $push46=, 0
- i32.eq $push47=, $0, $pop46
- br_if 0, $pop47 # 0: down to label0
+ i32.const $push45=, 0
+ i32.eq $push46=, $0, $pop45
+ br_if 0, $pop46 # 0: down to label0
# BB#1: # %if.end
- i32.load $push4=, 0($1)
- i32.const $push5=, 3
- i32.mul $push6=, $pop4, $pop5
- i32.store $discard=, 0($0), $pop6
+ i32.load $push3=, 0($1)
+ i32.const $push4=, 3
+ i32.mul $push5=, $pop3, $pop4
+ i32.store $discard=, 0($0), $pop5
i32.load $1=, 4($0)
- i32.const $push7=, 1
- i32.store16 $discard=, 8($0):p2align=2, $pop7
+ i32.const $push6=, 1
+ i32.store16 $discard=, 8($0):p2align=2, $pop6
i32.const $3=, 0
block
- i32.const $push48=, 0
- i32.eq $push49=, $1, $pop48
- br_if 0, $pop49 # 0: down to label1
+ i32.const $push47=, 0
+ i32.eq $push48=, $1, $pop47
+ br_if 0, $pop48 # 0: down to label1
# BB#2: # %cond.true
block
- i32.const $push8=, 20
- i32.add $push9=, $1, $pop8
- i32.load $push0=, 0($pop9)
- tee_local $push40=, $4=, $pop0
- i32.const $push39=, 16
- i32.add $push10=, $1, $pop39
- tee_local $push38=, $2=, $pop10
- i32.load $push1=, 0($pop38)
- tee_local $push37=, $5=, $pop1
- i32.sub $push11=, $pop40, $pop37
- i32.const $push12=, 15
- i32.le_s $push13=, $pop11, $pop12
- br_if 0, $pop13 # 0: down to label2
+ i32.const $push7=, 20
+ i32.add $push8=, $1, $pop7
+ i32.load $push0=, 0($pop8)
+ tee_local $push39=, $5=, $pop0
+ i32.const $push38=, 16
+ i32.add $push9=, $1, $pop38
+ tee_local $push37=, $2=, $pop9
+ i32.load $push1=, 0($pop37)
+ tee_local $push36=, $4=, $pop1
+ i32.sub $push10=, $pop39, $pop36
+ i32.const $push11=, 15
+ i32.le_s $push12=, $pop10, $pop11
+ br_if 0, $pop12 # 0: down to label2
# BB#3: # %if.end9
- i32.const $push15=, 12
- i32.add $push16=, $1, $pop15
- i32.load $3=, 0($pop16)
+ i32.const $push14=, 12
+ i32.add $push15=, $1, $pop14
+ tee_local $push42=, $6=, $pop15
+ i32.load $3=, 0($pop42)
block
- i32.const $push42=, 16
- i32.add $push2=, $5, $pop42
- i32.store $push14=, 0($2), $pop2
- tee_local $push41=, $5=, $pop14
- i32.ne $push17=, $3, $pop41
- br_if 0, $pop17 # 0: down to label3
+ i32.const $push41=, 16
+ i32.add $push2=, $4, $pop41
+ i32.store $push13=, 0($2), $pop2
+ tee_local $push40=, $4=, $pop13
+ i32.ne $push16=, $3, $pop40
+ br_if 0, $pop16 # 0: down to label3
# BB#4: # %if.then16
- i32.const $push18=, 28
- i32.add $push19=, $1, $pop18
- i32.const $push20=, 1
- i32.store $discard=, 0($pop19), $pop20
+ i32.const $push17=, 28
+ i32.add $push18=, $1, $pop17
+ i32.const $push19=, 1
+ i32.store $discard=, 0($pop18), $pop19
.LBB0_5: # %if.end17
end_block # label3:
i32.const $push29=, 8
i32.add $push30=, $1, $pop29
i32.load $2=, 0($pop30)
- block
i32.const $push27=, 16
i32.add $push28=, $1, $pop27
- tee_local $push45=, $7=, $pop28
- i32.const $push21=, 24
- i32.add $push22=, $1, $pop21
- i32.load $push23=, 0($pop22)
- tee_local $push44=, $6=, $pop23
- i32.add $push24=, $5, $pop44
- i32.const $push25=, -1
- i32.xor $push26=, $6, $pop25
- i32.and $push3=, $pop24, $pop26
- i32.store $push36=, 0($pop45), $pop3
- tee_local $push43=, $5=, $pop36
- i32.sub $push31=, $pop43, $2
- i32.sub $push32=, $4, $2
- i32.le_s $push33=, $pop31, $pop32
- br_if 0, $pop33 # 0: down to label4
-# BB#6: # %if.then36
- i32.store $discard=, 0($7), $4
- copy_local $5=, $4
-.LBB0_7: # %if.end39
- end_block # label4:
- i32.const $push34=, 12
- i32.add $push35=, $1, $pop34
- i32.store $discard=, 0($pop35), $5
+ tee_local $push44=, $7=, $pop28
+ i32.const $push20=, 24
+ i32.add $push21=, $1, $pop20
+ i32.load $push22=, 0($pop21)
+ tee_local $push43=, $1=, $pop22
+ i32.add $push23=, $pop43, $4
+ i32.const $push24=, -1
+ i32.xor $push25=, $1, $pop24
+ i32.and $push26=, $pop23, $pop25
+ i32.store $1=, 0($pop44), $pop26
+ i32.sub $push31=, $1, $2
+ i32.sub $push32=, $5, $2
+ i32.gt_s $push33=, $pop31, $pop32
+ i32.select $push34=, $5, $1, $pop33
+ i32.store $push35=, 0($7), $pop34
+ i32.store $discard=, 0($6), $pop35
br 1 # 1: down to label1
-.LBB0_8: # %if.then8
+.LBB0_6: # %if.then8
end_block # label2:
call _obstack_newchunk@FUNCTION, $0, $0
unreachable
-.LBB0_9: # %cond.end
+.LBB0_7: # %cond.end
end_block # label1:
i32.store $discard=, 12($0), $3
return $0
-.LBB0_10: # %if.then
+.LBB0_8: # %if.then
end_block # label0:
i32.call $discard=, alloc_type@FUNCTION
unreachable
diff --git a/test/torture-s/20011019-1.c.s b/test/torture-s/20011019-1.c.s
index 5bd39b226..f7456d52e 100644
--- a/test/torture-s/20011019-1.c.s
+++ b/test/torture-s/20011019-1.c.s
@@ -24,7 +24,7 @@ foo: # @foo
.type main,@function
main: # @main
.result i32
-# BB#0: # %if.end
+# BB#0: # %entry
i32.const $push1=, 0
i32.const $push0=, x+4
i32.store $discard=, y($pop1), $pop0
diff --git a/test/torture-s/20020406-1.c.s b/test/torture-s/20020406-1.c.s
index c65b9947d..48ce360d7 100644
--- a/test/torture-s/20020406-1.c.s
+++ b/test/torture-s/20020406-1.c.s
@@ -257,6 +257,7 @@ main: # @main
i32.call $push10=, calloc@FUNCTION, $pop9, $pop19
i32.store $push11=, 8($pop20), $pop10
i32.store $discard=, 8($pop11), $1
+ i32.load $1=, 4($0)
i32.const $push18=, 4
i32.or $push14=, $8, $pop18
i32.const $push17=, 2
diff --git a/test/torture-s/20120427-1.c.s b/test/torture-s/20120427-1.c.s
index a3ed4316d..79dbaa9fa 100644
--- a/test/torture-s/20120427-1.c.s
+++ b/test/torture-s/20120427-1.c.s
@@ -50,227 +50,205 @@ main: # @main
.local i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
# BB#0: # %entry
i32.const $6=, 0
- i32.const $push60=, 0
- i32.load $0=, a+4($pop60)
- i32.const $push59=, 0
- i32.load $1=, a($pop59):p2align=4
- i32.const $push58=, 0
- i32.load $2=, a+12($pop58)
- i32.const $push57=, 0
- i32.load $3=, a+8($pop57):p2align=3
- i32.const $push56=, 0
- i32.load $4=, a+20($pop56)
- i32.const $push55=, 0
- i32.load $5=, a+16($pop55):p2align=4
-.LBB1_1: # %for.cond1.preheader
+ i32.const $push54=, 0
+ i32.load $0=, a+4($pop54)
+ i32.const $push53=, 0
+ i32.load $1=, a($pop53):p2align=4
+ i32.const $push52=, 0
+ i32.load $2=, a+12($pop52)
+ i32.const $push51=, 0
+ i32.load $3=, a+8($pop51):p2align=3
+ i32.const $push50=, 0
+ i32.load $4=, a+20($pop50)
+ i32.const $push49=, 0
+ i32.load $5=, a+16($pop49):p2align=4
+.LBB1_1: # %if.end
# =>This Inner Loop Header: Depth=1
block
- loop # label2:
- i32.const $push65=, 3
- i32.shl $push7=, $6, $pop65
- tee_local $push64=, $8=, $pop7
- i32.const $push63=, a+4
- i32.add $7=, $pop64, $pop63
- i32.const $push62=, a
- i32.add $8=, $8, $pop62
- block
block
+ loop # label3:
+ i32.const $push58=, 3
+ i32.shl $push6=, $6, $pop58
+ tee_local $push57=, $8=, $pop6
+ i32.const $push56=, a+4
+ i32.add $7=, $pop57, $pop56
+ i32.const $push55=, a
+ i32.add $8=, $8, $pop55
block
block
- i32.const $push61=, -1
- i32.le_s $push8=, $6, $pop61
- br_if 0, $pop8 # 0: down to label7
-# BB#2: # %if.end
- # in Loop: Header=BB1_1 Depth=1
block
block
- i32.const $push80=, 0
- i32.eq $push81=, $6, $pop80
- br_if 0, $pop81 # 0: down to label9
-# BB#3: # %if.end14
+ i32.const $push72=, 0
+ i32.eq $push73=, $6, $pop72
+ br_if 0, $pop73 # 0: down to label8
+# BB#2: # %if.end14
# in Loop: Header=BB1_1 Depth=1
- i32.const $push67=, 1
- i32.lt_s $push9=, $6, $pop67
- br_if 3, $pop9 # 3: down to label6
-# BB#4: # %land.lhs.true16
+ i32.const $push59=, 1
+ i32.lt_s $push7=, $6, $pop59
+ br_if 1, $pop7 # 1: down to label7
+# BB#3: # %land.lhs.true16
# in Loop: Header=BB1_1 Depth=1
block
block
- i32.load $push1=, 0($7)
- tee_local $push68=, $9=, $pop1
- i32.gt_s $push10=, $pop68, $0
- br_if 0, $pop10 # 0: down to label11
-# BB#5: # %if.end.i45
+ i32.load $push0=, 0($7)
+ tee_local $push60=, $9=, $pop0
+ i32.gt_s $push8=, $pop60, $0
+ br_if 0, $pop8 # 0: down to label10
+# BB#4: # %if.end.i45
# in Loop: Header=BB1_1 Depth=1
- i32.lt_s $push11=, $9, $0
- br_if 1, $pop11 # 1: down to label10
-# BB#6: # %if.end6.i49
+ i32.lt_s $push9=, $9, $0
+ br_if 1, $pop9 # 1: down to label9
+# BB#5: # %if.end6.i49
# in Loop: Header=BB1_1 Depth=1
- i32.load $push12=, 0($8):p2align=3
- i32.le_u $push13=, $pop12, $1
- br_if 1, $pop13 # 1: down to label10
-.LBB1_7: # %if.end.1
+ i32.load $push10=, 0($8):p2align=3
+ i32.le_u $push11=, $pop10, $1
+ br_if 1, $pop11 # 1: down to label9
+.LBB1_6: # %if.end.1
# in Loop: Header=BB1_1 Depth=1
- end_block # label11:
+ end_block # label10:
block
- i32.const $push70=, 1
- i32.ne $push14=, $6, $pop70
- br_if 0, $pop14 # 0: down to label12
-# BB#8: # %land.lhs.true8.1
+ i32.const $push62=, 1
+ i32.ne $push12=, $6, $pop62
+ br_if 0, $pop12 # 0: down to label11
+# BB#7: # %land.lhs.true8.1
# in Loop: Header=BB1_1 Depth=1
- i32.load $push33=, 0($7)
- i32.ne $push34=, $pop33, $2
- br_if 3, $pop34 # 3: down to label8
-# BB#9: # %if.end6.i63.1
+ i32.load $push31=, 0($7)
+ i32.ne $push32=, $pop31, $2
+ br_if 9, $pop32 # 9: down to label1
+# BB#8: # %if.end6.i63.1
# in Loop: Header=BB1_1 Depth=1
- i32.load $push35=, 0($8):p2align=3
- i32.eq $push36=, $pop35, $3
- br_if 6, $pop36 # 6: down to label5
- br 3 # 3: down to label8
-.LBB1_10: # %if.end14.1
+ i32.load $push33=, 0($8):p2align=3
+ i32.eq $push34=, $pop33, $3
+ br_if 4, $pop34 # 4: down to label6
+ br 9 # 9: down to label1
+.LBB1_9: # %if.end14.1
# in Loop: Header=BB1_1 Depth=1
- end_block # label12:
- i32.const $push71=, 2
- i32.lt_s $push15=, $6, $pop71
- br_if 5, $pop15 # 5: down to label5
-# BB#11: # %land.lhs.true16.1
+ end_block # label11:
+ i32.const $push63=, 2
+ i32.lt_s $push13=, $6, $pop63
+ br_if 3, $pop13 # 3: down to label6
+# BB#10: # %land.lhs.true16.1
# in Loop: Header=BB1_1 Depth=1
block
- i32.load $push3=, 0($7)
- tee_local $push72=, $9=, $pop3
- i32.gt_s $push16=, $pop72, $2
- br_if 0, $pop16 # 0: down to label13
-# BB#12: # %if.end.i45.1
+ i32.load $push2=, 0($7)
+ tee_local $push64=, $9=, $pop2
+ i32.gt_s $push14=, $pop64, $2
+ br_if 0, $pop14 # 0: down to label12
+# BB#11: # %if.end.i45.1
# in Loop: Header=BB1_1 Depth=1
- i32.lt_s $push17=, $9, $2
- br_if 1, $pop17 # 1: down to label10
-# BB#13: # %if.end6.i49.1
+ i32.lt_s $push15=, $9, $2
+ br_if 1, $pop15 # 1: down to label9
+# BB#12: # %if.end6.i49.1
# in Loop: Header=BB1_1 Depth=1
- i32.load $push18=, 0($8):p2align=3
- i32.le_u $push19=, $pop18, $3
- br_if 1, $pop19 # 1: down to label10
-.LBB1_14: # %if.end.2
+ i32.load $push16=, 0($8):p2align=3
+ i32.le_u $push17=, $pop16, $3
+ br_if 1, $pop17 # 1: down to label9
+.LBB1_13: # %if.end.2
# in Loop: Header=BB1_1 Depth=1
- end_block # label13:
+ end_block # label12:
block
- i32.const $push74=, 2
- i32.ne $push20=, $6, $pop74
- br_if 0, $pop20 # 0: down to label14
-# BB#15: # %land.lhs.true8.2
+ i32.const $push66=, 2
+ i32.ne $push18=, $6, $pop66
+ br_if 0, $pop18 # 0: down to label13
+# BB#14: # %land.lhs.true8.2
# in Loop: Header=BB1_1 Depth=1
- i32.load $push29=, 0($7)
- i32.ne $push30=, $pop29, $4
- br_if 3, $pop30 # 3: down to label8
-# BB#16: # %if.end6.i63.2
+ i32.load $push27=, 0($7)
+ i32.ne $push28=, $pop27, $4
+ br_if 9, $pop28 # 9: down to label1
+# BB#15: # %if.end6.i63.2
# in Loop: Header=BB1_1 Depth=1
i32.const $6=, 3
- i32.load $push31=, 0($8):p2align=3
- i32.eq $push32=, $pop31, $5
- br_if 8, $pop32 # 8: up to label2
- br 3 # 3: down to label8
-.LBB1_17: # %if.end14.2
+ i32.load $push29=, 0($8):p2align=3
+ i32.eq $push30=, $pop29, $5
+ br_if 6, $pop30 # 6: up to label3
+ br 9 # 9: down to label1
+.LBB1_16: # %if.end14.2
# in Loop: Header=BB1_1 Depth=1
- end_block # label14:
- i32.const $push75=, 3
- i32.lt_s $push21=, $6, $pop75
+ end_block # label13:
+ i32.const $push67=, 3
+ i32.lt_s $push19=, $6, $pop67
+ br_if 4, $pop19 # 4: down to label5
+# BB#17: # %land.lhs.true16.2
+ i32.load $push4=, 0($7)
+ tee_local $push69=, $6=, $pop4
+ i32.const $push20=, 0
+ i32.load $push5=, a+20($pop20)
+ tee_local $push68=, $7=, $pop5
+ i32.gt_s $push21=, $pop69, $pop68
br_if 6, $pop21 # 6: down to label4
-# BB#18: # %land.lhs.true16.2
- i32.load $push5=, 0($7)
- tee_local $push77=, $6=, $pop5
- i32.const $push22=, 0
- i32.load $push6=, a+20($pop22)
- tee_local $push76=, $7=, $pop6
- i32.gt_s $push23=, $pop77, $pop76
- br_if 8, $pop23 # 8: down to label3
-# BB#19: # %if.end.i45.2
- i32.lt_s $push24=, $6, $7
- br_if 0, $pop24 # 0: down to label10
-# BB#20: # %if.end6.i49.2
- i32.load $push25=, 0($8):p2align=3
- i32.const $push26=, 0
- i32.load $push27=, a+16($pop26):p2align=4
- i32.gt_u $push28=, $pop25, $pop27
- br_if 8, $pop28 # 8: down to label3
-.LBB1_21: # %if.then21
- end_block # label10:
+# BB#18: # %if.end.i45.2
+ i32.lt_s $push22=, $6, $7
+ br_if 0, $pop22 # 0: down to label9
+# BB#19: # %if.end6.i49.2
+ i32.load $push23=, 0($8):p2align=3
+ i32.const $push24=, 0
+ i32.load $push25=, a+16($pop24):p2align=4
+ i32.gt_u $push26=, $pop23, $pop25
+ br_if 6, $pop26 # 6: down to label4
+.LBB1_20: # %if.then21
+ end_block # label9:
call abort@FUNCTION
unreachable
-.LBB1_22: # %land.lhs.true8
- # in Loop: Header=BB1_1 Depth=1
- end_block # label9:
- i32.load $push37=, 0($7)
- i32.ne $push38=, $pop37, $0
- br_if 0, $pop38 # 0: down to label8
-# BB#23: # %if.end6.i63
+.LBB1_21: # %land.lhs.true8
# in Loop: Header=BB1_1 Depth=1
- i32.load $push39=, 0($8):p2align=3
- i32.eq $push40=, $pop39, $1
- br_if 2, $pop40 # 2: down to label6
-.LBB1_24: # %if.then13
end_block # label8:
- call abort@FUNCTION
- unreachable
-.LBB1_25: # %land.lhs.true
+ i32.load $push35=, 0($7)
+ i32.ne $push36=, $pop35, $0
+ br_if 6, $pop36 # 6: down to label1
+# BB#22: # %if.end6.i63
+ # in Loop: Header=BB1_1 Depth=1
+ i32.load $push37=, 0($8):p2align=3
+ i32.ne $push38=, $pop37, $1
+ br_if 6, $pop38 # 6: down to label1
+.LBB1_23: # %land.lhs.true.1
# in Loop: Header=BB1_1 Depth=1
end_block # label7:
- i32.load $push0=, 0($7)
- tee_local $push66=, $9=, $pop0
- i32.gt_s $push41=, $pop66, $0
- br_if 5, $pop41 # 5: down to label1
-# BB#26: # %if.end.i
+ i32.load $push1=, 0($7)
+ tee_local $push61=, $9=, $pop1
+ i32.gt_s $push39=, $pop61, $2
+ br_if 4, $pop39 # 4: down to label2
+# BB#24: # %if.end.i.1
# in Loop: Header=BB1_1 Depth=1
- i32.lt_s $push42=, $9, $0
- br_if 0, $pop42 # 0: down to label6
-# BB#27: # %if.end6.i
+ i32.lt_s $push40=, $9, $2
+ br_if 0, $pop40 # 0: down to label6
+# BB#25: # %if.end6.i.1
# in Loop: Header=BB1_1 Depth=1
- i32.load $push43=, 0($8):p2align=3
- i32.ge_u $push44=, $pop43, $1
- br_if 5, $pop44 # 5: down to label1
-.LBB1_28: # %land.lhs.true.1
+ i32.load $push41=, 0($8):p2align=3
+ i32.ge_u $push42=, $pop41, $3
+ br_if 4, $pop42 # 4: down to label2
+.LBB1_26: # %land.lhs.true.2
# in Loop: Header=BB1_1 Depth=1
end_block # label6:
- i32.load $push2=, 0($7)
- tee_local $push69=, $9=, $pop2
- i32.gt_s $push45=, $pop69, $2
- br_if 4, $pop45 # 4: down to label1
-# BB#29: # %if.end.i.1
+ i32.load $push3=, 0($7)
+ tee_local $push65=, $7=, $pop3
+ i32.gt_s $push43=, $pop65, $4
+ br_if 3, $pop43 # 3: down to label2
+# BB#27: # %if.end.i.2
# in Loop: Header=BB1_1 Depth=1
- i32.lt_s $push46=, $9, $2
- br_if 0, $pop46 # 0: down to label5
-# BB#30: # %if.end6.i.1
+ i32.lt_s $push44=, $7, $4
+ br_if 0, $pop44 # 0: down to label5
+# BB#28: # %if.end6.i.2
# in Loop: Header=BB1_1 Depth=1
- i32.load $push47=, 0($8):p2align=3
- i32.ge_u $push48=, $pop47, $3
- br_if 4, $pop48 # 4: down to label1
-.LBB1_31: # %land.lhs.true.2
+ i32.load $push45=, 0($8):p2align=3
+ i32.ge_u $push46=, $pop45, $5
+ br_if 3, $pop46 # 3: down to label2
+.LBB1_29: # %for.inc.2
# in Loop: Header=BB1_1 Depth=1
end_block # label5:
- i32.load $push4=, 0($7)
- tee_local $push73=, $7=, $pop4
- i32.gt_s $push49=, $pop73, $4
- br_if 3, $pop49 # 3: down to label1
-# BB#32: # %if.end.i.2
- # in Loop: Header=BB1_1 Depth=1
- i32.lt_s $push50=, $7, $4
- br_if 0, $pop50 # 0: down to label4
-# BB#33: # %if.end6.i.2
- # in Loop: Header=BB1_1 Depth=1
- i32.load $push51=, 0($8):p2align=3
- i32.ge_u $push52=, $pop51, $5
- br_if 3, $pop52 # 3: down to label1
-.LBB1_34: # %for.inc.2
- # in Loop: Header=BB1_1 Depth=1
- end_block # label4:
- i32.const $push79=, 1
- i32.add $6=, $6, $pop79
- i32.const $push78=, 4
- i32.lt_s $push53=, $6, $pop78
- br_if 0, $pop53 # 0: up to label2
-.LBB1_35: # %for.end25
- end_loop # label3:
- i32.const $push54=, 0
- return $pop54
-.LBB1_36: # %if.then
+ i32.const $push71=, 1
+ i32.add $6=, $6, $pop71
+ i32.const $push70=, 4
+ i32.lt_s $push47=, $6, $pop70
+ br_if 0, $pop47 # 0: up to label3
+.LBB1_30: # %for.end25
+ end_loop # label4:
+ i32.const $push48=, 0
+ return $pop48
+.LBB1_31: # %if.then
+ end_block # label2:
+ call abort@FUNCTION
+ unreachable
+.LBB1_32: # %if.then13
end_block # label1:
call abort@FUNCTION
unreachable
diff --git a/test/torture-s/20120427-2.c.s b/test/torture-s/20120427-2.c.s
index 5f29cdfa6..01892f859 100644
--- a/test/torture-s/20120427-2.c.s
+++ b/test/torture-s/20120427-2.c.s
@@ -50,227 +50,205 @@ main: # @main
.local i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
# BB#0: # %entry
i32.const $6=, 0
- i32.const $push60=, 0
- i32.load $0=, a+4($pop60)
- i32.const $push59=, 0
- i32.load $1=, a($pop59):p2align=4
- i32.const $push58=, 0
- i32.load $2=, a+12($pop58)
- i32.const $push57=, 0
- i32.load $3=, a+8($pop57):p2align=3
- i32.const $push56=, 0
- i32.load $4=, a+20($pop56)
- i32.const $push55=, 0
- i32.load $5=, a+16($pop55):p2align=4
-.LBB1_1: # %for.cond1.preheader
+ i32.const $push54=, 0
+ i32.load $0=, a+4($pop54)
+ i32.const $push53=, 0
+ i32.load $1=, a($pop53):p2align=4
+ i32.const $push52=, 0
+ i32.load $2=, a+12($pop52)
+ i32.const $push51=, 0
+ i32.load $3=, a+8($pop51):p2align=3
+ i32.const $push50=, 0
+ i32.load $4=, a+20($pop50)
+ i32.const $push49=, 0
+ i32.load $5=, a+16($pop49):p2align=4
+.LBB1_1: # %if.end
# =>This Inner Loop Header: Depth=1
block
- loop # label2:
- i32.const $push65=, 3
- i32.shl $push7=, $6, $pop65
- tee_local $push64=, $8=, $pop7
- i32.const $push63=, a+4
- i32.add $7=, $pop64, $pop63
- i32.const $push62=, a
- i32.add $8=, $8, $pop62
- block
block
+ loop # label3:
+ i32.const $push58=, 3
+ i32.shl $push6=, $6, $pop58
+ tee_local $push57=, $8=, $pop6
+ i32.const $push56=, a+4
+ i32.add $7=, $pop57, $pop56
+ i32.const $push55=, a
+ i32.add $8=, $8, $pop55
block
block
- i32.const $push61=, -1
- i32.le_s $push8=, $6, $pop61
- br_if 0, $pop8 # 0: down to label7
-# BB#2: # %if.end
- # in Loop: Header=BB1_1 Depth=1
block
block
- i32.const $push80=, 0
- i32.eq $push81=, $6, $pop80
- br_if 0, $pop81 # 0: down to label9
-# BB#3: # %if.end14
+ i32.const $push72=, 0
+ i32.eq $push73=, $6, $pop72
+ br_if 0, $pop73 # 0: down to label8
+# BB#2: # %if.end14
# in Loop: Header=BB1_1 Depth=1
- i32.const $push67=, 1
- i32.lt_s $push9=, $6, $pop67
- br_if 3, $pop9 # 3: down to label6
-# BB#4: # %land.lhs.true16
+ i32.const $push59=, 1
+ i32.lt_s $push7=, $6, $pop59
+ br_if 1, $pop7 # 1: down to label7
+# BB#3: # %land.lhs.true16
# in Loop: Header=BB1_1 Depth=1
block
block
- i32.load $push1=, 0($7)
- tee_local $push68=, $9=, $pop1
- i32.gt_s $push10=, $pop68, $0
- br_if 0, $pop10 # 0: down to label11
-# BB#5: # %if.end.i45
+ i32.load $push0=, 0($7)
+ tee_local $push60=, $9=, $pop0
+ i32.gt_s $push8=, $pop60, $0
+ br_if 0, $pop8 # 0: down to label10
+# BB#4: # %if.end.i45
# in Loop: Header=BB1_1 Depth=1
- i32.lt_s $push11=, $9, $0
- br_if 1, $pop11 # 1: down to label10
-# BB#6: # %if.end6.i49
+ i32.lt_s $push9=, $9, $0
+ br_if 1, $pop9 # 1: down to label9
+# BB#5: # %if.end6.i49
# in Loop: Header=BB1_1 Depth=1
- i32.load $push12=, 0($8):p2align=3
- i32.le_u $push13=, $pop12, $1
- br_if 1, $pop13 # 1: down to label10
-.LBB1_7: # %if.end.1
+ i32.load $push10=, 0($8):p2align=3
+ i32.le_u $push11=, $pop10, $1
+ br_if 1, $pop11 # 1: down to label9
+.LBB1_6: # %if.end.1
# in Loop: Header=BB1_1 Depth=1
- end_block # label11:
+ end_block # label10:
block
- i32.const $push70=, 1
- i32.ne $push14=, $6, $pop70
- br_if 0, $pop14 # 0: down to label12
-# BB#8: # %land.lhs.true8.1
+ i32.const $push62=, 1
+ i32.ne $push12=, $6, $pop62
+ br_if 0, $pop12 # 0: down to label11
+# BB#7: # %land.lhs.true8.1
# in Loop: Header=BB1_1 Depth=1
- i32.load $push33=, 0($7)
- i32.ne $push34=, $pop33, $2
- br_if 3, $pop34 # 3: down to label8
-# BB#9: # %if.end6.i63.1
+ i32.load $push31=, 0($7)
+ i32.ne $push32=, $pop31, $2
+ br_if 9, $pop32 # 9: down to label1
+# BB#8: # %if.end6.i63.1
# in Loop: Header=BB1_1 Depth=1
- i32.load $push35=, 0($8):p2align=3
- i32.eq $push36=, $pop35, $3
- br_if 6, $pop36 # 6: down to label5
- br 3 # 3: down to label8
-.LBB1_10: # %if.end14.1
+ i32.load $push33=, 0($8):p2align=3
+ i32.eq $push34=, $pop33, $3
+ br_if 4, $pop34 # 4: down to label6
+ br 9 # 9: down to label1
+.LBB1_9: # %if.end14.1
# in Loop: Header=BB1_1 Depth=1
- end_block # label12:
- i32.const $push71=, 2
- i32.lt_s $push15=, $6, $pop71
- br_if 5, $pop15 # 5: down to label5
-# BB#11: # %land.lhs.true16.1
+ end_block # label11:
+ i32.const $push63=, 2
+ i32.lt_s $push13=, $6, $pop63
+ br_if 3, $pop13 # 3: down to label6
+# BB#10: # %land.lhs.true16.1
# in Loop: Header=BB1_1 Depth=1
block
- i32.load $push3=, 0($7)
- tee_local $push72=, $9=, $pop3
- i32.gt_s $push16=, $pop72, $2
- br_if 0, $pop16 # 0: down to label13
-# BB#12: # %if.end.i45.1
+ i32.load $push2=, 0($7)
+ tee_local $push64=, $9=, $pop2
+ i32.gt_s $push14=, $pop64, $2
+ br_if 0, $pop14 # 0: down to label12
+# BB#11: # %if.end.i45.1
# in Loop: Header=BB1_1 Depth=1
- i32.lt_s $push17=, $9, $2
- br_if 1, $pop17 # 1: down to label10
-# BB#13: # %if.end6.i49.1
+ i32.lt_s $push15=, $9, $2
+ br_if 1, $pop15 # 1: down to label9
+# BB#12: # %if.end6.i49.1
# in Loop: Header=BB1_1 Depth=1
- i32.load $push18=, 0($8):p2align=3
- i32.le_u $push19=, $pop18, $3
- br_if 1, $pop19 # 1: down to label10
-.LBB1_14: # %if.end.2
+ i32.load $push16=, 0($8):p2align=3
+ i32.le_u $push17=, $pop16, $3
+ br_if 1, $pop17 # 1: down to label9
+.LBB1_13: # %if.end.2
# in Loop: Header=BB1_1 Depth=1
- end_block # label13:
+ end_block # label12:
block
- i32.const $push74=, 2
- i32.ne $push20=, $6, $pop74
- br_if 0, $pop20 # 0: down to label14
-# BB#15: # %land.lhs.true8.2
+ i32.const $push66=, 2
+ i32.ne $push18=, $6, $pop66
+ br_if 0, $pop18 # 0: down to label13
+# BB#14: # %land.lhs.true8.2
# in Loop: Header=BB1_1 Depth=1
- i32.load $push29=, 0($7)
- i32.ne $push30=, $pop29, $4
- br_if 3, $pop30 # 3: down to label8
-# BB#16: # %if.end6.i63.2
+ i32.load $push27=, 0($7)
+ i32.ne $push28=, $pop27, $4
+ br_if 9, $pop28 # 9: down to label1
+# BB#15: # %if.end6.i63.2
# in Loop: Header=BB1_1 Depth=1
i32.const $6=, 3
- i32.load $push31=, 0($8):p2align=3
- i32.eq $push32=, $pop31, $5
- br_if 8, $pop32 # 8: up to label2
- br 3 # 3: down to label8
-.LBB1_17: # %if.end14.2
+ i32.load $push29=, 0($8):p2align=3
+ i32.eq $push30=, $pop29, $5
+ br_if 6, $pop30 # 6: up to label3
+ br 9 # 9: down to label1
+.LBB1_16: # %if.end14.2
# in Loop: Header=BB1_1 Depth=1
- end_block # label14:
- i32.const $push75=, 3
- i32.lt_s $push21=, $6, $pop75
+ end_block # label13:
+ i32.const $push67=, 3
+ i32.lt_s $push19=, $6, $pop67
+ br_if 4, $pop19 # 4: down to label5
+# BB#17: # %land.lhs.true16.2
+ i32.load $push4=, 0($7)
+ tee_local $push69=, $6=, $pop4
+ i32.const $push20=, 0
+ i32.load $push5=, a+20($pop20)
+ tee_local $push68=, $7=, $pop5
+ i32.gt_s $push21=, $pop69, $pop68
br_if 6, $pop21 # 6: down to label4
-# BB#18: # %land.lhs.true16.2
- i32.load $push5=, 0($7)
- tee_local $push77=, $6=, $pop5
- i32.const $push22=, 0
- i32.load $push6=, a+20($pop22)
- tee_local $push76=, $7=, $pop6
- i32.gt_s $push23=, $pop77, $pop76
- br_if 8, $pop23 # 8: down to label3
-# BB#19: # %if.end.i45.2
- i32.lt_s $push24=, $6, $7
- br_if 0, $pop24 # 0: down to label10
-# BB#20: # %if.end6.i49.2
- i32.load $push25=, 0($8):p2align=3
- i32.const $push26=, 0
- i32.load $push27=, a+16($pop26):p2align=4
- i32.gt_u $push28=, $pop25, $pop27
- br_if 8, $pop28 # 8: down to label3
-.LBB1_21: # %if.then21
- end_block # label10:
+# BB#18: # %if.end.i45.2
+ i32.lt_s $push22=, $6, $7
+ br_if 0, $pop22 # 0: down to label9
+# BB#19: # %if.end6.i49.2
+ i32.load $push23=, 0($8):p2align=3
+ i32.const $push24=, 0
+ i32.load $push25=, a+16($pop24):p2align=4
+ i32.gt_u $push26=, $pop23, $pop25
+ br_if 6, $pop26 # 6: down to label4
+.LBB1_20: # %if.then21
+ end_block # label9:
call abort@FUNCTION
unreachable
-.LBB1_22: # %land.lhs.true8
- # in Loop: Header=BB1_1 Depth=1
- end_block # label9:
- i32.load $push37=, 0($7)
- i32.ne $push38=, $pop37, $0
- br_if 0, $pop38 # 0: down to label8
-# BB#23: # %if.end6.i63
+.LBB1_21: # %land.lhs.true8
# in Loop: Header=BB1_1 Depth=1
- i32.load $push39=, 0($8):p2align=3
- i32.eq $push40=, $pop39, $1
- br_if 2, $pop40 # 2: down to label6
-.LBB1_24: # %if.then13
end_block # label8:
- call abort@FUNCTION
- unreachable
-.LBB1_25: # %land.lhs.true
+ i32.load $push35=, 0($7)
+ i32.ne $push36=, $pop35, $0
+ br_if 6, $pop36 # 6: down to label1
+# BB#22: # %if.end6.i63
+ # in Loop: Header=BB1_1 Depth=1
+ i32.load $push37=, 0($8):p2align=3
+ i32.ne $push38=, $pop37, $1
+ br_if 6, $pop38 # 6: down to label1
+.LBB1_23: # %land.lhs.true.1
# in Loop: Header=BB1_1 Depth=1
end_block # label7:
- i32.load $push0=, 0($7)
- tee_local $push66=, $9=, $pop0
- i32.gt_s $push41=, $pop66, $0
- br_if 5, $pop41 # 5: down to label1
-# BB#26: # %if.end.i
+ i32.load $push1=, 0($7)
+ tee_local $push61=, $9=, $pop1
+ i32.gt_s $push39=, $pop61, $2
+ br_if 4, $pop39 # 4: down to label2
+# BB#24: # %if.end.i.1
# in Loop: Header=BB1_1 Depth=1
- i32.lt_s $push42=, $9, $0
- br_if 0, $pop42 # 0: down to label6
-# BB#27: # %if.end6.i
+ i32.lt_s $push40=, $9, $2
+ br_if 0, $pop40 # 0: down to label6
+# BB#25: # %if.end6.i.1
# in Loop: Header=BB1_1 Depth=1
- i32.load $push43=, 0($8):p2align=3
- i32.ge_u $push44=, $pop43, $1
- br_if 5, $pop44 # 5: down to label1
-.LBB1_28: # %land.lhs.true.1
+ i32.load $push41=, 0($8):p2align=3
+ i32.ge_u $push42=, $pop41, $3
+ br_if 4, $pop42 # 4: down to label2
+.LBB1_26: # %land.lhs.true.2
# in Loop: Header=BB1_1 Depth=1
end_block # label6:
- i32.load $push2=, 0($7)
- tee_local $push69=, $9=, $pop2
- i32.gt_s $push45=, $pop69, $2
- br_if 4, $pop45 # 4: down to label1
-# BB#29: # %if.end.i.1
+ i32.load $push3=, 0($7)
+ tee_local $push65=, $7=, $pop3
+ i32.gt_s $push43=, $pop65, $4
+ br_if 3, $pop43 # 3: down to label2
+# BB#27: # %if.end.i.2
# in Loop: Header=BB1_1 Depth=1
- i32.lt_s $push46=, $9, $2
- br_if 0, $pop46 # 0: down to label5
-# BB#30: # %if.end6.i.1
+ i32.lt_s $push44=, $7, $4
+ br_if 0, $pop44 # 0: down to label5
+# BB#28: # %if.end6.i.2
# in Loop: Header=BB1_1 Depth=1
- i32.load $push47=, 0($8):p2align=3
- i32.ge_u $push48=, $pop47, $3
- br_if 4, $pop48 # 4: down to label1
-.LBB1_31: # %land.lhs.true.2
+ i32.load $push45=, 0($8):p2align=3
+ i32.ge_u $push46=, $pop45, $5
+ br_if 3, $pop46 # 3: down to label2
+.LBB1_29: # %for.inc.2
# in Loop: Header=BB1_1 Depth=1
end_block # label5:
- i32.load $push4=, 0($7)
- tee_local $push73=, $7=, $pop4
- i32.gt_s $push49=, $pop73, $4
- br_if 3, $pop49 # 3: down to label1
-# BB#32: # %if.end.i.2
- # in Loop: Header=BB1_1 Depth=1
- i32.lt_s $push50=, $7, $4
- br_if 0, $pop50 # 0: down to label4
-# BB#33: # %if.end6.i.2
- # in Loop: Header=BB1_1 Depth=1
- i32.load $push51=, 0($8):p2align=3
- i32.ge_u $push52=, $pop51, $5
- br_if 3, $pop52 # 3: down to label1
-.LBB1_34: # %for.inc.2
- # in Loop: Header=BB1_1 Depth=1
- end_block # label4:
- i32.const $push79=, 1
- i32.add $6=, $6, $pop79
- i32.const $push78=, 4
- i32.lt_s $push53=, $6, $pop78
- br_if 0, $pop53 # 0: up to label2
-.LBB1_35: # %for.end25
- end_loop # label3:
- i32.const $push54=, 0
- return $pop54
-.LBB1_36: # %if.then
+ i32.const $push71=, 1
+ i32.add $6=, $6, $pop71
+ i32.const $push70=, 4
+ i32.lt_s $push47=, $6, $pop70
+ br_if 0, $pop47 # 0: up to label3
+.LBB1_30: # %for.end25
+ end_loop # label4:
+ i32.const $push48=, 0
+ return $pop48
+.LBB1_31: # %if.then
+ end_block # label2:
+ call abort@FUNCTION
+ unreachable
+.LBB1_32: # %if.then13
end_block # label1:
call abort@FUNCTION
unreachable
diff --git a/test/torture-s/991216-2.c.s b/test/torture-s/991216-2.c.s
new file mode 100644
index 000000000..df135e3ff
--- /dev/null
+++ b/test/torture-s/991216-2.c.s
@@ -0,0 +1,274 @@
+ .text
+ .file "/b/build/slave/linux/build/src/src/work/gcc/gcc/testsuite/gcc.c-torture/execute/991216-2.c"
+ .section .text.test,"ax",@progbits
+ .hidden test
+ .globl test
+ .type test,@function
+test: # @test
+ .param i32, i32
+ .local i32, i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $3=, __stack_pointer
+ i32.load $3=, 0($3)
+ i32.const $4=, 16
+ i32.sub $6=, $3, $4
+ i32.const $4=, __stack_pointer
+ i32.store $6=, 0($4), $6
+ i32.store $discard=, 12($6), $1
+ i32.const $1=, 1
+ block
+ i32.const $push0=, 2
+ i32.lt_s $push1=, $0, $pop0
+ br_if 0, $pop1 # 0: down to label0
+.LBB0_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label1:
+ i32.load $push2=, 12($6)
+ i32.const $push3=, 3
+ i32.add $push4=, $pop2, $pop3
+ i32.const $push5=, -4
+ i32.and $push6=, $pop4, $pop5
+ tee_local $push35=, $2=, $pop6
+ i32.const $push7=, 4
+ i32.add $push8=, $pop35, $pop7
+ i32.store $discard=, 12($6), $pop8
+ i32.const $push34=, 1
+ i32.add $push10=, $1, $pop34
+ i32.load $push9=, 0($2)
+ i32.ne $push11=, $pop10, $pop9
+ br_if 1, $pop11 # 1: down to label2
+# BB#2: # %for.cond
+ # in Loop: Header=BB0_1 Depth=1
+ i32.const $push12=, 1
+ i32.add $1=, $1, $pop12
+ i32.lt_s $push13=, $1, $0
+ br_if 0, $pop13 # 0: up to label1
+ br 2 # 2: down to label0
+.LBB0_3: # %if.then
+ end_loop # label2:
+ call abort@FUNCTION
+ unreachable
+.LBB0_4: # %for.end
+ end_block # label0:
+ i32.load $push14=, 12($6)
+ i32.const $push15=, 7
+ i32.add $push16=, $pop14, $pop15
+ i32.const $push17=, -8
+ i32.and $push18=, $pop16, $pop17
+ tee_local $push36=, $1=, $pop18
+ i32.const $push19=, 8
+ i32.add $push20=, $pop36, $pop19
+ i32.store $discard=, 12($6), $pop20
+ block
+ i64.load $push21=, 0($1)
+ i64.const $push22=, 81985529216486895
+ i64.ne $push23=, $pop21, $pop22
+ br_if 0, $pop23 # 0: down to label3
+# BB#5: # %if.end5
+ i32.load $push24=, 12($6)
+ i32.const $push25=, 3
+ i32.add $push26=, $pop24, $pop25
+ i32.const $push27=, -4
+ i32.and $push28=, $pop26, $pop27
+ tee_local $push37=, $1=, $pop28
+ i32.const $push29=, 4
+ i32.add $push30=, $pop37, $pop29
+ i32.store $discard=, 12($6), $pop30
+ block
+ i32.load $push31=, 0($1)
+ i32.const $push32=, 85
+ i32.ne $push33=, $pop31, $pop32
+ br_if 0, $pop33 # 0: down to label4
+# BB#6: # %if.end8
+ i32.const $5=, 16
+ i32.add $6=, $6, $5
+ i32.const $5=, __stack_pointer
+ i32.store $6=, 0($5), $6
+ return
+.LBB0_7: # %if.then7
+ end_block # label4:
+ call abort@FUNCTION
+ unreachable
+.LBB0_8: # %if.then4
+ end_block # label3:
+ call abort@FUNCTION
+ unreachable
+ .endfunc
+.Lfunc_end0:
+ .size test, .Lfunc_end0-test
+
+ .section .text.main,"ax",@progbits
+ .hidden main
+ .globl main
+ .type main,@function
+main: # @main
+ .result i32
+ .local i64, i64, i32, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $6=, __stack_pointer
+ i32.load $6=, 0($6)
+ i32.const $7=, 288
+ i32.sub $34=, $6, $7
+ i32.const $7=, __stack_pointer
+ i32.store $34=, 0($7), $34
+ i32.const $push0=, 8
+ i32.const $8=, 272
+ i32.add $8=, $34, $8
+ i32.or $push1=, $8, $pop0
+ i32.const $push2=, 85
+ i32.store $5=, 0($pop1):p2align=3, $pop2
+ i64.const $push3=, 81985529216486895
+ i64.store $0=, 272($34):p2align=4, $pop3
+ i32.const $push4=, 1
+ i32.const $9=, 272
+ i32.add $9=, $34, $9
+ call test@FUNCTION, $pop4, $9
+ i32.const $push5=, 16
+ i32.const $10=, 240
+ i32.add $10=, $34, $10
+ i32.add $push6=, $10, $pop5
+ i32.store $discard=, 0($pop6):p2align=4, $5
+ i32.const $push61=, 8
+ i32.const $11=, 240
+ i32.add $11=, $34, $11
+ i32.or $push7=, $11, $pop61
+ i64.store $discard=, 0($pop7), $0
+ i32.const $push8=, 2
+ i32.store $push9=, 240($34):p2align=4, $pop8
+ i32.const $12=, 240
+ i32.add $12=, $34, $12
+ call test@FUNCTION, $pop9, $12
+ i32.const $push60=, 16
+ i32.const $13=, 208
+ i32.add $13=, $34, $13
+ i32.add $push10=, $13, $pop60
+ i32.store $discard=, 0($pop10):p2align=4, $5
+ i32.const $push59=, 8
+ i32.const $14=, 208
+ i32.add $14=, $34, $14
+ i32.or $push11=, $14, $pop59
+ i64.store $discard=, 0($pop11), $0
+ i64.const $push12=, 12884901890
+ i64.store $1=, 208($34):p2align=4, $pop12
+ i32.const $push13=, 3
+ i32.const $15=, 208
+ i32.add $15=, $34, $15
+ call test@FUNCTION, $pop13, $15
+ i32.const $push14=, 24
+ i32.const $16=, 176
+ i32.add $16=, $34, $16
+ i32.add $push15=, $16, $pop14
+ i32.store $discard=, 0($pop15):p2align=3, $5
+ i32.const $push58=, 16
+ i32.const $17=, 176
+ i32.add $17=, $34, $17
+ i32.add $push16=, $17, $pop58
+ i64.store $discard=, 0($pop16):p2align=4, $0
+ i32.const $push57=, 8
+ i32.const $18=, 176
+ i32.add $18=, $34, $18
+ i32.or $push17=, $18, $pop57
+ i32.const $push18=, 4
+ i32.store $2=, 0($pop17):p2align=3, $pop18
+ i64.store $discard=, 176($34):p2align=4, $1
+ i32.const $19=, 176
+ i32.add $19=, $34, $19
+ call test@FUNCTION, $2, $19
+ i32.const $push56=, 24
+ i32.const $20=, 144
+ i32.add $20=, $34, $20
+ i32.add $push19=, $20, $pop56
+ i32.store $discard=, 0($pop19):p2align=3, $5
+ i32.const $push55=, 16
+ i32.const $21=, 144
+ i32.add $21=, $34, $21
+ i32.add $push20=, $21, $pop55
+ i64.store $discard=, 0($pop20):p2align=4, $0
+ i32.const $push54=, 8
+ i32.const $22=, 144
+ i32.add $22=, $34, $22
+ i32.or $push21=, $22, $pop54
+ i64.const $push22=, 21474836484
+ i64.store $3=, 0($pop21), $pop22
+ i64.store $discard=, 144($34):p2align=4, $1
+ i32.const $push23=, 5
+ i32.const $23=, 144
+ i32.add $23=, $34, $23
+ call test@FUNCTION, $pop23, $23
+ i32.const $push24=, 32
+ i32.const $24=, 96
+ i32.add $24=, $34, $24
+ i32.add $push25=, $24, $pop24
+ i32.store $discard=, 0($pop25):p2align=4, $5
+ i32.const $push53=, 24
+ i32.const $25=, 96
+ i32.add $25=, $34, $25
+ i32.add $push26=, $25, $pop53
+ i64.store $discard=, 0($pop26), $0
+ i32.const $push52=, 16
+ i32.const $26=, 96
+ i32.add $26=, $34, $26
+ i32.add $push27=, $26, $pop52
+ i32.const $push28=, 6
+ i32.store $2=, 0($pop27):p2align=4, $pop28
+ i32.const $push51=, 8
+ i32.const $27=, 96
+ i32.add $27=, $34, $27
+ i32.or $push29=, $27, $pop51
+ i64.store $discard=, 0($pop29), $3
+ i64.store $discard=, 96($34):p2align=4, $1
+ i32.const $28=, 96
+ i32.add $28=, $34, $28
+ call test@FUNCTION, $2, $28
+ i32.const $push50=, 32
+ i32.const $29=, 48
+ i32.add $29=, $34, $29
+ i32.add $push30=, $29, $pop50
+ i32.store $discard=, 0($pop30):p2align=4, $5
+ i32.const $push49=, 24
+ i32.const $30=, 48
+ i32.add $30=, $34, $30
+ i32.add $push31=, $30, $pop49
+ i64.store $discard=, 0($pop31), $0
+ i32.const $push48=, 16
+ i32.const $31=, 48
+ i32.add $31=, $34, $31
+ i32.add $push32=, $31, $pop48
+ i64.const $push33=, 30064771078
+ i64.store $4=, 0($pop32):p2align=4, $pop33
+ i32.const $push47=, 8
+ i32.const $32=, 48
+ i32.add $32=, $34, $32
+ i32.or $push34=, $32, $pop47
+ i64.store $discard=, 0($pop34), $3
+ i64.store $discard=, 48($34):p2align=4, $1
+ i32.const $push35=, 7
+ i32.const $33=, 48
+ i32.add $33=, $34, $33
+ call test@FUNCTION, $pop35, $33
+ i32.const $push36=, 40
+ i32.add $push37=, $34, $pop36
+ i32.store $discard=, 0($pop37):p2align=3, $5
+ i32.const $push46=, 32
+ i32.add $push38=, $34, $pop46
+ i64.store $discard=, 0($pop38):p2align=4, $0
+ i32.const $push45=, 24
+ i32.add $push39=, $34, $pop45
+ i32.const $push44=, 8
+ i32.store $5=, 0($pop39):p2align=3, $pop44
+ i32.const $push43=, 16
+ i32.add $push40=, $34, $pop43
+ i64.store $discard=, 0($pop40):p2align=4, $4
+ i32.or $push41=, $34, $5
+ i64.store $discard=, 0($pop41), $3
+ i64.store $discard=, 0($34):p2align=4, $1
+ call test@FUNCTION, $5, $34
+ i32.const $push42=, 0
+ call exit@FUNCTION, $pop42
+ unreachable
+ .endfunc
+.Lfunc_end1:
+ .size main, .Lfunc_end1-main
+
+
+ .ident "clang version 3.9.0 "
diff --git a/test/torture-s/ashldi-1.c.s b/test/torture-s/ashldi-1.c.s
new file mode 100644
index 000000000..208d305da
--- /dev/null
+++ b/test/torture-s/ashldi-1.c.s
@@ -0,0 +1,139 @@
+ .text
+ .file "/b/build/slave/linux/build/src/src/work/gcc/gcc/testsuite/gcc.c-torture/execute/ashldi-1.c"
+ .section .text.main,"ax",@progbits
+ .hidden main
+ .globl main
+ .type main,@function
+main: # @main
+ .result i32
+ .local i32, i64, i32, i32
+# BB#0: # %entry
+ i64.const $1=, 0
+ i32.const $0=, .Lswitch.table
+.LBB0_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ block
+ loop # label1:
+ i64.const $push12=, 81985529216486895
+ i64.shl $push0=, $pop12, $1
+ i64.load $push1=, 0($0)
+ i64.ne $push2=, $pop0, $pop1
+ br_if 2, $pop2 # 2: down to label0
+# BB#2: # %for.cond
+ # in Loop: Header=BB0_1 Depth=1
+ i64.const $push11=, 1
+ i64.add $1=, $1, $pop11
+ i32.const $push10=, 8
+ i32.add $0=, $0, $pop10
+ i32.const $3=, 0
+ i32.const $2=, .Lswitch.table
+ i64.const $push9=, 63
+ i64.le_s $push3=, $1, $pop9
+ br_if 0, $pop3 # 0: up to label1
+.LBB0_3: # %constant_shift.exit
+ # =>This Inner Loop Header: Depth=1
+ end_loop # label2:
+ block
+ loop # label4:
+ i32.const $push4=, 1
+ i32.const $push14=, 0
+ i32.eq $push15=, $pop4, $pop14
+ br_if 2, $pop15 # 2: down to label3
+# BB#4: # %for.cond2
+ # in Loop: Header=BB0_3 Depth=1
+ i32.const $push13=, 1
+ i32.add $3=, $3, $pop13
+ i32.const $push5=, 8
+ i32.add $2=, $2, $pop5
+ i32.const $push6=, 63
+ i32.le_s $push7=, $3, $pop6
+ br_if 0, $pop7 # 0: up to label4
+# BB#5: # %for.end13
+ end_loop # label5:
+ i32.const $push8=, 0
+ call exit@FUNCTION, $pop8
+ unreachable
+.LBB0_6: # %if.then9
+ end_block # label3:
+ call abort@FUNCTION
+ unreachable
+.LBB0_7: # %if.then
+ end_block # label0:
+ call abort@FUNCTION
+ unreachable
+ .endfunc
+.Lfunc_end0:
+ .size main, .Lfunc_end0-main
+
+ .type .Lswitch.table,@object # @switch.table
+ .section .rodata..Lswitch.table,"a",@progbits
+ .p2align 4
+.Lswitch.table:
+ .int64 81985529216486895 # 0x123456789abcdef
+ .int64 163971058432973790 # 0x2468acf13579bde
+ .int64 327942116865947580 # 0x48d159e26af37bc
+ .int64 655884233731895160 # 0x91a2b3c4d5e6f78
+ .int64 1311768467463790320 # 0x123456789abcdef0
+ .int64 2623536934927580640 # 0x2468acf13579bde0
+ .int64 5247073869855161280 # 0x48d159e26af37bc0
+ .int64 -7952596333999229056 # 0x91a2b3c4d5e6f780
+ .int64 2541551405711093504 # 0x23456789abcdef00
+ .int64 5083102811422187008 # 0x468acf13579bde00
+ .int64 -8280538450865177600 # 0x8d159e26af37bc00
+ .int64 1885667171979196416 # 0x1a2b3c4d5e6f7800
+ .int64 3771334343958392832 # 0x3456789abcdef000
+ .int64 7542668687916785664 # 0x68acf13579bde000
+ .int64 -3361406697875980288 # 0xd159e26af37bc000
+ .int64 -6722813395751960576 # 0xa2b3c4d5e6f78000
+ .int64 5001117282205630464 # 0x456789abcdef0000
+ .int64 -8444509509298290688 # 0x8acf13579bde0000
+ .int64 1557725055112970240 # 0x159e26af37bc0000
+ .int64 3115450110225940480 # 0x2b3c4d5e6f780000
+ .int64 6230900220451880960 # 0x56789abcdef00000
+ .int64 -5984943632805789696 # 0xacf13579bde00000
+ .int64 6476856808097972224 # 0x59e26af37bc00000
+ .int64 -5493030457513607168 # 0xb3c4d5e6f7800000
+ .int64 7460683158682337280 # 0x6789abcdef000000
+ .int64 -3525377756344877056 # 0xcf13579bde000000
+ .int64 -7050755512689754112 # 0x9e26af37bc000000
+ .int64 4345233048330043392 # 0x3c4d5e6f78000000
+ .int64 8690466096660086784 # 0x789abcdef0000000
+ .int64 -1065811880389378048 # 0xf13579bde0000000
+ .int64 -2131623760778756096 # 0xe26af37bc0000000
+ .int64 -4263247521557512192 # 0xc4d5e6f780000000
+ .int64 -8526495043115024384 # 0x89abcdef00000000
+ .int64 1393753987479502848 # 0x13579bde00000000
+ .int64 2787507974959005696 # 0x26af37bc00000000
+ .int64 5575015949918011392 # 0x4d5e6f7800000000
+ .int64 -7296712173873528832 # 0x9abcdef000000000
+ .int64 3853319725962493952 # 0x3579bde000000000
+ .int64 7706639451924987904 # 0x6af37bc000000000
+ .int64 -3033465169859575808 # 0xd5e6f78000000000
+ .int64 -6066930339719151616 # 0xabcdef0000000000
+ .int64 6312883394271248384 # 0x579bde0000000000
+ .int64 -5820977285167054848 # 0xaf37bc0000000000
+ .int64 6804789503375441920 # 0x5e6f780000000000
+ .int64 -4837165066958667776 # 0xbcdef00000000000
+ .int64 8772413939792216064 # 0x79bde00000000000
+ .int64 -901916194125119488 # 0xf37bc00000000000
+ .int64 -1803832388250238976 # 0xe6f7800000000000
+ .int64 -3607664776500477952 # 0xcdef000000000000
+ .int64 -7215329553000955904 # 0x9bde000000000000
+ .int64 4016084967707639808 # 0x37bc000000000000
+ .int64 8032169935415279616 # 0x6f78000000000000
+ .int64 -2382404202878992384 # 0xdef0000000000000
+ .int64 -4764808405757984768 # 0xbde0000000000000
+ .int64 8917127262193582080 # 0x7bc0000000000000
+ .int64 -612489549322387456 # 0xf780000000000000
+ .int64 -1224979098644774912 # 0xef00000000000000
+ .int64 -2449958197289549824 # 0xde00000000000000
+ .int64 -4899916394579099648 # 0xbc00000000000000
+ .int64 8646911284551352320 # 0x7800000000000000
+ .int64 -1152921504606846976 # 0xf000000000000000
+ .int64 -2305843009213693952 # 0xe000000000000000
+ .int64 -4611686018427387904 # 0xc000000000000000
+ .int64 -9223372036854775808 # 0x8000000000000000
+ .size .Lswitch.table, 512
+
+
+ .ident "clang version 3.9.0 "
diff --git a/test/torture-s/ashrdi-1.c.s b/test/torture-s/ashrdi-1.c.s
new file mode 100644
index 000000000..afe99d5c1
--- /dev/null
+++ b/test/torture-s/ashrdi-1.c.s
@@ -0,0 +1,724 @@
+ .text
+ .file "/b/build/slave/linux/build/src/src/work/gcc/gcc/testsuite/gcc.c-torture/execute/ashrdi-1.c"
+ .section .text.main,"ax",@progbits
+ .hidden main
+ .globl main
+ .type main,@function
+main: # @main
+ .result i32
+ .local i64, i64, i32, i32, i32, i32
+# BB#0: # %entry
+ i64.const $0=, 0
+ i32.const $4=, zext
+.LBB0_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ block
+ loop # label1:
+ i64.const $push32=, 8526495107234113920
+ i64.shr_u $push0=, $pop32, $0
+ i64.load $push1=, 0($4)
+ i64.ne $push2=, $pop0, $pop1
+ br_if 2, $pop2 # 2: down to label0
+# BB#2: # %for.cond
+ # in Loop: Header=BB0_1 Depth=1
+ i64.const $push31=, 1
+ i64.add $0=, $0, $pop31
+ i32.const $push30=, 8
+ i32.add $4=, $4, $pop30
+ i64.const $1=, 0
+ i32.const $5=, sext
+ i64.const $push29=, 63
+ i64.le_s $push3=, $0, $pop29
+ br_if 0, $pop3 # 0: up to label1
+.LBB0_3: # %for.body4
+ # =>This Inner Loop Header: Depth=1
+ end_loop # label2:
+ block
+ loop # label4:
+ i64.const $push4=, -8152436031399644656
+ i64.shr_s $push5=, $pop4, $1
+ i64.load $push6=, 0($5)
+ i64.ne $push7=, $pop5, $pop6
+ br_if 2, $pop7 # 2: down to label3
+# BB#4: # %for.cond2
+ # in Loop: Header=BB0_3 Depth=1
+ i32.const $push9=, 8
+ i32.add $5=, $5, $pop9
+ i64.const $push8=, 1
+ i64.add $1=, $1, $pop8
+ i32.const $3=, 0
+ i32.const $2=, zext
+ i64.const $push10=, 63
+ i64.le_s $push11=, $1, $pop10
+ br_if 0, $pop11 # 0: up to label4
+.LBB0_5: # %for.body16
+ # =>This Inner Loop Header: Depth=1
+ end_loop # label5:
+ block
+ loop # label7:
+ i64.const $push12=, 8526495107234113920
+ i64.call $push13=, constant_shift@FUNCTION, $pop12, $3
+ i64.load $push14=, 0($2)
+ i64.ne $push15=, $pop13, $pop14
+ br_if 2, $pop15 # 2: down to label6
+# BB#6: # %for.cond14
+ # in Loop: Header=BB0_5 Depth=1
+ i32.const $push16=, 1
+ i32.add $3=, $3, $pop16
+ i32.const $push17=, 8
+ i32.add $2=, $2, $pop17
+ i32.const $5=, 0
+ i32.const $4=, sext
+ i32.const $push18=, 63
+ i32.le_s $push19=, $3, $pop18
+ br_if 0, $pop19 # 0: up to label7
+.LBB0_7: # %for.body28
+ # =>This Inner Loop Header: Depth=1
+ end_loop # label8:
+ block
+ loop # label10:
+ i64.const $push20=, -8152436031399644656
+ i64.call $push21=, constant_shift@FUNCTION, $pop20, $5
+ i64.load $push22=, 0($4)
+ i64.ne $push23=, $pop21, $pop22
+ br_if 2, $pop23 # 2: down to label9
+# BB#8: # %for.cond26
+ # in Loop: Header=BB0_7 Depth=1
+ i32.const $push24=, 1
+ i32.add $5=, $5, $pop24
+ i32.const $push25=, 8
+ i32.add $4=, $4, $pop25
+ i32.const $push26=, 63
+ i32.le_s $push27=, $5, $pop26
+ br_if 0, $pop27 # 0: up to label10
+# BB#9: # %for.end37
+ end_loop # label11:
+ i32.const $push28=, 0
+ call exit@FUNCTION, $pop28
+ unreachable
+.LBB0_10: # %if.then33
+ end_block # label9:
+ call abort@FUNCTION
+ unreachable
+.LBB0_11: # %if.then21
+ end_block # label6:
+ call abort@FUNCTION
+ unreachable
+.LBB0_12: # %if.then9
+ end_block # label3:
+ call abort@FUNCTION
+ unreachable
+.LBB0_13: # %if.then
+ end_block # label0:
+ call abort@FUNCTION
+ unreachable
+ .endfunc
+.Lfunc_end0:
+ .size main, .Lfunc_end0-main
+
+ .section .text.constant_shift,"ax",@progbits
+ .type constant_shift,@function
+constant_shift: # @constant_shift
+ .param i64, i32
+ .result i64
+# BB#0: # %entry
+ block
+ i32.const $push0=, 63
+ i32.gt_u $push1=, $1, $pop0
+ br_if 0, $pop1 # 0: down to label12
+# BB#1: # %entry
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ block
+ tableswitch $1, 63, 63, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62 # 63: down to label13
+ # 0: down to label76
+ # 1: down to label75
+ # 2: down to label74
+ # 3: down to label73
+ # 4: down to label72
+ # 5: down to label71
+ # 6: down to label70
+ # 7: down to label69
+ # 8: down to label68
+ # 9: down to label67
+ # 10: down to label66
+ # 11: down to label65
+ # 12: down to label64
+ # 13: down to label63
+ # 14: down to label62
+ # 15: down to label61
+ # 16: down to label60
+ # 17: down to label59
+ # 18: down to label58
+ # 19: down to label57
+ # 20: down to label56
+ # 21: down to label55
+ # 22: down to label54
+ # 23: down to label53
+ # 24: down to label52
+ # 25: down to label51
+ # 26: down to label50
+ # 27: down to label49
+ # 28: down to label48
+ # 29: down to label47
+ # 30: down to label46
+ # 31: down to label45
+ # 32: down to label44
+ # 33: down to label43
+ # 34: down to label42
+ # 35: down to label41
+ # 36: down to label40
+ # 37: down to label39
+ # 38: down to label38
+ # 39: down to label37
+ # 40: down to label36
+ # 41: down to label35
+ # 42: down to label34
+ # 43: down to label33
+ # 44: down to label32
+ # 45: down to label31
+ # 46: down to label30
+ # 47: down to label29
+ # 48: down to label28
+ # 49: down to label27
+ # 50: down to label26
+ # 51: down to label25
+ # 52: down to label24
+ # 53: down to label23
+ # 54: down to label22
+ # 55: down to label21
+ # 56: down to label20
+ # 57: down to label19
+ # 58: down to label18
+ # 59: down to label17
+ # 60: down to label16
+ # 61: down to label15
+ # 62: down to label14
+.LBB1_2: # %sw.bb1
+ end_block # label76:
+ i64.const $push64=, 1
+ i64.shr_s $0=, $0, $pop64
+ br 62 # 62: down to label13
+.LBB1_3: # %sw.bb3
+ end_block # label75:
+ i64.const $push63=, 2
+ i64.shr_s $0=, $0, $pop63
+ br 61 # 61: down to label13
+.LBB1_4: # %sw.bb5
+ end_block # label74:
+ i64.const $push62=, 3
+ i64.shr_s $0=, $0, $pop62
+ br 60 # 60: down to label13
+.LBB1_5: # %sw.bb7
+ end_block # label73:
+ i64.const $push61=, 4
+ i64.shr_s $0=, $0, $pop61
+ br 59 # 59: down to label13
+.LBB1_6: # %sw.bb9
+ end_block # label72:
+ i64.const $push60=, 5
+ i64.shr_s $0=, $0, $pop60
+ br 58 # 58: down to label13
+.LBB1_7: # %sw.bb11
+ end_block # label71:
+ i64.const $push59=, 6
+ i64.shr_s $0=, $0, $pop59
+ br 57 # 57: down to label13
+.LBB1_8: # %sw.bb13
+ end_block # label70:
+ i64.const $push58=, 7
+ i64.shr_s $0=, $0, $pop58
+ br 56 # 56: down to label13
+.LBB1_9: # %sw.bb15
+ end_block # label69:
+ i64.const $push57=, 8
+ i64.shr_s $0=, $0, $pop57
+ br 55 # 55: down to label13
+.LBB1_10: # %sw.bb17
+ end_block # label68:
+ i64.const $push56=, 9
+ i64.shr_s $0=, $0, $pop56
+ br 54 # 54: down to label13
+.LBB1_11: # %sw.bb19
+ end_block # label67:
+ i64.const $push55=, 10
+ i64.shr_s $0=, $0, $pop55
+ br 53 # 53: down to label13
+.LBB1_12: # %sw.bb21
+ end_block # label66:
+ i64.const $push54=, 11
+ i64.shr_s $0=, $0, $pop54
+ br 52 # 52: down to label13
+.LBB1_13: # %sw.bb23
+ end_block # label65:
+ i64.const $push53=, 12
+ i64.shr_s $0=, $0, $pop53
+ br 51 # 51: down to label13
+.LBB1_14: # %sw.bb25
+ end_block # label64:
+ i64.const $push52=, 13
+ i64.shr_s $0=, $0, $pop52
+ br 50 # 50: down to label13
+.LBB1_15: # %sw.bb27
+ end_block # label63:
+ i64.const $push51=, 14
+ i64.shr_s $0=, $0, $pop51
+ br 49 # 49: down to label13
+.LBB1_16: # %sw.bb29
+ end_block # label62:
+ i64.const $push50=, 15
+ i64.shr_s $0=, $0, $pop50
+ br 48 # 48: down to label13
+.LBB1_17: # %sw.bb31
+ end_block # label61:
+ i64.const $push49=, 16
+ i64.shr_s $0=, $0, $pop49
+ br 47 # 47: down to label13
+.LBB1_18: # %sw.bb33
+ end_block # label60:
+ i64.const $push48=, 17
+ i64.shr_s $0=, $0, $pop48
+ br 46 # 46: down to label13
+.LBB1_19: # %sw.bb35
+ end_block # label59:
+ i64.const $push47=, 18
+ i64.shr_s $0=, $0, $pop47
+ br 45 # 45: down to label13
+.LBB1_20: # %sw.bb37
+ end_block # label58:
+ i64.const $push46=, 19
+ i64.shr_s $0=, $0, $pop46
+ br 44 # 44: down to label13
+.LBB1_21: # %sw.bb39
+ end_block # label57:
+ i64.const $push45=, 20
+ i64.shr_s $0=, $0, $pop45
+ br 43 # 43: down to label13
+.LBB1_22: # %sw.bb41
+ end_block # label56:
+ i64.const $push44=, 21
+ i64.shr_s $0=, $0, $pop44
+ br 42 # 42: down to label13
+.LBB1_23: # %sw.bb43
+ end_block # label55:
+ i64.const $push43=, 22
+ i64.shr_s $0=, $0, $pop43
+ br 41 # 41: down to label13
+.LBB1_24: # %sw.bb45
+ end_block # label54:
+ i64.const $push42=, 23
+ i64.shr_s $0=, $0, $pop42
+ br 40 # 40: down to label13
+.LBB1_25: # %sw.bb47
+ end_block # label53:
+ i64.const $push41=, 24
+ i64.shr_s $0=, $0, $pop41
+ br 39 # 39: down to label13
+.LBB1_26: # %sw.bb49
+ end_block # label52:
+ i64.const $push40=, 25
+ i64.shr_s $0=, $0, $pop40
+ br 38 # 38: down to label13
+.LBB1_27: # %sw.bb51
+ end_block # label51:
+ i64.const $push39=, 26
+ i64.shr_s $0=, $0, $pop39
+ br 37 # 37: down to label13
+.LBB1_28: # %sw.bb53
+ end_block # label50:
+ i64.const $push38=, 27
+ i64.shr_s $0=, $0, $pop38
+ br 36 # 36: down to label13
+.LBB1_29: # %sw.bb55
+ end_block # label49:
+ i64.const $push37=, 28
+ i64.shr_s $0=, $0, $pop37
+ br 35 # 35: down to label13
+.LBB1_30: # %sw.bb57
+ end_block # label48:
+ i64.const $push36=, 29
+ i64.shr_s $0=, $0, $pop36
+ br 34 # 34: down to label13
+.LBB1_31: # %sw.bb59
+ end_block # label47:
+ i64.const $push35=, 30
+ i64.shr_s $0=, $0, $pop35
+ br 33 # 33: down to label13
+.LBB1_32: # %sw.bb61
+ end_block # label46:
+ i64.const $push34=, 31
+ i64.shr_s $0=, $0, $pop34
+ br 32 # 32: down to label13
+.LBB1_33: # %sw.bb63
+ end_block # label45:
+ i64.const $push33=, 32
+ i64.shr_s $0=, $0, $pop33
+ br 31 # 31: down to label13
+.LBB1_34: # %sw.bb65
+ end_block # label44:
+ i64.const $push32=, 33
+ i64.shr_s $0=, $0, $pop32
+ br 30 # 30: down to label13
+.LBB1_35: # %sw.bb67
+ end_block # label43:
+ i64.const $push31=, 34
+ i64.shr_s $0=, $0, $pop31
+ br 29 # 29: down to label13
+.LBB1_36: # %sw.bb69
+ end_block # label42:
+ i64.const $push30=, 35
+ i64.shr_s $0=, $0, $pop30
+ br 28 # 28: down to label13
+.LBB1_37: # %sw.bb71
+ end_block # label41:
+ i64.const $push29=, 36
+ i64.shr_s $0=, $0, $pop29
+ br 27 # 27: down to label13
+.LBB1_38: # %sw.bb73
+ end_block # label40:
+ i64.const $push28=, 37
+ i64.shr_s $0=, $0, $pop28
+ br 26 # 26: down to label13
+.LBB1_39: # %sw.bb75
+ end_block # label39:
+ i64.const $push27=, 38
+ i64.shr_s $0=, $0, $pop27
+ br 25 # 25: down to label13
+.LBB1_40: # %sw.bb77
+ end_block # label38:
+ i64.const $push26=, 39
+ i64.shr_s $0=, $0, $pop26
+ br 24 # 24: down to label13
+.LBB1_41: # %sw.bb79
+ end_block # label37:
+ i64.const $push25=, 40
+ i64.shr_s $0=, $0, $pop25
+ br 23 # 23: down to label13
+.LBB1_42: # %sw.bb81
+ end_block # label36:
+ i64.const $push24=, 41
+ i64.shr_s $0=, $0, $pop24
+ br 22 # 22: down to label13
+.LBB1_43: # %sw.bb83
+ end_block # label35:
+ i64.const $push23=, 42
+ i64.shr_s $0=, $0, $pop23
+ br 21 # 21: down to label13
+.LBB1_44: # %sw.bb85
+ end_block # label34:
+ i64.const $push22=, 43
+ i64.shr_s $0=, $0, $pop22
+ br 20 # 20: down to label13
+.LBB1_45: # %sw.bb87
+ end_block # label33:
+ i64.const $push21=, 44
+ i64.shr_s $0=, $0, $pop21
+ br 19 # 19: down to label13
+.LBB1_46: # %sw.bb89
+ end_block # label32:
+ i64.const $push20=, 45
+ i64.shr_s $0=, $0, $pop20
+ br 18 # 18: down to label13
+.LBB1_47: # %sw.bb91
+ end_block # label31:
+ i64.const $push19=, 46
+ i64.shr_s $0=, $0, $pop19
+ br 17 # 17: down to label13
+.LBB1_48: # %sw.bb93
+ end_block # label30:
+ i64.const $push18=, 47
+ i64.shr_s $0=, $0, $pop18
+ br 16 # 16: down to label13
+.LBB1_49: # %sw.bb95
+ end_block # label29:
+ i64.const $push17=, 48
+ i64.shr_s $0=, $0, $pop17
+ br 15 # 15: down to label13
+.LBB1_50: # %sw.bb97
+ end_block # label28:
+ i64.const $push16=, 49
+ i64.shr_s $0=, $0, $pop16
+ br 14 # 14: down to label13
+.LBB1_51: # %sw.bb99
+ end_block # label27:
+ i64.const $push15=, 50
+ i64.shr_s $0=, $0, $pop15
+ br 13 # 13: down to label13
+.LBB1_52: # %sw.bb101
+ end_block # label26:
+ i64.const $push14=, 51
+ i64.shr_s $0=, $0, $pop14
+ br 12 # 12: down to label13
+.LBB1_53: # %sw.bb103
+ end_block # label25:
+ i64.const $push13=, 52
+ i64.shr_s $0=, $0, $pop13
+ br 11 # 11: down to label13
+.LBB1_54: # %sw.bb105
+ end_block # label24:
+ i64.const $push12=, 53
+ i64.shr_s $0=, $0, $pop12
+ br 10 # 10: down to label13
+.LBB1_55: # %sw.bb107
+ end_block # label23:
+ i64.const $push11=, 54
+ i64.shr_s $0=, $0, $pop11
+ br 9 # 9: down to label13
+.LBB1_56: # %sw.bb109
+ end_block # label22:
+ i64.const $push10=, 55
+ i64.shr_s $0=, $0, $pop10
+ br 8 # 8: down to label13
+.LBB1_57: # %sw.bb111
+ end_block # label21:
+ i64.const $push9=, 56
+ i64.shr_s $0=, $0, $pop9
+ br 7 # 7: down to label13
+.LBB1_58: # %sw.bb113
+ end_block # label20:
+ i64.const $push8=, 57
+ i64.shr_s $0=, $0, $pop8
+ br 6 # 6: down to label13
+.LBB1_59: # %sw.bb115
+ end_block # label19:
+ i64.const $push7=, 58
+ i64.shr_s $0=, $0, $pop7
+ br 5 # 5: down to label13
+.LBB1_60: # %sw.bb117
+ end_block # label18:
+ i64.const $push6=, 59
+ i64.shr_s $0=, $0, $pop6
+ br 4 # 4: down to label13
+.LBB1_61: # %sw.bb119
+ end_block # label17:
+ i64.const $push5=, 60
+ i64.shr_s $0=, $0, $pop5
+ br 3 # 3: down to label13
+.LBB1_62: # %sw.bb121
+ end_block # label16:
+ i64.const $push4=, 61
+ i64.shr_s $0=, $0, $pop4
+ br 2 # 2: down to label13
+.LBB1_63: # %sw.bb123
+ end_block # label15:
+ i64.const $push3=, 62
+ i64.shr_s $0=, $0, $pop3
+ br 1 # 1: down to label13
+.LBB1_64: # %sw.bb125
+ end_block # label14:
+ i64.const $push2=, 63
+ i64.shr_s $0=, $0, $pop2
+.LBB1_65: # %sw.epilog
+ end_block # label13:
+ return $0
+.LBB1_66: # %sw.default
+ end_block # label12:
+ call abort@FUNCTION
+ unreachable
+ .endfunc
+.Lfunc_end1:
+ .size constant_shift, .Lfunc_end1-constant_shift
+
+ .type zext,@object # @zext
+ .section .rodata.zext,"a",@progbits
+ .p2align 4
+zext:
+ .int64 8526495107234113920 # 0x7654321fedcba980
+ .int64 4263247553617056960 # 0x3b2a190ff6e5d4c0
+ .int64 2131623776808528480 # 0x1d950c87fb72ea60
+ .int64 1065811888404264240 # 0xeca8643fdb97530
+ .int64 532905944202132120 # 0x7654321fedcba98
+ .int64 266452972101066060 # 0x3b2a190ff6e5d4c
+ .int64 133226486050533030 # 0x1d950c87fb72ea6
+ .int64 66613243025266515 # 0xeca8643fdb9753
+ .int64 33306621512633257 # 0x7654321fedcba9
+ .int64 16653310756316628 # 0x3b2a190ff6e5d4
+ .int64 8326655378158314 # 0x1d950c87fb72ea
+ .int64 4163327689079157 # 0xeca8643fdb975
+ .int64 2081663844539578 # 0x7654321fedcba
+ .int64 1040831922269789 # 0x3b2a190ff6e5d
+ .int64 520415961134894 # 0x1d950c87fb72e
+ .int64 260207980567447 # 0xeca8643fdb97
+ .int64 130103990283723 # 0x7654321fedcb
+ .int64 65051995141861 # 0x3b2a190ff6e5
+ .int64 32525997570930 # 0x1d950c87fb72
+ .int64 16262998785465 # 0xeca8643fdb9
+ .int64 8131499392732 # 0x7654321fedc
+ .int64 4065749696366 # 0x3b2a190ff6e
+ .int64 2032874848183 # 0x1d950c87fb7
+ .int64 1016437424091 # 0xeca8643fdb
+ .int64 508218712045 # 0x7654321fed
+ .int64 254109356022 # 0x3b2a190ff6
+ .int64 127054678011 # 0x1d950c87fb
+ .int64 63527339005 # 0xeca8643fd
+ .int64 31763669502 # 0x7654321fe
+ .int64 15881834751 # 0x3b2a190ff
+ .int64 7940917375 # 0x1d950c87f
+ .int64 3970458687 # 0xeca8643f
+ .int64 1985229343 # 0x7654321f
+ .int64 992614671 # 0x3b2a190f
+ .int64 496307335 # 0x1d950c87
+ .int64 248153667 # 0xeca8643
+ .int64 124076833 # 0x7654321
+ .int64 62038416 # 0x3b2a190
+ .int64 31019208 # 0x1d950c8
+ .int64 15509604 # 0xeca864
+ .int64 7754802 # 0x765432
+ .int64 3877401 # 0x3b2a19
+ .int64 1938700 # 0x1d950c
+ .int64 969350 # 0xeca86
+ .int64 484675 # 0x76543
+ .int64 242337 # 0x3b2a1
+ .int64 121168 # 0x1d950
+ .int64 60584 # 0xeca8
+ .int64 30292 # 0x7654
+ .int64 15146 # 0x3b2a
+ .int64 7573 # 0x1d95
+ .int64 3786 # 0xeca
+ .int64 1893 # 0x765
+ .int64 946 # 0x3b2
+ .int64 473 # 0x1d9
+ .int64 236 # 0xec
+ .int64 118 # 0x76
+ .int64 59 # 0x3b
+ .int64 29 # 0x1d
+ .int64 14 # 0xe
+ .int64 7 # 0x7
+ .int64 3 # 0x3
+ .int64 1 # 0x1
+ .int64 0 # 0x0
+ .size zext, 512
+
+ .type sext,@object # @sext
+ .section .rodata.sext,"a",@progbits
+ .p2align 4
+sext:
+ .int64 -8152436031399644656 # 0x8edcba9f76543210
+ .int64 -4076218015699822328 # 0xc76e5d4fbb2a1908
+ .int64 -2038109007849911164 # 0xe3b72ea7dd950c84
+ .int64 -1019054503924955582 # 0xf1db9753eeca8642
+ .int64 -509527251962477791 # 0xf8edcba9f7654321
+ .int64 -254763625981238896 # 0xfc76e5d4fbb2a190
+ .int64 -127381812990619448 # 0xfe3b72ea7dd950c8
+ .int64 -63690906495309724 # 0xff1db9753eeca864
+ .int64 -31845453247654862 # 0xff8edcba9f765432
+ .int64 -15922726623827431 # 0xffc76e5d4fbb2a19
+ .int64 -7961363311913716 # 0xffe3b72ea7dd950c
+ .int64 -3980681655956858 # 0xfff1db9753eeca86
+ .int64 -1990340827978429 # 0xfff8edcba9f76543
+ .int64 -995170413989215 # 0xfffc76e5d4fbb2a1
+ .int64 -497585206994608 # 0xfffe3b72ea7dd950
+ .int64 -248792603497304 # 0xffff1db9753eeca8
+ .int64 -124396301748652 # 0xffff8edcba9f7654
+ .int64 -62198150874326 # 0xffffc76e5d4fbb2a
+ .int64 -31099075437163 # 0xffffe3b72ea7dd95
+ .int64 -15549537718582 # 0xfffff1db9753eeca
+ .int64 -7774768859291 # 0xfffff8edcba9f765
+ .int64 -3887384429646 # 0xfffffc76e5d4fbb2
+ .int64 -1943692214823 # 0xfffffe3b72ea7dd9
+ .int64 -971846107412 # 0xffffff1db9753eec
+ .int64 -485923053706 # 0xffffff8edcba9f76
+ .int64 -242961526853 # 0xffffffc76e5d4fbb
+ .int64 -121480763427 # 0xffffffe3b72ea7dd
+ .int64 -60740381714 # 0xfffffff1db9753ee
+ .int64 -30370190857 # 0xfffffff8edcba9f7
+ .int64 -15185095429 # 0xfffffffc76e5d4fb
+ .int64 -7592547715 # 0xfffffffe3b72ea7d
+ .int64 -3796273858 # 0xffffffff1db9753e
+ .int64 -1898136929 # 0xffffffff8edcba9f
+ .int64 -949068465 # 0xffffffffc76e5d4f
+ .int64 -474534233 # 0xffffffffe3b72ea7
+ .int64 -237267117 # 0xfffffffff1db9753
+ .int64 -118633559 # 0xfffffffff8edcba9
+ .int64 -59316780 # 0xfffffffffc76e5d4
+ .int64 -29658390 # 0xfffffffffe3b72ea
+ .int64 -14829195 # 0xffffffffff1db975
+ .int64 -7414598 # 0xffffffffff8edcba
+ .int64 -3707299 # 0xffffffffffc76e5d
+ .int64 -1853650 # 0xffffffffffe3b72e
+ .int64 -926825 # 0xfffffffffff1db97
+ .int64 -463413 # 0xfffffffffff8edcb
+ .int64 -231707 # 0xfffffffffffc76e5
+ .int64 -115854 # 0xfffffffffffe3b72
+ .int64 -57927 # 0xffffffffffff1db9
+ .int64 -28964 # 0xffffffffffff8edc
+ .int64 -14482 # 0xffffffffffffc76e
+ .int64 -7241 # 0xffffffffffffe3b7
+ .int64 -3621 # 0xfffffffffffff1db
+ .int64 -1811 # 0xfffffffffffff8ed
+ .int64 -906 # 0xfffffffffffffc76
+ .int64 -453 # 0xfffffffffffffe3b
+ .int64 -227 # 0xffffffffffffff1d
+ .int64 -114 # 0xffffffffffffff8e
+ .int64 -57 # 0xffffffffffffffc7
+ .int64 -29 # 0xffffffffffffffe3
+ .int64 -15 # 0xfffffffffffffff1
+ .int64 -8 # 0xfffffffffffffff8
+ .int64 -4 # 0xfffffffffffffffc
+ .int64 -2 # 0xfffffffffffffffe
+ .int64 -1 # 0xffffffffffffffff
+ .size sext, 512
+
+
+ .ident "clang version 3.9.0 "
diff --git a/test/torture-s/builtin-bitops-1.c.s b/test/torture-s/builtin-bitops-1.c.s
new file mode 100644
index 000000000..a267cb0a6
--- /dev/null
+++ b/test/torture-s/builtin-bitops-1.c.s
@@ -0,0 +1,1895 @@
+ .text
+ .file "/b/build/slave/linux/build/src/src/work/gcc/gcc/testsuite/gcc.c-torture/execute/builtin-bitops-1.c"
+ .section .text.my_ffs,"ax",@progbits
+ .hidden my_ffs
+ .globl my_ffs
+ .type my_ffs,@function
+my_ffs: # @my_ffs
+ .param i32
+ .result i32
+ .local i32
+# BB#0: # %entry
+ i32.const $1=, 0
+ block
+ i32.const $push7=, 0
+ i32.eq $push8=, $0, $pop7
+ br_if 0, $pop8 # 0: down to label0
+.LBB0_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label1:
+ i32.const $push4=, 1
+ i32.shl $push0=, $pop4, $1
+ i32.and $push1=, $pop0, $0
+ br_if 1, $pop1 # 1: down to label2
+# BB#2: # %for.inc
+ # in Loop: Header=BB0_1 Depth=1
+ i32.const $push5=, 1
+ i32.add $1=, $1, $pop5
+ i32.const $push2=, 32
+ i32.lt_u $push3=, $1, $pop2
+ br_if 0, $pop3 # 0: up to label1
+.LBB0_3: # %for.end
+ end_loop # label2:
+ i32.const $push6=, 1
+ i32.add $1=, $1, $pop6
+.LBB0_4: # %cleanup
+ end_block # label0:
+ return $1
+ .endfunc
+.Lfunc_end0:
+ .size my_ffs, .Lfunc_end0-my_ffs
+
+ .section .text.my_ctz,"ax",@progbits
+ .hidden my_ctz
+ .globl my_ctz
+ .type my_ctz,@function
+my_ctz: # @my_ctz
+ .param i32
+ .result i32
+ .local i32
+# BB#0: # %entry
+ i32.const $1=, 0
+.LBB1_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label3:
+ i32.const $push3=, 1
+ i32.shl $push0=, $pop3, $1
+ i32.and $push1=, $pop0, $0
+ br_if 1, $pop1 # 1: down to label4
+# BB#2: # %for.inc
+ # in Loop: Header=BB1_1 Depth=1
+ i32.const $push5=, 1
+ i32.add $1=, $1, $pop5
+ i32.const $push4=, 32
+ i32.lt_u $push2=, $1, $pop4
+ br_if 0, $pop2 # 0: up to label3
+.LBB1_3: # %for.end
+ end_loop # label4:
+ return $1
+ .endfunc
+.Lfunc_end1:
+ .size my_ctz, .Lfunc_end1-my_ctz
+
+ .section .text.my_clz,"ax",@progbits
+ .hidden my_clz
+ .globl my_clz
+ .type my_clz,@function
+my_clz: # @my_clz
+ .param i32
+ .result i32
+ .local i32, i32
+# BB#0: # %entry
+ i32.const $2=, 0
+ i32.const $1=, 31
+.LBB2_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label5:
+ i32.const $push3=, 1
+ i32.shl $push0=, $pop3, $1
+ i32.and $push1=, $pop0, $0
+ br_if 1, $pop1 # 1: down to label6
+# BB#2: # %for.inc
+ # in Loop: Header=BB2_1 Depth=1
+ i32.const $push6=, 1
+ i32.add $2=, $2, $pop6
+ i32.const $push5=, -1
+ i32.add $1=, $1, $pop5
+ i32.const $push4=, 32
+ i32.lt_u $push2=, $2, $pop4
+ br_if 0, $pop2 # 0: up to label5
+.LBB2_3: # %for.end
+ end_loop # label6:
+ return $2
+ .endfunc
+.Lfunc_end2:
+ .size my_clz, .Lfunc_end2-my_clz
+
+ .section .text.my_clrsb,"ax",@progbits
+ .hidden my_clrsb
+ .globl my_clrsb
+ .type my_clrsb,@function
+my_clrsb: # @my_clrsb
+ .param i32
+ .result i32
+ .local i32, i32, i32
+# BB#0: # %entry
+ i32.const $push0=, 31
+ i32.shr_u $1=, $0, $pop0
+ i32.const $2=, 30
+ i32.const $3=, 1
+.LBB3_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label7:
+ i32.shr_u $push1=, $0, $2
+ i32.const $push7=, 1
+ i32.and $push2=, $pop1, $pop7
+ i32.ne $push3=, $pop2, $1
+ br_if 1, $pop3 # 1: down to label8
+# BB#2: # %for.inc
+ # in Loop: Header=BB3_1 Depth=1
+ i32.const $push10=, 1
+ i32.add $3=, $3, $pop10
+ i32.const $push9=, -1
+ i32.add $2=, $2, $pop9
+ i32.const $push8=, 32
+ i32.lt_u $push4=, $3, $pop8
+ br_if 0, $pop4 # 0: up to label7
+.LBB3_3: # %for.end
+ end_loop # label8:
+ i32.const $push5=, -1
+ i32.add $push6=, $3, $pop5
+ return $pop6
+ .endfunc
+.Lfunc_end3:
+ .size my_clrsb, .Lfunc_end3-my_clrsb
+
+ .section .text.my_popcount,"ax",@progbits
+ .hidden my_popcount
+ .globl my_popcount
+ .type my_popcount,@function
+my_popcount: # @my_popcount
+ .param i32
+ .result i32
+ .local i32, i32
+# BB#0: # %entry
+ i32.const $1=, 0
+ i32.const $2=, 0
+.LBB4_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label9:
+ i32.const $push7=, 1
+ i32.shl $push0=, $pop7, $2
+ i32.and $push1=, $pop0, $0
+ i32.const $push6=, 0
+ i32.ne $push2=, $pop1, $pop6
+ i32.add $1=, $pop2, $1
+ i32.const $push5=, 1
+ i32.add $2=, $2, $pop5
+ i32.const $push4=, 32
+ i32.ne $push3=, $2, $pop4
+ br_if 0, $pop3 # 0: up to label9
+# BB#2: # %for.end
+ end_loop # label10:
+ return $1
+ .endfunc
+.Lfunc_end4:
+ .size my_popcount, .Lfunc_end4-my_popcount
+
+ .section .text.my_parity,"ax",@progbits
+ .hidden my_parity
+ .globl my_parity
+ .type my_parity,@function
+my_parity: # @my_parity
+ .param i32
+ .result i32
+ .local i32, i32
+# BB#0: # %entry
+ i32.const $1=, 0
+ i32.const $2=, 0
+.LBB5_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label11:
+ i32.const $push9=, 1
+ i32.shl $push0=, $pop9, $2
+ i32.and $push1=, $pop0, $0
+ i32.const $push8=, 0
+ i32.ne $push2=, $pop1, $pop8
+ i32.add $1=, $pop2, $1
+ i32.const $push7=, 1
+ i32.add $2=, $2, $pop7
+ i32.const $push6=, 32
+ i32.ne $push3=, $2, $pop6
+ br_if 0, $pop3 # 0: up to label11
+# BB#2: # %for.end
+ end_loop # label12:
+ i32.const $push4=, 1
+ i32.and $push5=, $1, $pop4
+ return $pop5
+ .endfunc
+.Lfunc_end5:
+ .size my_parity, .Lfunc_end5-my_parity
+
+ .section .text.my_ffsl,"ax",@progbits
+ .hidden my_ffsl
+ .globl my_ffsl
+ .type my_ffsl,@function
+my_ffsl: # @my_ffsl
+ .param i32
+ .result i32
+ .local i32
+# BB#0: # %entry
+ i32.const $1=, 0
+ block
+ i32.const $push7=, 0
+ i32.eq $push8=, $0, $pop7
+ br_if 0, $pop8 # 0: down to label13
+.LBB6_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label14:
+ i32.const $push4=, 1
+ i32.shl $push0=, $pop4, $1
+ i32.and $push1=, $pop0, $0
+ br_if 1, $pop1 # 1: down to label15
+# BB#2: # %for.inc
+ # in Loop: Header=BB6_1 Depth=1
+ i32.const $push5=, 1
+ i32.add $1=, $1, $pop5
+ i32.const $push2=, 32
+ i32.lt_u $push3=, $1, $pop2
+ br_if 0, $pop3 # 0: up to label14
+.LBB6_3: # %for.end
+ end_loop # label15:
+ i32.const $push6=, 1
+ i32.add $1=, $1, $pop6
+.LBB6_4: # %cleanup
+ end_block # label13:
+ return $1
+ .endfunc
+.Lfunc_end6:
+ .size my_ffsl, .Lfunc_end6-my_ffsl
+
+ .section .text.my_ctzl,"ax",@progbits
+ .hidden my_ctzl
+ .globl my_ctzl
+ .type my_ctzl,@function
+my_ctzl: # @my_ctzl
+ .param i32
+ .result i32
+ .local i32
+# BB#0: # %entry
+ i32.const $1=, 0
+.LBB7_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label16:
+ i32.const $push3=, 1
+ i32.shl $push0=, $pop3, $1
+ i32.and $push1=, $pop0, $0
+ br_if 1, $pop1 # 1: down to label17
+# BB#2: # %for.inc
+ # in Loop: Header=BB7_1 Depth=1
+ i32.const $push5=, 1
+ i32.add $1=, $1, $pop5
+ i32.const $push4=, 32
+ i32.lt_u $push2=, $1, $pop4
+ br_if 0, $pop2 # 0: up to label16
+.LBB7_3: # %for.end
+ end_loop # label17:
+ return $1
+ .endfunc
+.Lfunc_end7:
+ .size my_ctzl, .Lfunc_end7-my_ctzl
+
+ .section .text.my_clzl,"ax",@progbits
+ .hidden my_clzl
+ .globl my_clzl
+ .type my_clzl,@function
+my_clzl: # @my_clzl
+ .param i32
+ .result i32
+ .local i32, i32
+# BB#0: # %entry
+ i32.const $2=, 0
+ i32.const $1=, 31
+.LBB8_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label18:
+ i32.const $push3=, 1
+ i32.shl $push0=, $pop3, $1
+ i32.and $push1=, $pop0, $0
+ br_if 1, $pop1 # 1: down to label19
+# BB#2: # %for.inc
+ # in Loop: Header=BB8_1 Depth=1
+ i32.const $push6=, 1
+ i32.add $2=, $2, $pop6
+ i32.const $push5=, -1
+ i32.add $1=, $1, $pop5
+ i32.const $push4=, 32
+ i32.lt_u $push2=, $2, $pop4
+ br_if 0, $pop2 # 0: up to label18
+.LBB8_3: # %for.end
+ end_loop # label19:
+ return $2
+ .endfunc
+.Lfunc_end8:
+ .size my_clzl, .Lfunc_end8-my_clzl
+
+ .section .text.my_clrsbl,"ax",@progbits
+ .hidden my_clrsbl
+ .globl my_clrsbl
+ .type my_clrsbl,@function
+my_clrsbl: # @my_clrsbl
+ .param i32
+ .result i32
+ .local i32, i32, i32
+# BB#0: # %entry
+ i32.const $push0=, 31
+ i32.shr_u $1=, $0, $pop0
+ i32.const $2=, 30
+ i32.const $3=, 1
+.LBB9_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label20:
+ i32.shr_u $push1=, $0, $2
+ i32.const $push7=, 1
+ i32.and $push2=, $pop1, $pop7
+ i32.ne $push3=, $pop2, $1
+ br_if 1, $pop3 # 1: down to label21
+# BB#2: # %for.inc
+ # in Loop: Header=BB9_1 Depth=1
+ i32.const $push10=, 1
+ i32.add $3=, $3, $pop10
+ i32.const $push9=, -1
+ i32.add $2=, $2, $pop9
+ i32.const $push8=, 32
+ i32.lt_u $push4=, $3, $pop8
+ br_if 0, $pop4 # 0: up to label20
+.LBB9_3: # %for.end
+ end_loop # label21:
+ i32.const $push5=, -1
+ i32.add $push6=, $3, $pop5
+ return $pop6
+ .endfunc
+.Lfunc_end9:
+ .size my_clrsbl, .Lfunc_end9-my_clrsbl
+
+ .section .text.my_popcountl,"ax",@progbits
+ .hidden my_popcountl
+ .globl my_popcountl
+ .type my_popcountl,@function
+my_popcountl: # @my_popcountl
+ .param i32
+ .result i32
+ .local i32, i32
+# BB#0: # %entry
+ i32.const $1=, 0
+ i32.const $2=, 0
+.LBB10_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label22:
+ i32.const $push7=, 1
+ i32.shl $push0=, $pop7, $2
+ i32.and $push1=, $pop0, $0
+ i32.const $push6=, 0
+ i32.ne $push2=, $pop1, $pop6
+ i32.add $1=, $pop2, $1
+ i32.const $push5=, 1
+ i32.add $2=, $2, $pop5
+ i32.const $push4=, 32
+ i32.ne $push3=, $2, $pop4
+ br_if 0, $pop3 # 0: up to label22
+# BB#2: # %for.end
+ end_loop # label23:
+ return $1
+ .endfunc
+.Lfunc_end10:
+ .size my_popcountl, .Lfunc_end10-my_popcountl
+
+ .section .text.my_parityl,"ax",@progbits
+ .hidden my_parityl
+ .globl my_parityl
+ .type my_parityl,@function
+my_parityl: # @my_parityl
+ .param i32
+ .result i32
+ .local i32, i32
+# BB#0: # %entry
+ i32.const $1=, 0
+ i32.const $2=, 0
+.LBB11_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label24:
+ i32.const $push9=, 1
+ i32.shl $push0=, $pop9, $2
+ i32.and $push1=, $pop0, $0
+ i32.const $push8=, 0
+ i32.ne $push2=, $pop1, $pop8
+ i32.add $1=, $pop2, $1
+ i32.const $push7=, 1
+ i32.add $2=, $2, $pop7
+ i32.const $push6=, 32
+ i32.ne $push3=, $2, $pop6
+ br_if 0, $pop3 # 0: up to label24
+# BB#2: # %for.end
+ end_loop # label25:
+ i32.const $push4=, 1
+ i32.and $push5=, $1, $pop4
+ return $pop5
+ .endfunc
+.Lfunc_end11:
+ .size my_parityl, .Lfunc_end11-my_parityl
+
+ .section .text.my_ffsll,"ax",@progbits
+ .hidden my_ffsll
+ .globl my_ffsll
+ .type my_ffsll,@function
+my_ffsll: # @my_ffsll
+ .param i64
+ .result i32
+ .local i64, i32
+# BB#0: # %entry
+ i64.const $1=, 0
+ i32.const $2=, 0
+ block
+ i64.const $push8=, 0
+ i64.eq $push0=, $0, $pop8
+ br_if 0, $pop0 # 0: down to label26
+.LBB12_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label27:
+ i64.const $push10=, 1
+ i64.shl $push1=, $pop10, $1
+ i64.and $push2=, $pop1, $0
+ i64.const $push9=, 0
+ i64.ne $push3=, $pop2, $pop9
+ br_if 1, $pop3 # 1: down to label28
+# BB#2: # %for.inc
+ # in Loop: Header=BB12_1 Depth=1
+ i32.const $push4=, 1
+ i32.add $2=, $2, $pop4
+ i64.const $push11=, 1
+ i64.add $1=, $1, $pop11
+ i64.const $push5=, 64
+ i64.lt_u $push6=, $1, $pop5
+ br_if 0, $pop6 # 0: up to label27
+.LBB12_3: # %for.end
+ end_loop # label28:
+ i32.const $push7=, 1
+ i32.add $2=, $2, $pop7
+.LBB12_4: # %cleanup
+ end_block # label26:
+ return $2
+ .endfunc
+.Lfunc_end12:
+ .size my_ffsll, .Lfunc_end12-my_ffsll
+
+ .section .text.my_ctzll,"ax",@progbits
+ .hidden my_ctzll
+ .globl my_ctzll
+ .type my_ctzll,@function
+my_ctzll: # @my_ctzll
+ .param i64
+ .result i32
+ .local i64, i32
+# BB#0: # %entry
+ i64.const $1=, 0
+ i32.const $2=, 0
+.LBB13_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label29:
+ i64.const $push5=, 1
+ i64.shl $push0=, $pop5, $1
+ i64.and $push1=, $pop0, $0
+ i64.const $push4=, 0
+ i64.ne $push2=, $pop1, $pop4
+ br_if 1, $pop2 # 1: down to label30
+# BB#2: # %for.inc
+ # in Loop: Header=BB13_1 Depth=1
+ i64.const $push8=, 1
+ i64.add $1=, $1, $pop8
+ i32.const $push7=, 1
+ i32.add $2=, $2, $pop7
+ i64.const $push6=, 64
+ i64.lt_u $push3=, $1, $pop6
+ br_if 0, $pop3 # 0: up to label29
+.LBB13_3: # %for.end
+ end_loop # label30:
+ return $2
+ .endfunc
+.Lfunc_end13:
+ .size my_ctzll, .Lfunc_end13-my_ctzll
+
+ .section .text.my_clzll,"ax",@progbits
+ .hidden my_clzll
+ .globl my_clzll
+ .type my_clzll,@function
+my_clzll: # @my_clzll
+ .param i64
+ .result i32
+ .local i64, i64, i32
+# BB#0: # %entry
+ i64.const $1=, 63
+ i64.const $2=, 0
+ i32.const $3=, 0
+.LBB14_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label31:
+ i64.const $push7=, 1
+ i64.const $push6=, 4294967295
+ i64.and $push0=, $1, $pop6
+ i64.shl $push1=, $pop7, $pop0
+ i64.and $push2=, $pop1, $0
+ i64.const $push5=, 0
+ i64.ne $push3=, $pop2, $pop5
+ br_if 1, $pop3 # 1: down to label32
+# BB#2: # %for.inc
+ # in Loop: Header=BB14_1 Depth=1
+ i64.const $push11=, 1
+ i64.add $2=, $2, $pop11
+ i32.const $push10=, 1
+ i32.add $3=, $3, $pop10
+ i64.const $push9=, -1
+ i64.add $1=, $1, $pop9
+ i64.const $push8=, 64
+ i64.lt_u $push4=, $2, $pop8
+ br_if 0, $pop4 # 0: up to label31
+.LBB14_3: # %for.end
+ end_loop # label32:
+ return $3
+ .endfunc
+.Lfunc_end14:
+ .size my_clzll, .Lfunc_end14-my_clzll
+
+ .section .text.my_clrsbll,"ax",@progbits
+ .hidden my_clrsbll
+ .globl my_clrsbll
+ .type my_clrsbll,@function
+my_clrsbll: # @my_clrsbll
+ .param i64
+ .result i32
+ .local i64, i64, i64, i32
+# BB#0: # %entry
+ i64.const $push0=, 63
+ i64.shr_u $1=, $0, $pop0
+ i64.const $2=, 62
+ i64.const $3=, 1
+ i32.const $4=, 1
+.LBB15_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label33:
+ i64.shr_u $push1=, $0, $2
+ i64.const $push7=, 1
+ i64.and $push2=, $pop1, $pop7
+ i64.ne $push3=, $pop2, $1
+ br_if 1, $pop3 # 1: down to label34
+# BB#2: # %for.inc
+ # in Loop: Header=BB15_1 Depth=1
+ i64.const $push11=, 1
+ i64.add $3=, $3, $pop11
+ i32.const $push10=, 1
+ i32.add $4=, $4, $pop10
+ i64.const $push9=, -1
+ i64.add $2=, $2, $pop9
+ i64.const $push8=, 64
+ i64.lt_u $push4=, $3, $pop8
+ br_if 0, $pop4 # 0: up to label33
+.LBB15_3: # %for.end
+ end_loop # label34:
+ i32.const $push5=, -1
+ i32.add $push6=, $4, $pop5
+ return $pop6
+ .endfunc
+.Lfunc_end15:
+ .size my_clrsbll, .Lfunc_end15-my_clrsbll
+
+ .section .text.my_popcountll,"ax",@progbits
+ .hidden my_popcountll
+ .globl my_popcountll
+ .type my_popcountll,@function
+my_popcountll: # @my_popcountll
+ .param i64
+ .result i32
+ .local i64, i32
+# BB#0: # %entry
+ i64.const $1=, 0
+ i32.const $2=, 0
+.LBB16_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label35:
+ i64.const $push7=, 1
+ i64.shl $push0=, $pop7, $1
+ i64.and $push1=, $pop0, $0
+ i64.const $push6=, 0
+ i64.ne $push2=, $pop1, $pop6
+ i32.add $2=, $pop2, $2
+ i64.const $push5=, 1
+ i64.add $1=, $1, $pop5
+ i64.const $push4=, 64
+ i64.ne $push3=, $1, $pop4
+ br_if 0, $pop3 # 0: up to label35
+# BB#2: # %for.end
+ end_loop # label36:
+ return $2
+ .endfunc
+.Lfunc_end16:
+ .size my_popcountll, .Lfunc_end16-my_popcountll
+
+ .section .text.my_parityll,"ax",@progbits
+ .hidden my_parityll
+ .globl my_parityll
+ .type my_parityll,@function
+my_parityll: # @my_parityll
+ .param i64
+ .result i32
+ .local i64, i32
+# BB#0: # %entry
+ i64.const $1=, 0
+ i32.const $2=, 0
+.LBB17_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label37:
+ i64.const $push9=, 1
+ i64.shl $push0=, $pop9, $1
+ i64.and $push1=, $pop0, $0
+ i64.const $push8=, 0
+ i64.ne $push2=, $pop1, $pop8
+ i32.add $2=, $pop2, $2
+ i64.const $push7=, 1
+ i64.add $1=, $1, $pop7
+ i64.const $push6=, 64
+ i64.ne $push3=, $1, $pop6
+ br_if 0, $pop3 # 0: up to label37
+# BB#2: # %for.end
+ end_loop # label38:
+ i32.const $push4=, 1
+ i32.and $push5=, $2, $pop4
+ return $pop5
+ .endfunc
+.Lfunc_end17:
+ .size my_parityll, .Lfunc_end17-my_parityll
+
+ .section .text.main,"ax",@progbits
+ .hidden main
+ .globl main
+ .type main,@function
+main: # @main
+ .result i32
+ .local i32, i32, i32, i64, i32, i32, i64, i64, i64, i32, i32
+# BB#0: # %entry
+ i32.const $0=, 0
+.LBB18_1: # %for.body
+ # =>This Loop Header: Depth=1
+ # Child Loop BB18_2 Depth 2
+ # Child Loop BB18_8 Depth 2
+ # Child Loop BB18_12 Depth 2
+ # Child Loop BB18_18 Depth 2
+ # Child Loop BB18_21 Depth 2
+ # Child Loop BB18_23 Depth 2
+ block
+ block
+ block
+ block
+ loop # label43:
+ i32.const $push282=, 2
+ i32.shl $push9=, $0, $pop282
+ tee_local $push281=, $2=, $pop9
+ i32.load $push1=, ints($pop281)
+ tee_local $push280=, $10=, $pop1
+ i32.ctz $push10=, $pop280
+ tee_local $push279=, $1=, $pop10
+ i32.const $push278=, 1
+ i32.add $push11=, $pop279, $pop278
+ i32.const $push277=, 0
+ i32.select $5=, $pop11, $pop277, $10
+ i32.const $9=, 0
+ i32.const $4=, 0
+ block
+ i32.const $push382=, 0
+ i32.eq $push383=, $10, $pop382
+ br_if 0, $pop383 # 0: down to label45
+.LBB18_2: # %for.body.i
+ # Parent Loop BB18_1 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label46:
+ i32.const $push283=, 1
+ i32.shl $push12=, $pop283, $9
+ i32.and $push13=, $pop12, $10
+ br_if 1, $pop13 # 1: down to label47
+# BB#3: # %for.inc.i
+ # in Loop: Header=BB18_2 Depth=2
+ i32.const $push285=, 1
+ i32.add $9=, $9, $pop285
+ i32.const $push284=, 32
+ i32.lt_u $push14=, $9, $pop284
+ br_if 0, $pop14 # 0: up to label46
+.LBB18_4: # %for.end.i
+ # in Loop: Header=BB18_1 Depth=1
+ end_loop # label47:
+ i32.const $push286=, 1
+ i32.add $4=, $9, $pop286
+.LBB18_5: # %my_ffs.exit
+ # in Loop: Header=BB18_1 Depth=1
+ end_block # label45:
+ i32.ne $push15=, $5, $4
+ br_if 5, $pop15 # 5: down to label39
+# BB#6: # %if.end
+ # in Loop: Header=BB18_1 Depth=1
+ block
+ i32.const $push384=, 0
+ i32.eq $push385=, $10, $pop384
+ br_if 0, $pop385 # 0: down to label48
+# BB#7: # %land.lhs.true
+ # in Loop: Header=BB18_1 Depth=1
+ i32.clz $5=, $10
+ i32.const $9=, 0
+ i32.const $4=, 31
+.LBB18_8: # %for.body.i822
+ # Parent Loop BB18_1 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label49:
+ i32.const $push287=, 1
+ i32.shl $push16=, $pop287, $4
+ i32.and $push17=, $pop16, $10
+ br_if 1, $pop17 # 1: down to label50
+# BB#9: # %for.inc.i825
+ # in Loop: Header=BB18_8 Depth=2
+ i32.const $push290=, 1
+ i32.add $9=, $9, $pop290
+ i32.const $push289=, -1
+ i32.add $4=, $4, $pop289
+ i32.const $push288=, 32
+ i32.lt_u $push18=, $9, $pop288
+ br_if 0, $pop18 # 0: up to label49
+.LBB18_10: # %my_clz.exit
+ # in Loop: Header=BB18_1 Depth=1
+ end_loop # label50:
+ block
+ i32.ne $push19=, $5, $9
+ br_if 0, $pop19 # 0: down to label51
+# BB#11: # %land.lhs.true13
+ # in Loop: Header=BB18_1 Depth=1
+ i32.const $9=, 0
+.LBB18_12: # %for.body.i889
+ # Parent Loop BB18_1 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label52:
+ i32.const $push291=, 1
+ i32.shl $push20=, $pop291, $9
+ i32.and $push21=, $pop20, $10
+ br_if 1, $pop21 # 1: down to label53
+# BB#13: # %for.inc.i892
+ # in Loop: Header=BB18_12 Depth=2
+ i32.const $push293=, 1
+ i32.add $9=, $9, $pop293
+ i32.const $push292=, 32
+ i32.lt_u $push22=, $9, $pop292
+ br_if 0, $pop22 # 0: up to label52
+.LBB18_14: # %my_ctz.exit
+ # in Loop: Header=BB18_1 Depth=1
+ end_loop # label53:
+ i32.eq $push23=, $1, $9
+ br_if 1, $pop23 # 1: down to label48
+# BB#15: # %if.then18
+ call abort@FUNCTION
+ unreachable
+.LBB18_16: # %if.then9
+ end_block # label51:
+ call abort@FUNCTION
+ unreachable
+.LBB18_17: # %if.end19
+ # in Loop: Header=BB18_1 Depth=1
+ end_block # label48:
+ i32.call $1=, __builtin_clrsb@FUNCTION, $10
+ i32.const $push296=, ints
+ i32.add $push0=, $2, $pop296
+ i32.load $push2=, 0($pop0)
+ tee_local $push295=, $10=, $pop2
+ i32.const $push294=, 31
+ i32.shr_u $4=, $pop295, $pop294
+ i32.const $5=, 1
+ i32.const $9=, 30
+.LBB18_18: # %for.body.i974
+ # Parent Loop BB18_1 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label54:
+ i32.shr_u $push24=, $10, $9
+ i32.const $push297=, 1
+ i32.and $push25=, $pop24, $pop297
+ i32.ne $push26=, $pop25, $4
+ br_if 1, $pop26 # 1: down to label55
+# BB#19: # %for.inc.i977
+ # in Loop: Header=BB18_18 Depth=2
+ i32.const $push300=, 1
+ i32.add $5=, $5, $pop300
+ i32.const $push299=, -1
+ i32.add $9=, $9, $pop299
+ i32.const $push298=, 32
+ i32.lt_u $push27=, $5, $pop298
+ br_if 0, $pop27 # 0: up to label54
+.LBB18_20: # %my_clrsb.exit
+ # in Loop: Header=BB18_1 Depth=1
+ end_loop # label55:
+ i32.const $4=, 0
+ i32.const $9=, 0
+ i32.const $push301=, -1
+ i32.add $push28=, $5, $pop301
+ i32.ne $push29=, $1, $pop28
+ br_if 4, $pop29 # 4: down to label40
+.LBB18_21: # %for.body.i1069
+ # Parent Loop BB18_1 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label56:
+ i32.const $push305=, 1
+ i32.shl $push30=, $pop305, $9
+ i32.and $push31=, $pop30, $10
+ i32.const $push304=, 0
+ i32.ne $push32=, $pop31, $pop304
+ i32.add $4=, $pop32, $4
+ i32.const $push303=, 1
+ i32.add $9=, $9, $pop303
+ i32.const $push302=, 32
+ i32.ne $push33=, $9, $pop302
+ br_if 0, $pop33 # 0: up to label56
+# BB#22: # %my_popcount.exit
+ # in Loop: Header=BB18_1 Depth=1
+ end_loop # label57:
+ i32.const $5=, 0
+ i32.const $9=, 0
+ i32.popcnt $push34=, $10
+ i32.ne $push35=, $pop34, $4
+ br_if 3, $pop35 # 3: down to label41
+.LBB18_23: # %for.body.i1161
+ # Parent Loop BB18_1 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label58:
+ i32.const $push309=, 1
+ i32.shl $push36=, $pop309, $9
+ i32.and $push37=, $pop36, $10
+ i32.const $push308=, 0
+ i32.ne $push38=, $pop37, $pop308
+ i32.add $5=, $pop38, $5
+ i32.const $push307=, 1
+ i32.add $9=, $9, $pop307
+ i32.const $push306=, 32
+ i32.ne $push39=, $9, $pop306
+ br_if 0, $pop39 # 0: up to label58
+# BB#24: # %my_parity.exit
+ # in Loop: Header=BB18_1 Depth=1
+ end_loop # label59:
+ i32.xor $push40=, $5, $4
+ i32.const $push310=, 1
+ i32.and $push41=, $pop40, $pop310
+ br_if 2, $pop41 # 2: down to label42
+# BB#25: # %for.cond
+ # in Loop: Header=BB18_1 Depth=1
+ i32.const $push276=, 1
+ i32.add $0=, $0, $pop276
+ i32.const $2=, 0
+ i32.const $push275=, 12
+ i32.le_u $push42=, $0, $pop275
+ br_if 0, $pop42 # 0: up to label43
+.LBB18_26: # %for.body41
+ # =>This Loop Header: Depth=1
+ # Child Loop BB18_27 Depth 2
+ # Child Loop BB18_33 Depth 2
+ # Child Loop BB18_37 Depth 2
+ # Child Loop BB18_43 Depth 2
+ # Child Loop BB18_46 Depth 2
+ # Child Loop BB18_48 Depth 2
+ end_loop # label44:
+ block
+ block
+ block
+ block
+ loop # label64:
+ i32.const $push43=, 2
+ i32.shl $push44=, $2, $pop43
+ tee_local $push316=, $0=, $pop44
+ i32.load $push4=, longs($pop316)
+ tee_local $push315=, $10=, $pop4
+ i32.ctz $push46=, $pop315
+ tee_local $push314=, $1=, $pop46
+ i32.const $push313=, 1
+ i32.add $push47=, $pop314, $pop313
+ i32.const $push312=, 0
+ i32.select $5=, $pop47, $pop312, $10
+ i32.const $9=, 0
+ i32.const $4=, 0
+ block
+ i32.const $push386=, 0
+ i32.eq $push387=, $10, $pop386
+ br_if 0, $pop387 # 0: down to label66
+.LBB18_27: # %for.body.i1251
+ # Parent Loop BB18_26 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label67:
+ i32.const $push317=, 1
+ i32.shl $push48=, $pop317, $9
+ i32.and $push49=, $pop48, $10
+ br_if 1, $pop49 # 1: down to label68
+# BB#28: # %for.inc.i1254
+ # in Loop: Header=BB18_27 Depth=2
+ i32.const $push50=, 1
+ i32.add $9=, $9, $pop50
+ i32.const $push51=, 32
+ i32.lt_u $push52=, $9, $pop51
+ br_if 0, $pop52 # 0: up to label67
+.LBB18_29: # %for.end.i1257
+ # in Loop: Header=BB18_26 Depth=1
+ end_loop # label68:
+ i32.const $push53=, 1
+ i32.add $4=, $9, $pop53
+.LBB18_30: # %my_ffsl.exit
+ # in Loop: Header=BB18_26 Depth=1
+ end_block # label66:
+ i32.ne $push54=, $5, $4
+ br_if 5, $pop54 # 5: down to label60
+# BB#31: # %if.end49
+ # in Loop: Header=BB18_26 Depth=1
+ block
+ i32.const $push388=, 0
+ i32.eq $push389=, $10, $pop388
+ br_if 0, $pop389 # 0: down to label69
+# BB#32: # %land.lhs.true52
+ # in Loop: Header=BB18_26 Depth=1
+ i32.clz $5=, $10
+ i32.const $9=, 0
+ i32.const $4=, 31
+.LBB18_33: # %for.body.i1346
+ # Parent Loop BB18_26 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label70:
+ i32.const $push318=, 1
+ i32.shl $push55=, $pop318, $4
+ i32.and $push56=, $pop55, $10
+ br_if 1, $pop56 # 1: down to label71
+# BB#34: # %for.inc.i1349
+ # in Loop: Header=BB18_33 Depth=2
+ i32.const $push319=, 1
+ i32.add $9=, $9, $pop319
+ i32.const $push57=, -1
+ i32.add $4=, $4, $pop57
+ i32.const $push58=, 32
+ i32.lt_u $push59=, $9, $pop58
+ br_if 0, $pop59 # 0: up to label70
+.LBB18_35: # %my_clzl.exit
+ # in Loop: Header=BB18_26 Depth=1
+ end_loop # label71:
+ block
+ i32.ne $push60=, $5, $9
+ br_if 0, $pop60 # 0: down to label72
+# BB#36: # %land.lhs.true61
+ # in Loop: Header=BB18_26 Depth=1
+ i32.const $9=, 0
+.LBB18_37: # %for.body.i1438
+ # Parent Loop BB18_26 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label73:
+ i32.const $push320=, 1
+ i32.shl $push61=, $pop320, $9
+ i32.and $push62=, $pop61, $10
+ br_if 1, $pop62 # 1: down to label74
+# BB#38: # %for.inc.i1441
+ # in Loop: Header=BB18_37 Depth=2
+ i32.const $push321=, 1
+ i32.add $9=, $9, $pop321
+ i32.const $push63=, 32
+ i32.lt_u $push64=, $9, $pop63
+ br_if 0, $pop64 # 0: up to label73
+.LBB18_39: # %my_ctzl.exit
+ # in Loop: Header=BB18_26 Depth=1
+ end_loop # label74:
+ i32.eq $push65=, $1, $9
+ br_if 1, $pop65 # 1: down to label69
+# BB#40: # %if.then66
+ call abort@FUNCTION
+ unreachable
+.LBB18_41: # %if.then57
+ end_block # label72:
+ call abort@FUNCTION
+ unreachable
+.LBB18_42: # %if.end67
+ # in Loop: Header=BB18_26 Depth=1
+ end_block # label69:
+ i32.call $1=, __builtin_clrsbl@FUNCTION, $10
+ i32.const $push45=, longs
+ i32.add $push3=, $0, $pop45
+ i32.load $push5=, 0($pop3)
+ tee_local $push322=, $10=, $pop5
+ i32.const $push66=, 31
+ i32.shr_u $4=, $pop322, $pop66
+ i32.const $9=, 30
+ i32.const $5=, 1
+.LBB18_43: # %for.body.i1532
+ # Parent Loop BB18_26 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label75:
+ i32.shr_u $push67=, $10, $9
+ i32.const $push323=, 1
+ i32.and $push68=, $pop67, $pop323
+ i32.ne $push69=, $pop68, $4
+ br_if 1, $pop69 # 1: down to label76
+# BB#44: # %for.inc.i1535
+ # in Loop: Header=BB18_43 Depth=2
+ i32.const $push70=, 1
+ i32.add $5=, $5, $pop70
+ i32.const $push71=, -1
+ i32.add $9=, $9, $pop71
+ i32.const $push72=, 32
+ i32.lt_u $push73=, $5, $pop72
+ br_if 0, $pop73 # 0: up to label75
+.LBB18_45: # %my_clrsbl.exit
+ # in Loop: Header=BB18_26 Depth=1
+ end_loop # label76:
+ i32.const $4=, 0
+ i32.const $9=, 0
+ i32.const $push74=, -1
+ i32.add $push75=, $5, $pop74
+ i32.ne $push76=, $1, $pop75
+ br_if 4, $pop76 # 4: down to label61
+.LBB18_46: # %for.body.i1630
+ # Parent Loop BB18_26 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label77:
+ i32.const $push77=, 1
+ i32.shl $push78=, $pop77, $9
+ i32.and $push79=, $pop78, $10
+ i32.const $push325=, 0
+ i32.ne $push80=, $pop79, $pop325
+ i32.add $4=, $pop80, $4
+ i32.const $push324=, 1
+ i32.add $9=, $9, $pop324
+ i32.const $push81=, 32
+ i32.ne $push82=, $9, $pop81
+ br_if 0, $pop82 # 0: up to label77
+# BB#47: # %my_popcountl.exit
+ # in Loop: Header=BB18_26 Depth=1
+ end_loop # label78:
+ i32.const $5=, 0
+ i32.const $9=, 0
+ i32.popcnt $push83=, $10
+ i32.ne $push84=, $pop83, $4
+ br_if 3, $pop84 # 3: down to label62
+.LBB18_48: # %for.body.i1723
+ # Parent Loop BB18_26 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label79:
+ i32.const $push328=, 1
+ i32.shl $push85=, $pop328, $9
+ i32.and $push86=, $pop85, $10
+ i32.const $push327=, 0
+ i32.ne $push87=, $pop86, $pop327
+ i32.add $5=, $pop87, $5
+ i32.const $push326=, 1
+ i32.add $9=, $9, $pop326
+ i32.const $push88=, 32
+ i32.ne $push89=, $9, $pop88
+ br_if 0, $pop89 # 0: up to label79
+# BB#49: # %my_parityl.exit
+ # in Loop: Header=BB18_26 Depth=1
+ end_loop # label80:
+ i32.xor $push90=, $5, $4
+ i32.const $push329=, 1
+ i32.and $push91=, $pop90, $pop329
+ br_if 2, $pop91 # 2: down to label63
+# BB#50: # %for.cond39
+ # in Loop: Header=BB18_26 Depth=1
+ i32.const $push311=, 1
+ i32.add $2=, $2, $pop311
+ i32.const $4=, 0
+ i32.const $push92=, 12
+ i32.le_u $push93=, $2, $pop92
+ br_if 0, $pop93 # 0: up to label64
+.LBB18_51: # %for.body92
+ # =>This Loop Header: Depth=1
+ # Child Loop BB18_52 Depth 2
+ # Child Loop BB18_58 Depth 2
+ # Child Loop BB18_62 Depth 2
+ # Child Loop BB18_68 Depth 2
+ # Child Loop BB18_72 Depth 2
+ # Child Loop BB18_74 Depth 2
+ end_loop # label65:
+ block
+ block
+ block
+ block
+ loop # label85:
+ i32.const $push337=, 0
+ i32.const $push94=, 3
+ i32.shl $push95=, $4, $pop94
+ tee_local $push336=, $0=, $pop95
+ i64.load $push7=, longlongs($pop336)
+ tee_local $push335=, $8=, $pop7
+ i64.ctz $push97=, $pop335
+ tee_local $push334=, $3=, $pop97
+ i64.const $push333=, 1
+ i64.add $push98=, $pop334, $pop333
+ i32.wrap/i64 $push100=, $pop98
+ i64.const $push332=, 0
+ i64.eq $push99=, $8, $pop332
+ tee_local $push331=, $5=, $pop99
+ i32.select $2=, $pop337, $pop100, $pop331
+ i64.const $7=, 0
+ i32.const $9=, 0
+ i32.const $10=, 0
+ block
+ br_if 0, $5 # 0: down to label87
+.LBB18_52: # %for.body.i1814
+ # Parent Loop BB18_51 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label88:
+ i64.const $push339=, 1
+ i64.shl $push101=, $pop339, $7
+ i64.and $push102=, $pop101, $8
+ i64.const $push338=, 0
+ i64.ne $push103=, $pop102, $pop338
+ br_if 1, $pop103 # 1: down to label89
+# BB#53: # %for.inc.i1818
+ # in Loop: Header=BB18_52 Depth=2
+ i32.const $push105=, 1
+ i32.add $9=, $9, $pop105
+ i64.const $push104=, 1
+ i64.add $7=, $7, $pop104
+ i64.const $push106=, 64
+ i64.lt_u $push107=, $7, $pop106
+ br_if 0, $pop107 # 0: up to label88
+.LBB18_54: # %for.end.i1821
+ # in Loop: Header=BB18_51 Depth=1
+ end_loop # label89:
+ i32.const $push108=, 1
+ i32.add $10=, $9, $pop108
+.LBB18_55: # %my_ffsll.exit1823
+ # in Loop: Header=BB18_51 Depth=1
+ end_block # label87:
+ i32.ne $push109=, $2, $10
+ br_if 5, $pop109 # 5: down to label81
+# BB#56: # %if.end100
+ # in Loop: Header=BB18_51 Depth=1
+ i64.const $7=, 0
+ block
+ i64.const $push340=, 0
+ i64.eq $push110=, $8, $pop340
+ br_if 0, $pop110 # 0: down to label90
+# BB#57: # %land.lhs.true103
+ # in Loop: Header=BB18_51 Depth=1
+ i64.const $6=, 63
+ i64.clz $push111=, $8
+ i32.wrap/i64 $10=, $pop111
+ i32.const $9=, 0
+.LBB18_58: # %for.body.i1902
+ # Parent Loop BB18_51 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label91:
+ i64.const $push341=, 1
+ i64.const $push112=, 4294967295
+ i64.and $push113=, $6, $pop112
+ i64.shl $push114=, $pop341, $pop113
+ i64.and $push115=, $pop114, $8
+ i64.const $push116=, 0
+ i64.ne $push117=, $pop115, $pop116
+ br_if 1, $pop117 # 1: down to label92
+# BB#59: # %for.inc.i1906
+ # in Loop: Header=BB18_58 Depth=2
+ i32.const $push118=, 1
+ i32.add $9=, $9, $pop118
+ i64.const $push342=, 1
+ i64.add $7=, $7, $pop342
+ i64.const $push119=, -1
+ i64.add $6=, $6, $pop119
+ i64.const $push120=, 64
+ i64.lt_u $push121=, $7, $pop120
+ br_if 0, $pop121 # 0: up to label91
+.LBB18_60: # %my_clzll.exit1909
+ # in Loop: Header=BB18_51 Depth=1
+ end_loop # label92:
+ block
+ i32.ne $push122=, $10, $9
+ br_if 0, $pop122 # 0: down to label93
+# BB#61: # %land.lhs.true113
+ # in Loop: Header=BB18_51 Depth=1
+ i64.const $7=, 0
+ i32.wrap/i64 $10=, $3
+ i32.const $9=, 0
+.LBB18_62: # %for.body.i1948
+ # Parent Loop BB18_51 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label94:
+ i64.const $push344=, 1
+ i64.shl $push123=, $pop344, $7
+ i64.and $push124=, $pop123, $8
+ i64.const $push343=, 0
+ i64.ne $push125=, $pop124, $pop343
+ br_if 1, $pop125 # 1: down to label95
+# BB#63: # %for.inc.i1952
+ # in Loop: Header=BB18_62 Depth=2
+ i32.const $push126=, 1
+ i32.add $9=, $9, $pop126
+ i64.const $push345=, 1
+ i64.add $7=, $7, $pop345
+ i64.const $push127=, 64
+ i64.lt_u $push128=, $7, $pop127
+ br_if 0, $pop128 # 0: up to label94
+.LBB18_64: # %my_ctzll.exit1955
+ # in Loop: Header=BB18_51 Depth=1
+ end_loop # label95:
+ i32.eq $push129=, $10, $9
+ br_if 1, $pop129 # 1: down to label90
+# BB#65: # %if.then119
+ call abort@FUNCTION
+ unreachable
+.LBB18_66: # %if.then109
+ end_block # label93:
+ call abort@FUNCTION
+ unreachable
+.LBB18_67: # %if.end120
+ # in Loop: Header=BB18_51 Depth=1
+ end_block # label90:
+ i32.call $10=, __builtin_clrsbll@FUNCTION, $8
+ i32.const $push96=, longlongs
+ i32.add $push6=, $0, $pop96
+ i64.load $push8=, 0($pop6)
+ tee_local $push346=, $8=, $pop8
+ i64.const $push130=, 63
+ i64.shr_u $3=, $pop346, $pop130
+ i64.const $7=, 62
+ i64.const $6=, 1
+ i32.const $9=, 1
+.LBB18_68: # %for.body.i2018
+ # Parent Loop BB18_51 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label96:
+ i64.shr_u $push131=, $8, $7
+ i64.const $push347=, 1
+ i64.and $push132=, $pop131, $pop347
+ i64.ne $push133=, $pop132, $3
+ br_if 1, $pop133 # 1: down to label97
+# BB#69: # %for.inc.i2022
+ # in Loop: Header=BB18_68 Depth=2
+ i32.const $push135=, 1
+ i32.add $9=, $9, $pop135
+ i64.const $push134=, 1
+ i64.add $6=, $6, $pop134
+ i64.const $push136=, -1
+ i64.add $7=, $7, $pop136
+ i64.const $push137=, 64
+ i64.lt_u $push138=, $6, $pop137
+ br_if 0, $pop138 # 0: up to label96
+.LBB18_70: # %my_clrsbll.exit2026
+ # in Loop: Header=BB18_51 Depth=1
+ end_loop # label97:
+ i32.const $push139=, -1
+ i32.add $push140=, $9, $pop139
+ i32.ne $push141=, $10, $pop140
+ br_if 4, $pop141 # 4: down to label82
+# BB#71: # %if.end127
+ # in Loop: Header=BB18_51 Depth=1
+ i64.popcnt $6=, $8
+ i64.const $7=, 0
+ i32.const $9=, 0
+.LBB18_72: # %for.body.i2110
+ # Parent Loop BB18_51 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label98:
+ i64.const $push142=, 1
+ i64.shl $push143=, $pop142, $7
+ i64.and $push144=, $pop143, $8
+ i64.const $push349=, 0
+ i64.ne $push145=, $pop144, $pop349
+ i32.add $9=, $pop145, $9
+ i64.const $push348=, 1
+ i64.add $7=, $7, $pop348
+ i64.const $push146=, 64
+ i64.ne $push147=, $7, $pop146
+ br_if 0, $pop147 # 0: up to label98
+# BB#73: # %my_popcountll.exit2112
+ # in Loop: Header=BB18_51 Depth=1
+ end_loop # label99:
+ i64.const $7=, 0
+ i32.const $10=, 0
+ i32.wrap/i64 $push148=, $6
+ i32.ne $push149=, $pop148, $9
+ br_if 3, $pop149 # 3: down to label83
+.LBB18_74: # %for.body.i2196
+ # Parent Loop BB18_51 Depth=1
+ # => This Inner Loop Header: Depth=2
+ loop # label100:
+ i64.const $push150=, 1
+ i64.shl $push151=, $pop150, $7
+ i64.and $push152=, $pop151, $8
+ i64.const $push351=, 0
+ i64.ne $push153=, $pop152, $pop351
+ i32.add $10=, $pop153, $10
+ i64.const $push350=, 1
+ i64.add $7=, $7, $pop350
+ i64.const $push154=, 64
+ i64.ne $push155=, $7, $pop154
+ br_if 0, $pop155 # 0: up to label100
+# BB#75: # %my_parityll.exit2199
+ # in Loop: Header=BB18_51 Depth=1
+ end_loop # label101:
+ i32.xor $push156=, $10, $9
+ i32.const $push157=, 1
+ i32.and $push158=, $pop156, $pop157
+ br_if 2, $pop158 # 2: down to label84
+# BB#76: # %for.cond90
+ # in Loop: Header=BB18_51 Depth=1
+ i32.const $push330=, 1
+ i32.add $4=, $4, $pop330
+ i32.const $push159=, 12
+ i32.le_u $push160=, $4, $pop159
+ br_if 0, $pop160 # 0: up to label85
+# BB#77: # %if.end148
+ end_loop # label86:
+ block
+ i32.const $push161=, 0
+ i32.call $push162=, __builtin_clrsb@FUNCTION, $pop161
+ i32.const $push163=, 31
+ i32.ne $push164=, $pop162, $pop163
+ br_if 0, $pop164 # 0: down to label102
+# BB#78: # %my_clrsb.exit2770
+ block
+ i32.const $push165=, 1
+ i32.call $push166=, __builtin_clrsb@FUNCTION, $pop165
+ i32.const $push167=, 30
+ i32.ne $push168=, $pop166, $pop167
+ br_if 0, $pop168 # 0: down to label103
+# BB#79: # %if.end198
+ block
+ i32.const $push169=, -2147483648
+ i32.call $push170=, __builtin_clrsb@FUNCTION, $pop169
+ br_if 0, $pop170 # 0: down to label104
+# BB#80: # %my_clrsb.exit2597
+ block
+ i32.const $push171=, 1073741824
+ i32.call $push172=, __builtin_clrsb@FUNCTION, $pop171
+ br_if 0, $pop172 # 0: down to label105
+# BB#81: # %my_clrsb.exit2514
+ block
+ i32.const $push173=, 65536
+ i32.call $push174=, __builtin_clrsb@FUNCTION, $pop173
+ i32.const $push175=, 14
+ i32.ne $push176=, $pop174, $pop175
+ br_if 0, $pop176 # 0: down to label106
+# BB#82: # %my_clrsb.exit2432
+ block
+ i32.const $push177=, 32768
+ i32.call $push178=, __builtin_clrsb@FUNCTION, $pop177
+ i32.const $push179=, 15
+ i32.ne $push180=, $pop178, $pop179
+ br_if 0, $pop180 # 0: down to label107
+# BB#83: # %my_clrsb.exit2348
+ block
+ i32.const $push181=, -1515870811
+ i32.call $push182=, __builtin_clrsb@FUNCTION, $pop181
+ br_if 0, $pop182 # 0: down to label108
+# BB#84: # %my_clrsb.exit2273
+ block
+ i32.const $push183=, 1515870810
+ i32.call $push184=, __builtin_clrsb@FUNCTION, $pop183
+ br_if 0, $pop184 # 0: down to label109
+# BB#85: # %for.body.i2179
+ block
+ i32.const $push185=, -889323520
+ i32.call $push186=, __builtin_clrsb@FUNCTION, $pop185
+ i32.const $push187=, 1
+ i32.ne $push188=, $pop186, $pop187
+ br_if 0, $pop188 # 0: down to label110
+# BB#86: # %for.body.i2093
+ block
+ i32.const $push189=, 13303296
+ i32.call $push190=, __builtin_clrsb@FUNCTION, $pop189
+ i32.const $push191=, 7
+ i32.ne $push192=, $pop190, $pop191
+ br_if 0, $pop192 # 0: down to label111
+# BB#87: # %for.body.i2004
+ block
+ i32.const $push193=, 51966
+ i32.call $push194=, __builtin_clrsb@FUNCTION, $pop193
+ i32.const $push195=, 15
+ i32.ne $push196=, $pop194, $pop195
+ br_if 0, $pop196 # 0: down to label112
+# BB#88: # %if.end423
+ i32.const $push352=, -1
+ i32.call $4=, __builtin_clrsb@FUNCTION, $pop352
+ i32.const $10=, 30
+ i32.const $9=, 1
+.LBB18_89: # %for.body.i1935
+ # =>This Inner Loop Header: Depth=1
+ loop # label113:
+ i32.const $push354=, -1
+ i32.shr_u $push197=, $pop354, $10
+ i32.const $push353=, 1
+ i32.and $push198=, $pop197, $pop353
+ i32.const $push390=, 0
+ i32.eq $push391=, $pop198, $pop390
+ br_if 1, $pop391 # 1: down to label114
+# BB#90: # %for.inc.i1938
+ # in Loop: Header=BB18_89 Depth=1
+ i32.const $push357=, 1
+ i32.add $9=, $9, $pop357
+ i32.const $push356=, -1
+ i32.add $10=, $10, $pop356
+ i32.const $push355=, 32
+ i32.lt_u $push199=, $9, $pop355
+ br_if 0, $pop199 # 0: up to label113
+.LBB18_91: # %my_clrsb.exit1942
+ end_loop # label114:
+ block
+ i32.const $push200=, -1
+ i32.add $push201=, $9, $pop200
+ i32.ne $push202=, $4, $pop201
+ br_if 0, $pop202 # 0: down to label115
+# BB#92: # %if.end440
+ i64.const $8=, 0
+ i64.const $7=, 63
+ i32.const $9=, 0
+ block
+ i64.const $push358=, 0
+ i32.call $push203=, __builtin_clrsbll@FUNCTION, $pop358
+ i32.const $push204=, 63
+ i32.ne $push205=, $pop203, $pop204
+ br_if 0, $pop205 # 0: down to label116
+.LBB18_93: # %for.body.i1844
+ # =>This Inner Loop Header: Depth=1
+ loop # label117:
+ i32.wrap/i64 $push206=, $7
+ i32.const $push392=, 0
+ i32.eq $push393=, $pop206, $pop392
+ br_if 1, $pop393 # 1: down to label118
+# BB#94: # %for.inc.i1848
+ # in Loop: Header=BB18_93 Depth=1
+ i32.const $push208=, 1
+ i32.add $9=, $9, $pop208
+ i64.const $push207=, 1
+ i64.add $8=, $8, $pop207
+ i64.const $push209=, -1
+ i64.add $7=, $7, $pop209
+ i64.const $push210=, 64
+ i64.lt_u $push211=, $8, $pop210
+ br_if 0, $pop211 # 0: up to label117
+.LBB18_95: # %my_clzll.exit1851
+ end_loop # label118:
+ block
+ i32.const $push212=, 63
+ i32.ne $push213=, $9, $pop212
+ br_if 0, $pop213 # 0: down to label119
+# BB#96: # %if.end465
+ i64.const $push359=, 1
+ i32.call $10=, __builtin_clrsbll@FUNCTION, $pop359
+ i64.const $7=, 1
+.LBB18_97: # %for.body.i1799
+ # =>This Inner Loop Header: Depth=1
+ loop # label120:
+ i32.const $9=, 62
+ i64.const $push360=, 63
+ i64.eq $push214=, $7, $pop360
+ br_if 1, $pop214 # 1: down to label121
+# BB#98: # %for.inc.i1803
+ # in Loop: Header=BB18_97 Depth=1
+ i64.const $push362=, 1
+ i64.add $7=, $7, $pop362
+ i32.const $9=, 63
+ i64.const $push361=, 64
+ i64.lt_u $push215=, $7, $pop361
+ br_if 0, $pop215 # 0: up to label120
+.LBB18_99: # %my_clrsbll.exit1807
+ end_loop # label121:
+ i64.const $8=, 0
+ i64.const $7=, 0
+ block
+ i32.ne $push216=, $10, $9
+ br_if 0, $pop216 # 0: down to label122
+.LBB18_100: # %for.body.i1759
+ # =>This Inner Loop Header: Depth=1
+ block
+ loop # label124:
+ i64.const $push363=, 63
+ i64.eq $push217=, $7, $pop363
+ br_if 2, $pop217 # 2: down to label123
+# BB#101: # %for.inc.i1763
+ # in Loop: Header=BB18_100 Depth=1
+ i64.const $push218=, 1
+ i64.add $7=, $7, $pop218
+ i64.const $push219=, 64
+ i64.lt_u $push220=, $7, $pop219
+ br_if 0, $pop220 # 0: up to label124
+# BB#102: # %if.then481
+ end_loop # label125:
+ call abort@FUNCTION
+ unreachable
+.LBB18_103: # %for.body.i1731
+ # =>This Inner Loop Header: Depth=1
+ end_block # label123:
+ block
+ loop # label127:
+ i64.const $push364=, 63
+ i64.eq $push221=, $8, $pop364
+ br_if 2, $pop221 # 2: down to label126
+# BB#104: # %for.inc.i1735
+ # in Loop: Header=BB18_103 Depth=1
+ i64.const $push222=, 1
+ i64.add $8=, $8, $pop222
+ i64.const $push223=, 64
+ i64.lt_u $push224=, $8, $pop223
+ br_if 0, $pop224 # 0: up to label127
+# BB#105: # %if.then489
+ end_loop # label128:
+ call abort@FUNCTION
+ unreachable
+.LBB18_106: # %if.end490
+ end_block # label126:
+ block
+ i64.const $push225=, -9223372036854775808
+ i32.call $push226=, __builtin_clrsbll@FUNCTION, $pop225
+ br_if 0, $pop226 # 0: down to label129
+# BB#107: # %for.body.i1665
+ i64.const $7=, 63
+ i64.const $8=, -1
+.LBB18_108: # %for.body.i1652
+ # =>This Inner Loop Header: Depth=1
+ loop # label130:
+ i64.const $push367=, 1
+ i64.add $8=, $8, $pop367
+ i64.const $push366=, -1
+ i64.add $6=, $7, $pop366
+ i32.wrap/i64 $9=, $7
+ copy_local $7=, $6
+ i32.const $push365=, 1
+ i32.ne $push227=, $9, $pop365
+ br_if 0, $pop227 # 0: up to label130
+# BB#109: # %my_clzll.exit1659
+ end_loop # label131:
+ block
+ i32.wrap/i64 $push228=, $8
+ i32.const $push229=, 62
+ i32.ne $push230=, $pop228, $pop229
+ br_if 0, $pop230 # 0: down to label132
+# BB#110: # %for.body.i1612
+ block
+ i64.const $push231=, 2
+ i32.call $push232=, __builtin_clrsbll@FUNCTION, $pop231
+ i32.const $push233=, 61
+ i32.ne $push234=, $pop232, $pop233
+ br_if 0, $pop234 # 0: down to label133
+# BB#111: # %my_clrsbll.exit1525
+ block
+ i64.const $push235=, 4611686018427387904
+ i32.call $push236=, __builtin_clrsbll@FUNCTION, $pop235
+ br_if 0, $pop236 # 0: down to label134
+# BB#112: # %for.body.i1425
+ block
+ i64.const $push237=, 4294967296
+ i32.call $push238=, __builtin_clrsbll@FUNCTION, $pop237
+ i32.const $push239=, 30
+ i32.ne $push240=, $pop238, $pop239
+ br_if 0, $pop240 # 0: down to label135
+# BB#113: # %for.body.i1332
+ block
+ i64.const $push241=, 2147483648
+ i32.call $push242=, __builtin_clrsbll@FUNCTION, $pop241
+ i32.const $push243=, 31
+ i32.ne $push244=, $pop242, $pop243
+ br_if 0, $pop244 # 0: down to label136
+# BB#114: # %my_clrsbll.exit1245
+ block
+ i64.const $push245=, -6510615555426900571
+ i32.call $push246=, __builtin_clrsbll@FUNCTION, $pop245
+ br_if 0, $pop246 # 0: down to label137
+# BB#115: # %my_clrsbll.exit1152
+ block
+ i64.const $push247=, 6510615555426900570
+ i32.call $push248=, __builtin_clrsbll@FUNCTION, $pop247
+ br_if 0, $pop248 # 0: down to label138
+# BB#116: # %for.body.i1053
+ block
+ i64.const $push249=, -3819392241693097984
+ i32.call $push250=, __builtin_clrsbll@FUNCTION, $pop249
+ i32.const $push251=, 1
+ i32.ne $push252=, $pop250, $pop251
+ br_if 0, $pop252 # 0: down to label139
+# BB#117: # %for.body.i964
+ block
+ i64.const $push253=, 223195676147712
+ i32.call $push254=, __builtin_clrsbll@FUNCTION, $pop253
+ i32.const $push255=, 15
+ i32.ne $push256=, $pop254, $pop255
+ br_if 0, $pop256 # 0: down to label140
+# BB#118: # %for.body.i925
+ i64.const $7=, 63
+ i64.const $8=, -1
+.LBB18_119: # %for.body.i913
+ # =>This Inner Loop Header: Depth=1
+ loop # label141:
+ i64.const $push373=, 4294967295
+ i64.and $6=, $7, $pop373
+ i64.const $push372=, 1
+ i64.add $8=, $8, $pop372
+ i64.const $push371=, -1
+ i64.add $7=, $7, $pop371
+ i64.const $push370=, 1
+ i64.shl $push257=, $pop370, $6
+ i64.const $push369=, 3405695742
+ i64.and $push258=, $pop257, $pop369
+ i64.const $push368=, 0
+ i64.eq $push259=, $pop258, $pop368
+ br_if 0, $pop259 # 0: up to label141
+# BB#120: # %my_clzll.exit
+ end_loop # label142:
+ block
+ i32.wrap/i64 $push260=, $8
+ i32.const $push261=, 32
+ i32.ne $push262=, $pop260, $pop261
+ br_if 0, $pop262 # 0: down to label143
+# BB#121: # %for.body.i877
+ block
+ i64.const $push263=, 3405695742
+ i32.call $push264=, __builtin_clrsbll@FUNCTION, $pop263
+ i32.const $push265=, 31
+ i32.ne $push266=, $pop264, $pop265
+ br_if 0, $pop266 # 0: down to label144
+# BB#122: # %if.end740
+ i64.const $push374=, -1
+ i32.call $10=, __builtin_clrsbll@FUNCTION, $pop374
+ i64.const $7=, 62
+ i64.const $8=, 1
+ i32.const $9=, 1
+.LBB18_123: # %for.body.i812
+ # =>This Inner Loop Header: Depth=1
+ loop # label145:
+ i64.const $push377=, -1
+ i64.shr_u $push267=, $pop377, $7
+ i64.const $push376=, 1
+ i64.and $push268=, $pop267, $pop376
+ i64.const $push375=, 0
+ i64.eq $push269=, $pop268, $pop375
+ br_if 1, $pop269 # 1: down to label146
+# BB#124: # %for.inc.i816
+ # in Loop: Header=BB18_123 Depth=1
+ i64.const $push381=, 1
+ i64.add $8=, $8, $pop381
+ i32.const $push380=, 1
+ i32.add $9=, $9, $pop380
+ i64.const $push379=, -1
+ i64.add $7=, $7, $pop379
+ i64.const $push378=, 64
+ i64.lt_u $push270=, $8, $pop378
+ br_if 0, $pop270 # 0: up to label145
+.LBB18_125: # %my_clrsbll.exit
+ end_loop # label146:
+ block
+ i32.const $push271=, -1
+ i32.add $push272=, $9, $pop271
+ i32.ne $push273=, $10, $pop272
+ br_if 0, $pop273 # 0: down to label147
+# BB#126: # %if.end753
+ i32.const $push274=, 0
+ call exit@FUNCTION, $pop274
+ unreachable
+.LBB18_127: # %if.then744
+ end_block # label147:
+ call abort@FUNCTION
+ unreachable
+.LBB18_128: # %if.then719
+ end_block # label144:
+ call abort@FUNCTION
+ unreachable
+.LBB18_129: # %if.then710
+ end_block # label143:
+ call abort@FUNCTION
+ unreachable
+.LBB18_130: # %if.then694
+ end_block # label140:
+ call abort@FUNCTION
+ unreachable
+.LBB18_131: # %if.then669
+ end_block # label139:
+ call abort@FUNCTION
+ unreachable
+.LBB18_132: # %if.then644
+ end_block # label138:
+ call abort@FUNCTION
+ unreachable
+.LBB18_133: # %if.then619
+ end_block # label137:
+ call abort@FUNCTION
+ unreachable
+.LBB18_134: # %if.then594
+ end_block # label136:
+ call abort@FUNCTION
+ unreachable
+.LBB18_135: # %if.then569
+ end_block # label135:
+ call abort@FUNCTION
+ unreachable
+.LBB18_136: # %if.then544
+ end_block # label134:
+ call abort@FUNCTION
+ unreachable
+.LBB18_137: # %if.then519
+ end_block # label133:
+ call abort@FUNCTION
+ unreachable
+.LBB18_138: # %if.then510
+ end_block # label132:
+ call abort@FUNCTION
+ unreachable
+.LBB18_139: # %if.then494
+ end_block # label129:
+ call abort@FUNCTION
+ unreachable
+.LBB18_140: # %if.then469
+ end_block # label122:
+ call abort@FUNCTION
+ unreachable
+.LBB18_141: # %if.then460
+ end_block # label119:
+ call abort@FUNCTION
+ unreachable
+.LBB18_142: # %if.then444
+ end_block # label116:
+ call abort@FUNCTION
+ unreachable
+.LBB18_143: # %if.then427
+ end_block # label115:
+ call abort@FUNCTION
+ unreachable
+.LBB18_144: # %if.then402
+ end_block # label112:
+ call abort@FUNCTION
+ unreachable
+.LBB18_145: # %if.then377
+ end_block # label111:
+ call abort@FUNCTION
+ unreachable
+.LBB18_146: # %if.then352
+ end_block # label110:
+ call abort@FUNCTION
+ unreachable
+.LBB18_147: # %if.then327
+ end_block # label109:
+ call abort@FUNCTION
+ unreachable
+.LBB18_148: # %if.then302
+ end_block # label108:
+ call abort@FUNCTION
+ unreachable
+.LBB18_149: # %if.then277
+ end_block # label107:
+ call abort@FUNCTION
+ unreachable
+.LBB18_150: # %if.then252
+ end_block # label106:
+ call abort@FUNCTION
+ unreachable
+.LBB18_151: # %if.then227
+ end_block # label105:
+ call abort@FUNCTION
+ unreachable
+.LBB18_152: # %if.then202
+ end_block # label104:
+ call abort@FUNCTION
+ unreachable
+.LBB18_153: # %if.then177
+ end_block # label103:
+ call abort@FUNCTION
+ unreachable
+.LBB18_154: # %if.then152
+ end_block # label102:
+ call abort@FUNCTION
+ unreachable
+.LBB18_155: # %if.then140
+ end_block # label84:
+ call abort@FUNCTION
+ unreachable
+.LBB18_156: # %if.then133
+ end_block # label83:
+ call abort@FUNCTION
+ unreachable
+.LBB18_157: # %if.then126
+ end_block # label82:
+ call abort@FUNCTION
+ unreachable
+.LBB18_158: # %if.then99
+ end_block # label81:
+ call abort@FUNCTION
+ unreachable
+.LBB18_159: # %if.then85
+ end_block # label63:
+ call abort@FUNCTION
+ unreachable
+.LBB18_160: # %if.then79
+ end_block # label62:
+ call abort@FUNCTION
+ unreachable
+.LBB18_161: # %if.then73
+ end_block # label61:
+ call abort@FUNCTION
+ unreachable
+.LBB18_162: # %if.then48
+ end_block # label60:
+ call abort@FUNCTION
+ unreachable
+.LBB18_163: # %if.then37
+ end_block # label42:
+ call abort@FUNCTION
+ unreachable
+.LBB18_164: # %if.then31
+ end_block # label41:
+ call abort@FUNCTION
+ unreachable
+.LBB18_165: # %if.then25
+ end_block # label40:
+ call abort@FUNCTION
+ unreachable
+.LBB18_166: # %if.then
+ end_block # label39:
+ call abort@FUNCTION
+ unreachable
+ .endfunc
+.Lfunc_end18:
+ .size main, .Lfunc_end18-main
+
+ .hidden ints # @ints
+ .type ints,@object
+ .section .data.ints,"aw",@progbits
+ .globl ints
+ .p2align 4
+ints:
+ .int32 0 # 0x0
+ .int32 1 # 0x1
+ .int32 2147483648 # 0x80000000
+ .int32 2 # 0x2
+ .int32 1073741824 # 0x40000000
+ .int32 65536 # 0x10000
+ .int32 32768 # 0x8000
+ .int32 2779096485 # 0xa5a5a5a5
+ .int32 1515870810 # 0x5a5a5a5a
+ .int32 3405643776 # 0xcafe0000
+ .int32 13303296 # 0xcafe00
+ .int32 51966 # 0xcafe
+ .int32 4294967295 # 0xffffffff
+ .size ints, 52
+
+ .hidden longs # @longs
+ .type longs,@object
+ .section .data.longs,"aw",@progbits
+ .globl longs
+ .p2align 4
+longs:
+ .int32 0 # 0x0
+ .int32 1 # 0x1
+ .int32 2147483648 # 0x80000000
+ .int32 2 # 0x2
+ .int32 1073741824 # 0x40000000
+ .int32 65536 # 0x10000
+ .int32 32768 # 0x8000
+ .int32 2779096485 # 0xa5a5a5a5
+ .int32 1515870810 # 0x5a5a5a5a
+ .int32 3405643776 # 0xcafe0000
+ .int32 13303296 # 0xcafe00
+ .int32 51966 # 0xcafe
+ .int32 4294967295 # 0xffffffff
+ .size longs, 52
+
+ .hidden longlongs # @longlongs
+ .type longlongs,@object
+ .section .data.longlongs,"aw",@progbits
+ .globl longlongs
+ .p2align 4
+longlongs:
+ .int64 0 # 0x0
+ .int64 1 # 0x1
+ .int64 -9223372036854775808 # 0x8000000000000000
+ .int64 2 # 0x2
+ .int64 4611686018427387904 # 0x4000000000000000
+ .int64 4294967296 # 0x100000000
+ .int64 2147483648 # 0x80000000
+ .int64 -6510615555426900571 # 0xa5a5a5a5a5a5a5a5
+ .int64 6510615555426900570 # 0x5a5a5a5a5a5a5a5a
+ .int64 -3819392241693097984 # 0xcafecafe00000000
+ .int64 223195676147712 # 0xcafecafe0000
+ .int64 3405695742 # 0xcafecafe
+ .int64 -1 # 0xffffffffffffffff
+ .size longlongs, 104
+
+
+ .ident "clang version 3.9.0 "
diff --git a/test/torture-s/loop-11.c.s b/test/torture-s/loop-11.c.s
new file mode 100644
index 000000000..42f497d0c
--- /dev/null
+++ b/test/torture-s/loop-11.c.s
@@ -0,0 +1,58 @@
+ .text
+ .file "/b/build/slave/linux/build/src/src/work/gcc/gcc/testsuite/gcc.c-torture/execute/loop-11.c"
+ .section .text.main,"ax",@progbits
+ .hidden main
+ .globl main
+ .type main,@function
+main: # @main
+ .result i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $1=, 199
+ i32.const $0=, a+792
+.LBB0_1: # %for.body.i
+ # =>This Inner Loop Header: Depth=1
+ loop # label0:
+ i32.const $push11=, -1
+ i32.add $push0=, $1, $pop11
+ i32.store $1=, 0($0), $pop0
+ i32.const $push10=, -4
+ i32.add $0=, $0, $pop10
+ i32.const $3=, 0
+ i32.const $2=, a
+ i32.const $push9=, 0
+ i32.gt_s $push1=, $1, $pop9
+ br_if 0, $pop1 # 0: up to label0
+.LBB0_2: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ end_loop # label1:
+ block
+ loop # label3:
+ i32.load $push2=, 0($2)
+ i32.ne $push3=, $3, $pop2
+ br_if 2, $pop3 # 2: down to label2
+# BB#3: # %for.cond
+ # in Loop: Header=BB0_2 Depth=1
+ i32.const $push4=, 1
+ i32.add $3=, $3, $pop4
+ i32.const $push5=, 4
+ i32.add $2=, $2, $pop5
+ i32.const $push6=, 198
+ i32.le_s $push7=, $3, $pop6
+ br_if 0, $pop7 # 0: up to label3
+# BB#4: # %for.end
+ end_loop # label4:
+ i32.const $push8=, 0
+ return $pop8
+.LBB0_5: # %if.then
+ end_block # label2:
+ call abort@FUNCTION
+ unreachable
+ .endfunc
+.Lfunc_end0:
+ .size main, .Lfunc_end0-main
+
+ .type a,@object # @a
+ .lcomm a,796,4
+
+ .ident "clang version 3.9.0 "
diff --git a/test/torture-s/lshrdi-1.c.s b/test/torture-s/lshrdi-1.c.s
new file mode 100644
index 000000000..c0727f4cf
--- /dev/null
+++ b/test/torture-s/lshrdi-1.c.s
@@ -0,0 +1,139 @@
+ .text
+ .file "/b/build/slave/linux/build/src/src/work/gcc/gcc/testsuite/gcc.c-torture/execute/lshrdi-1.c"
+ .section .text.main,"ax",@progbits
+ .hidden main
+ .globl main
+ .type main,@function
+main: # @main
+ .result i32
+ .local i32, i64, i32, i32
+# BB#0: # %entry
+ i64.const $1=, 0
+ i32.const $0=, .Lswitch.table
+.LBB0_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ block
+ loop # label1:
+ i64.const $push12=, -8690466092652643696
+ i64.shr_u $push0=, $pop12, $1
+ i64.load $push1=, 0($0)
+ i64.ne $push2=, $pop0, $pop1
+ br_if 2, $pop2 # 2: down to label0
+# BB#2: # %for.cond
+ # in Loop: Header=BB0_1 Depth=1
+ i64.const $push11=, 1
+ i64.add $1=, $1, $pop11
+ i32.const $push10=, 8
+ i32.add $0=, $0, $pop10
+ i32.const $3=, 0
+ i32.const $2=, .Lswitch.table
+ i64.const $push9=, 63
+ i64.le_s $push3=, $1, $pop9
+ br_if 0, $pop3 # 0: up to label1
+.LBB0_3: # %constant_shift.exit
+ # =>This Inner Loop Header: Depth=1
+ end_loop # label2:
+ block
+ loop # label4:
+ i32.const $push4=, 1
+ i32.const $push14=, 0
+ i32.eq $push15=, $pop4, $pop14
+ br_if 2, $pop15 # 2: down to label3
+# BB#4: # %for.cond2
+ # in Loop: Header=BB0_3 Depth=1
+ i32.const $push13=, 1
+ i32.add $3=, $3, $pop13
+ i32.const $push5=, 8
+ i32.add $2=, $2, $pop5
+ i32.const $push6=, 63
+ i32.le_s $push7=, $3, $pop6
+ br_if 0, $pop7 # 0: up to label4
+# BB#5: # %for.end13
+ end_loop # label5:
+ i32.const $push8=, 0
+ call exit@FUNCTION, $pop8
+ unreachable
+.LBB0_6: # %if.then9
+ end_block # label3:
+ call abort@FUNCTION
+ unreachable
+.LBB0_7: # %if.then
+ end_block # label0:
+ call abort@FUNCTION
+ unreachable
+ .endfunc
+.Lfunc_end0:
+ .size main, .Lfunc_end0-main
+
+ .type .Lswitch.table,@object # @switch.table
+ .section .rodata..Lswitch.table,"a",@progbits
+ .p2align 4
+.Lswitch.table:
+ .int64 -8690466092652643696 # 0x87654321fedcba90
+ .int64 4878138990528453960 # 0x43b2a190ff6e5d48
+ .int64 2439069495264226980 # 0x21d950c87fb72ea4
+ .int64 1219534747632113490 # 0x10eca8643fdb9752
+ .int64 609767373816056745 # 0x87654321fedcba9
+ .int64 304883686908028372 # 0x43b2a190ff6e5d4
+ .int64 152441843454014186 # 0x21d950c87fb72ea
+ .int64 76220921727007093 # 0x10eca8643fdb975
+ .int64 38110460863503546 # 0x87654321fedcba
+ .int64 19055230431751773 # 0x43b2a190ff6e5d
+ .int64 9527615215875886 # 0x21d950c87fb72e
+ .int64 4763807607937943 # 0x10eca8643fdb97
+ .int64 2381903803968971 # 0x87654321fedcb
+ .int64 1190951901984485 # 0x43b2a190ff6e5
+ .int64 595475950992242 # 0x21d950c87fb72
+ .int64 297737975496121 # 0x10eca8643fdb9
+ .int64 148868987748060 # 0x87654321fedc
+ .int64 74434493874030 # 0x43b2a190ff6e
+ .int64 37217246937015 # 0x21d950c87fb7
+ .int64 18608623468507 # 0x10eca8643fdb
+ .int64 9304311734253 # 0x87654321fed
+ .int64 4652155867126 # 0x43b2a190ff6
+ .int64 2326077933563 # 0x21d950c87fb
+ .int64 1163038966781 # 0x10eca8643fd
+ .int64 581519483390 # 0x87654321fe
+ .int64 290759741695 # 0x43b2a190ff
+ .int64 145379870847 # 0x21d950c87f
+ .int64 72689935423 # 0x10eca8643f
+ .int64 36344967711 # 0x87654321f
+ .int64 18172483855 # 0x43b2a190f
+ .int64 9086241927 # 0x21d950c87
+ .int64 4543120963 # 0x10eca8643
+ .int64 2271560481 # 0x87654321
+ .int64 1135780240 # 0x43b2a190
+ .int64 567890120 # 0x21d950c8
+ .int64 283945060 # 0x10eca864
+ .int64 141972530 # 0x8765432
+ .int64 70986265 # 0x43b2a19
+ .int64 35493132 # 0x21d950c
+ .int64 17746566 # 0x10eca86
+ .int64 8873283 # 0x876543
+ .int64 4436641 # 0x43b2a1
+ .int64 2218320 # 0x21d950
+ .int64 1109160 # 0x10eca8
+ .int64 554580 # 0x87654
+ .int64 277290 # 0x43b2a
+ .int64 138645 # 0x21d95
+ .int64 69322 # 0x10eca
+ .int64 34661 # 0x8765
+ .int64 17330 # 0x43b2
+ .int64 8665 # 0x21d9
+ .int64 4332 # 0x10ec
+ .int64 2166 # 0x876
+ .int64 1083 # 0x43b
+ .int64 541 # 0x21d
+ .int64 270 # 0x10e
+ .int64 135 # 0x87
+ .int64 67 # 0x43
+ .int64 33 # 0x21
+ .int64 16 # 0x10
+ .int64 8 # 0x8
+ .int64 4 # 0x4
+ .int64 2 # 0x2
+ .int64 1 # 0x1
+ .size .Lswitch.table, 512
+
+
+ .ident "clang version 3.9.0 "
diff --git a/test/torture-s/mode-dependent-address.c.s b/test/torture-s/mode-dependent-address.c.s
new file mode 100644
index 000000000..63ed7d6e0
--- /dev/null
+++ b/test/torture-s/mode-dependent-address.c.s
@@ -0,0 +1,309 @@
+ .text
+ .file "/b/build/slave/linux/build/src/src/work/gcc/gcc/testsuite/gcc.c-torture/execute/mode-dependent-address.c"
+ .section .text.f883b,"ax",@progbits
+ .hidden f883b
+ .globl f883b
+ .type f883b,@function
+f883b: # @f883b
+ .param i32, i32, i32, i32, i32
+ .local i32, i32
+# BB#0: # %entry
+ i32.const $6=, 0
+.LBB0_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label0:
+ i32.load16_s $5=, 0($1)
+ i32.add $push12=, $0, $6
+ i32.const $push25=, 1
+ i32.const $push24=, 1
+ i32.lt_s $push0=, $5, $pop24
+ i32.select $push1=, $5, $pop25, $pop0
+ i32.load $push2=, 0($2)
+ i32.const $push23=, 31
+ i32.and $push3=, $pop2, $pop23
+ i32.shr_s $push4=, $pop1, $pop3
+ i32.const $push22=, 1
+ i32.xor $push5=, $pop4, $pop22
+ i32.const $push21=, 32
+ i32.add $push6=, $pop5, $pop21
+ i32.const $push20=, 7
+ i32.shr_u $push7=, $pop6, $pop20
+ i32.const $push19=, 251
+ i32.or $push8=, $pop7, $pop19
+ i64.extend_u/i32 $push9=, $pop8
+ i64.load $push10=, 0($3)
+ i64.and $push11=, $pop9, $pop10
+ i64.store8 $discard=, 0($pop12), $pop11
+ i32.const $push18=, 1
+ i32.add $6=, $6, $pop18
+ i32.const $push17=, 2
+ i32.add $1=, $1, $pop17
+ i32.const $push16=, 4
+ i32.add $2=, $2, $pop16
+ i32.const $push15=, 8
+ i32.add $3=, $3, $pop15
+ i32.const $push14=, 96
+ i32.ne $push13=, $6, $pop14
+ br_if 0, $pop13 # 0: up to label0
+# BB#2: # %for.end
+ end_loop # label1:
+ return
+ .endfunc
+.Lfunc_end0:
+ .size f883b, .Lfunc_end0-f883b
+
+ .section .text.main,"ax",@progbits
+ .hidden main
+ .globl main
+ .type main,@function
+main: # @main
+ .result i32
+ .local i64, i32, i32, i32, i32, i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $3=, 0
+ i32.const $8=, arg1
+ i32.const $5=, arg2
+ i32.const $6=, arg3
+ i32.const $1=, arg3
+ i32.const $2=, arg2
+.LBB1_1: # %for.body
+ # =>This Inner Loop Header: Depth=1
+ loop # label2:
+ i32.store8 $push1=, arg4($3), $3
+ tee_local $push37=, $4=, $pop1
+ i32.const $push36=, 255
+ i32.and $push2=, $pop37, $pop36
+ i32.store16 $push3=, 0($8), $pop2
+ i32.store $discard=, 0($2), $pop3
+ i64.extend_u/i32 $push0=, $3
+ i64.const $push35=, 255
+ i64.and $push4=, $pop0, $pop35
+ i64.store $discard=, 0($1), $pop4
+ i32.const $push34=, 1
+ i32.add $3=, $4, $pop34
+ i32.const $push33=, 2
+ i32.add $8=, $8, $pop33
+ i32.const $push32=, 4
+ i32.add $2=, $2, $pop32
+ i32.const $push31=, 8
+ i32.add $1=, $1, $pop31
+ i32.const $7=, result
+ i32.const $4=, -192
+ i32.const $push30=, 96
+ i32.ne $push5=, $3, $pop30
+ br_if 0, $pop5 # 0: up to label2
+.LBB1_2: # %for.body.i
+ # =>This Inner Loop Header: Depth=1
+ end_loop # label3:
+ loop # label4:
+ i32.load16_s $3=, arg1+192($4)
+ i32.load $8=, 0($5)
+ i64.load $0=, 0($6)
+ i32.const $push20=, 8
+ i32.add $6=, $6, $pop20
+ i32.const $push21=, 4
+ i32.add $5=, $5, $pop21
+ i32.const $push22=, 2
+ i32.add $4=, $4, $pop22
+ i32.const $push41=, 1
+ i32.const $push40=, 1
+ i32.lt_s $push6=, $3, $pop40
+ i32.select $push7=, $3, $pop41, $pop6
+ i32.const $push8=, 31
+ i32.and $push9=, $8, $pop8
+ i32.shr_s $push10=, $pop7, $pop9
+ i32.const $push39=, 1
+ i32.xor $push11=, $pop10, $pop39
+ i32.const $push12=, 32
+ i32.add $push13=, $pop11, $pop12
+ i32.const $push14=, 7
+ i32.shr_u $push15=, $pop13, $pop14
+ i32.const $push16=, 251
+ i32.or $push17=, $pop15, $pop16
+ i64.extend_u/i32 $push18=, $pop17
+ i64.and $push19=, $0, $pop18
+ i64.store8 $discard=, 0($7), $pop19
+ i32.const $push38=, 1
+ i32.add $7=, $7, $pop38
+ i32.const $3=, 0
+ i32.const $8=, .Lmain.correct
+ br_if 0, $4 # 0: up to label4
+.LBB1_3: # %for.body10
+ # =>This Inner Loop Header: Depth=1
+ end_loop # label5:
+ block
+ loop # label7:
+ i32.load8_s $push23=, result($3)
+ i32.load $push24=, 0($8)
+ i32.ne $push25=, $pop23, $pop24
+ br_if 2, $pop25 # 2: down to label6
+# BB#4: # %for.cond7
+ # in Loop: Header=BB1_3 Depth=1
+ i32.const $push26=, 4
+ i32.add $8=, $8, $pop26
+ i32.const $push42=, 1
+ i32.add $3=, $3, $pop42
+ i32.const $push27=, 95
+ i32.le_s $push28=, $3, $pop27
+ br_if 0, $pop28 # 0: up to label7
+# BB#5: # %for.end18
+ end_loop # label8:
+ i32.const $push29=, 0
+ return $pop29
+.LBB1_6: # %if.then
+ end_block # label6:
+ call abort@FUNCTION
+ unreachable
+ .endfunc
+.Lfunc_end1:
+ .size main, .Lfunc_end1-main
+
+ .type .Lmain.correct,@object # @main.correct
+ .section .rodata..Lmain.correct,"a",@progbits
+ .p2align 4
+.Lmain.correct:
+ .int32 0 # 0x0
+ .int32 1 # 0x1
+ .int32 2 # 0x2
+ .int32 3 # 0x3
+ .int32 0 # 0x0
+ .int32 1 # 0x1
+ .int32 2 # 0x2
+ .int32 3 # 0x3
+ .int32 8 # 0x8
+ .int32 9 # 0x9
+ .int32 10 # 0xa
+ .int32 11 # 0xb
+ .int32 8 # 0x8
+ .int32 9 # 0x9
+ .int32 10 # 0xa
+ .int32 11 # 0xb
+ .int32 16 # 0x10
+ .int32 17 # 0x11
+ .int32 18 # 0x12
+ .int32 19 # 0x13
+ .int32 16 # 0x10
+ .int32 17 # 0x11
+ .int32 18 # 0x12
+ .int32 19 # 0x13
+ .int32 24 # 0x18
+ .int32 25 # 0x19
+ .int32 26 # 0x1a
+ .int32 27 # 0x1b
+ .int32 24 # 0x18
+ .int32 25 # 0x19
+ .int32 26 # 0x1a
+ .int32 27 # 0x1b
+ .int32 32 # 0x20
+ .int32 33 # 0x21
+ .int32 34 # 0x22
+ .int32 35 # 0x23
+ .int32 32 # 0x20
+ .int32 33 # 0x21
+ .int32 34 # 0x22
+ .int32 35 # 0x23
+ .int32 40 # 0x28
+ .int32 41 # 0x29
+ .int32 42 # 0x2a
+ .int32 43 # 0x2b
+ .int32 40 # 0x28
+ .int32 41 # 0x29
+ .int32 42 # 0x2a
+ .int32 43 # 0x2b
+ .int32 48 # 0x30
+ .int32 49 # 0x31
+ .int32 50 # 0x32
+ .int32 51 # 0x33
+ .int32 48 # 0x30
+ .int32 49 # 0x31
+ .int32 50 # 0x32
+ .int32 51 # 0x33
+ .int32 56 # 0x38
+ .int32 57 # 0x39
+ .int32 58 # 0x3a
+ .int32 59 # 0x3b
+ .int32 56 # 0x38
+ .int32 57 # 0x39
+ .int32 58 # 0x3a
+ .int32 59 # 0x3b
+ .int32 64 # 0x40
+ .int32 65 # 0x41
+ .int32 66 # 0x42
+ .int32 67 # 0x43
+ .int32 64 # 0x40
+ .int32 65 # 0x41
+ .int32 66 # 0x42
+ .int32 67 # 0x43
+ .int32 72 # 0x48
+ .int32 73 # 0x49
+ .int32 74 # 0x4a
+ .int32 75 # 0x4b
+ .int32 72 # 0x48
+ .int32 73 # 0x49
+ .int32 74 # 0x4a
+ .int32 75 # 0x4b
+ .int32 80 # 0x50
+ .int32 81 # 0x51
+ .int32 82 # 0x52
+ .int32 83 # 0x53
+ .int32 80 # 0x50
+ .int32 81 # 0x51
+ .int32 82 # 0x52
+ .int32 83 # 0x53
+ .int32 88 # 0x58
+ .int32 89 # 0x59
+ .int32 90 # 0x5a
+ .int32 91 # 0x5b
+ .int32 88 # 0x58
+ .int32 89 # 0x59
+ .int32 90 # 0x5a
+ .int32 91 # 0x5b
+ .size .Lmain.correct, 384
+
+ .hidden arg4 # @arg4
+ .type arg4,@object
+ .section .bss.arg4,"aw",@nobits
+ .globl arg4
+ .p2align 4
+arg4:
+ .skip 96
+ .size arg4, 96
+
+ .hidden arg1 # @arg1
+ .type arg1,@object
+ .section .bss.arg1,"aw",@nobits
+ .globl arg1
+ .p2align 4
+arg1:
+ .skip 192
+ .size arg1, 192
+
+ .hidden arg2 # @arg2
+ .type arg2,@object
+ .section .bss.arg2,"aw",@nobits
+ .globl arg2
+ .p2align 4
+arg2:
+ .skip 384
+ .size arg2, 384
+
+ .hidden arg3 # @arg3
+ .type arg3,@object
+ .section .bss.arg3,"aw",@nobits
+ .globl arg3
+ .p2align 4
+arg3:
+ .skip 768
+ .size arg3, 768
+
+ .hidden result # @result
+ .type result,@object
+ .section .bss.result,"aw",@nobits
+ .globl result
+ .p2align 4
+result:
+ .skip 96
+ .size result, 96
+
+
+ .ident "clang version 3.9.0 "
diff --git a/test/torture-s/pr19005.c.s b/test/torture-s/pr19005.c.s
index a2786b5a7..090e3c85c 100644
--- a/test/torture-s/pr19005.c.s
+++ b/test/torture-s/pr19005.c.s
@@ -80,9 +80,9 @@ foo: # @foo
i32.and $2=, $pop2, $pop23
i32.const $push3=, 0
i32.load $push0=, v($pop3)
- tee_local $push22=, $4=, $pop0
+ tee_local $push22=, $3=, $pop0
i32.const $push21=, 255
- i32.and $3=, $pop22, $pop21
+ i32.and $0=, $pop22, $pop21
block
block
block
@@ -90,44 +90,42 @@ foo: # @foo
block
i32.const $push20=, 0
i32.load $push1=, s($pop20)
- tee_local $push19=, $0=, $pop1
- i32.const $push32=, 0
- i32.eq $push33=, $pop19, $pop32
- br_if 0, $pop33 # 0: down to label8
+ tee_local $push19=, $4=, $pop1
+ i32.const $push31=, 0
+ i32.eq $push32=, $pop19, $pop31
+ br_if 0, $pop32 # 0: down to label8
# BB#1: # %if.else.i
block
- i32.ne $push5=, $3, $2
+ i32.ne $push5=, $0, $2
br_if 0, $pop5 # 0: down to label9
# BB#2: # %if.else.i
i32.const $push29=, 1
- i32.add $push4=, $4, $pop29
+ i32.add $push4=, $3, $pop29
i32.const $push28=, 255
- i32.and $4=, $pop4, $pop28
- i32.ne $push6=, $4, $1
+ i32.and $3=, $pop4, $pop28
+ i32.ne $push6=, $3, $1
br_if 0, $pop6 # 0: down to label9
# BB#3: # %bar.exit
i32.const $push9=, 0
i32.const $push7=, 1
- i32.xor $push8=, $0, $pop7
- i32.store $discard=, s($pop9), $pop8
- i32.const $push30=, 1
- i32.eq $push10=, $0, $pop30
- br_if 3, $pop10 # 3: down to label6
- br 2 # 2: down to label7
+ i32.xor $push8=, $4, $pop7
+ i32.store $push10=, s($pop9), $pop8
+ br_if 2, $pop10 # 2: down to label7
+ br 3 # 3: down to label6
.LBB1_4: # %if.then19.i
end_block # label9:
call abort@FUNCTION
unreachable
.LBB1_5: # %if.then.i
end_block # label8:
- i32.ne $push11=, $3, $1
+ i32.ne $push11=, $0, $1
br_if 3, $pop11 # 3: down to label4
# BB#6: # %lor.lhs.false.i
i32.const $push26=, 1
- i32.add $push12=, $4, $pop26
+ i32.add $push12=, $3, $pop26
i32.const $push13=, 255
- i32.and $4=, $pop12, $pop13
- i32.ne $push14=, $4, $2
+ i32.and $3=, $pop12, $pop13
+ i32.ne $push14=, $3, $2
br_if 3, $pop14 # 3: down to label4
# BB#7: # %bar.exit.thread
i32.const $push15=, 0
@@ -135,17 +133,17 @@ foo: # @foo
i32.store $discard=, s($pop15), $pop27
.LBB1_8: # %if.else.i40
end_block # label7:
- i32.ne $push16=, $3, $1
+ i32.ne $push16=, $0, $1
br_if 1, $pop16 # 1: down to label5
# BB#9: # %if.else.i40
- i32.ne $push17=, $4, $2
+ i32.ne $push17=, $3, $2
br_if 1, $pop17 # 1: down to label5
.LBB1_10: # %bar.exit43
end_block # label6:
i32.const $push18=, 0
- i32.store $discard=, s($pop18), $0
- i32.const $push31=, 0
- return $pop31
+ i32.store $discard=, s($pop18), $4
+ i32.const $push30=, 0
+ return $pop30
.LBB1_11: # %if.then19.i41
end_block # label5:
call abort@FUNCTION
diff --git a/test/torture-s/va-arg-10.c.s b/test/torture-s/va-arg-10.c.s
new file mode 100644
index 000000000..4970f7ba5
--- /dev/null
+++ b/test/torture-s/va-arg-10.c.s
@@ -0,0 +1,967 @@
+ .text
+ .file "/b/build/slave/linux/build/src/src/work/gcc/gcc/testsuite/gcc.c-torture/execute/va-arg-10.c"
+ .section .text.to_hex,"ax",@progbits
+ .hidden to_hex
+ .globl to_hex
+ .type to_hex,@function
+to_hex: # @to_hex
+ .param i32
+ .result i32
+# BB#0: # %entry
+ block
+ i32.const $push0=, 16
+ i32.ge_u $push1=, $0, $pop0
+ br_if 0, $pop1 # 0: down to label0
+# BB#1: # %if.end
+ i32.load8_s $push2=, .L.str($0)
+ return $pop2
+.LBB0_2: # %if.then
+ end_block # label0:
+ call abort@FUNCTION
+ unreachable
+ .endfunc
+.Lfunc_end0:
+ .size to_hex, .Lfunc_end0-to_hex
+
+ .section .text.fap,"ax",@progbits
+ .hidden fap
+ .globl fap
+ .type fap,@function
+fap: # @fap
+ .param i32, i32, i32
+ .local i32, i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $4=, __stack_pointer
+ i32.load $4=, 0($4)
+ i32.const $5=, 16
+ i32.sub $7=, $4, $5
+ i32.const $5=, __stack_pointer
+ i32.store $7=, 0($5), $7
+ i32.store $discard=, 12($7), $2
+ i32.load $push4=, 12($7)
+ i32.store $discard=, 8($7), $pop4
+ copy_local $2=, $1
+ block
+ i32.call $push5=, strlen@FUNCTION, $1
+ i32.const $push6=, 16
+ i32.sub $push7=, $pop6, $0
+ i32.ne $push8=, $pop5, $pop7
+ br_if 0, $pop8 # 0: down to label1
+.LBB1_1: # %while.cond
+ # =>This Inner Loop Header: Depth=1
+ block
+ block
+ loop # label4:
+ i32.load8_u $push0=, 0($2)
+ tee_local $push33=, $0=, $pop0
+ i32.const $push39=, 0
+ i32.eq $push40=, $pop33, $pop39
+ br_if 3, $pop40 # 3: down to label2
+# BB#2: # %while.body
+ # in Loop: Header=BB1_1 Depth=1
+ i32.load $push9=, 12($7)
+ i32.const $push10=, 3
+ i32.add $push11=, $pop9, $pop10
+ i32.const $push12=, -4
+ i32.and $push13=, $pop11, $pop12
+ tee_local $push35=, $3=, $pop13
+ i32.const $push14=, 4
+ i32.add $push15=, $pop35, $pop14
+ i32.store $discard=, 12($7), $pop15
+ i32.load $push1=, 0($3)
+ tee_local $push34=, $3=, $pop1
+ i32.const $push16=, 16
+ i32.ge_u $push17=, $pop34, $pop16
+ br_if 2, $pop17 # 2: down to label3
+# BB#3: # %to_hex.exit
+ # in Loop: Header=BB1_1 Depth=1
+ i32.const $push18=, 1
+ i32.add $2=, $2, $pop18
+ i32.load8_u $push19=, .L.str($3)
+ i32.eq $push20=, $0, $pop19
+ br_if 0, $pop20 # 0: up to label4
+# BB#4: # %if.then4
+ end_loop # label5:
+ call abort@FUNCTION
+ unreachable
+.LBB1_5: # %if.then.i
+ end_block # label3:
+ call abort@FUNCTION
+ unreachable
+.LBB1_6: # %while.cond6
+ # =>This Inner Loop Header: Depth=1
+ end_block # label2:
+ block
+ block
+ loop # label8:
+ i32.load8_u $push2=, 0($1)
+ tee_local $push36=, $2=, $pop2
+ i32.const $push41=, 0
+ i32.eq $push42=, $pop36, $pop41
+ br_if 3, $pop42 # 3: down to label6
+# BB#7: # %while.body8
+ # in Loop: Header=BB1_6 Depth=1
+ i32.load $push21=, 8($7)
+ i32.const $push22=, 3
+ i32.add $push23=, $pop21, $pop22
+ i32.const $push24=, -4
+ i32.and $push25=, $pop23, $pop24
+ tee_local $push38=, $0=, $pop25
+ i32.const $push26=, 4
+ i32.add $push27=, $pop38, $pop26
+ i32.store $discard=, 8($7), $pop27
+ i32.load $push3=, 0($0)
+ tee_local $push37=, $0=, $pop3
+ i32.const $push28=, 16
+ i32.ge_u $push29=, $pop37, $pop28
+ br_if 2, $pop29 # 2: down to label7
+# BB#8: # %to_hex.exit26
+ # in Loop: Header=BB1_6 Depth=1
+ i32.const $push30=, 1
+ i32.add $1=, $1, $pop30
+ i32.load8_u $push31=, .L.str($0)
+ i32.eq $push32=, $2, $pop31
+ br_if 0, $pop32 # 0: up to label8
+# BB#9: # %if.then14
+ end_loop # label9:
+ call abort@FUNCTION
+ unreachable
+.LBB1_10: # %if.then.i23
+ end_block # label7:
+ call abort@FUNCTION
+ unreachable
+.LBB1_11: # %while.end16
+ end_block # label6:
+ i32.const $6=, 16
+ i32.add $7=, $7, $6
+ i32.const $6=, __stack_pointer
+ i32.store $7=, 0($6), $7
+ return
+.LBB1_12: # %if.then
+ end_block # label1:
+ call abort@FUNCTION
+ unreachable
+ .endfunc
+.Lfunc_end1:
+ .size fap, .Lfunc_end1-fap
+
+ .section .text.f0,"ax",@progbits
+ .hidden f0
+ .globl f0
+ .type f0,@function
+f0: # @f0
+ .param i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $2=, __stack_pointer
+ i32.load $2=, 0($2)
+ i32.const $3=, 16
+ i32.sub $5=, $2, $3
+ i32.const $3=, __stack_pointer
+ i32.store $5=, 0($3), $5
+ i32.const $push1=, 0
+ i32.store $push0=, 12($5), $1
+ call fap@FUNCTION, $pop1, $0, $pop0
+ i32.const $4=, 16
+ i32.add $5=, $5, $4
+ i32.const $4=, __stack_pointer
+ i32.store $5=, 0($4), $5
+ return
+ .endfunc
+.Lfunc_end2:
+ .size f0, .Lfunc_end2-f0
+
+ .section .text.f1,"ax",@progbits
+ .hidden f1
+ .globl f1
+ .type f1,@function
+f1: # @f1
+ .param i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $3=, __stack_pointer
+ i32.load $3=, 0($3)
+ i32.const $4=, 16
+ i32.sub $6=, $3, $4
+ i32.const $4=, __stack_pointer
+ i32.store $6=, 0($4), $6
+ i32.const $push1=, 1
+ i32.store $push0=, 12($6), $2
+ call fap@FUNCTION, $pop1, $1, $pop0
+ i32.const $5=, 16
+ i32.add $6=, $6, $5
+ i32.const $5=, __stack_pointer
+ i32.store $6=, 0($5), $6
+ return
+ .endfunc
+.Lfunc_end3:
+ .size f1, .Lfunc_end3-f1
+
+ .section .text.f2,"ax",@progbits
+ .hidden f2
+ .globl f2
+ .type f2,@function
+f2: # @f2
+ .param i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $4=, __stack_pointer
+ i32.load $4=, 0($4)
+ i32.const $5=, 16
+ i32.sub $7=, $4, $5
+ i32.const $5=, __stack_pointer
+ i32.store $7=, 0($5), $7
+ i32.const $push1=, 2
+ i32.store $push0=, 12($7), $3
+ call fap@FUNCTION, $pop1, $2, $pop0
+ i32.const $6=, 16
+ i32.add $7=, $7, $6
+ i32.const $6=, __stack_pointer
+ i32.store $7=, 0($6), $7
+ return
+ .endfunc
+.Lfunc_end4:
+ .size f2, .Lfunc_end4-f2
+
+ .section .text.f3,"ax",@progbits
+ .hidden f3
+ .globl f3
+ .type f3,@function
+f3: # @f3
+ .param i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $5=, __stack_pointer
+ i32.load $5=, 0($5)
+ i32.const $6=, 16
+ i32.sub $8=, $5, $6
+ i32.const $6=, __stack_pointer
+ i32.store $8=, 0($6), $8
+ i32.const $push1=, 3
+ i32.store $push0=, 12($8), $4
+ call fap@FUNCTION, $pop1, $3, $pop0
+ i32.const $7=, 16
+ i32.add $8=, $8, $7
+ i32.const $7=, __stack_pointer
+ i32.store $8=, 0($7), $8
+ return
+ .endfunc
+.Lfunc_end5:
+ .size f3, .Lfunc_end5-f3
+
+ .section .text.f4,"ax",@progbits
+ .hidden f4
+ .globl f4
+ .type f4,@function
+f4: # @f4
+ .param i32, i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $6=, __stack_pointer
+ i32.load $6=, 0($6)
+ i32.const $7=, 16
+ i32.sub $9=, $6, $7
+ i32.const $7=, __stack_pointer
+ i32.store $9=, 0($7), $9
+ i32.const $push1=, 4
+ i32.store $push0=, 12($9), $5
+ call fap@FUNCTION, $pop1, $4, $pop0
+ i32.const $8=, 16
+ i32.add $9=, $9, $8
+ i32.const $8=, __stack_pointer
+ i32.store $9=, 0($8), $9
+ return
+ .endfunc
+.Lfunc_end6:
+ .size f4, .Lfunc_end6-f4
+
+ .section .text.f5,"ax",@progbits
+ .hidden f5
+ .globl f5
+ .type f5,@function
+f5: # @f5
+ .param i32, i32, i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $7=, __stack_pointer
+ i32.load $7=, 0($7)
+ i32.const $8=, 16
+ i32.sub $10=, $7, $8
+ i32.const $8=, __stack_pointer
+ i32.store $10=, 0($8), $10
+ i32.const $push1=, 5
+ i32.store $push0=, 12($10), $6
+ call fap@FUNCTION, $pop1, $5, $pop0
+ i32.const $9=, 16
+ i32.add $10=, $10, $9
+ i32.const $9=, __stack_pointer
+ i32.store $10=, 0($9), $10
+ return
+ .endfunc
+.Lfunc_end7:
+ .size f5, .Lfunc_end7-f5
+
+ .section .text.f6,"ax",@progbits
+ .hidden f6
+ .globl f6
+ .type f6,@function
+f6: # @f6
+ .param i32, i32, i32, i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $8=, __stack_pointer
+ i32.load $8=, 0($8)
+ i32.const $9=, 16
+ i32.sub $11=, $8, $9
+ i32.const $9=, __stack_pointer
+ i32.store $11=, 0($9), $11
+ i32.const $push1=, 6
+ i32.store $push0=, 12($11), $7
+ call fap@FUNCTION, $pop1, $6, $pop0
+ i32.const $10=, 16
+ i32.add $11=, $11, $10
+ i32.const $10=, __stack_pointer
+ i32.store $11=, 0($10), $11
+ return
+ .endfunc
+.Lfunc_end8:
+ .size f6, .Lfunc_end8-f6
+
+ .section .text.f7,"ax",@progbits
+ .hidden f7
+ .globl f7
+ .type f7,@function
+f7: # @f7
+ .param i32, i32, i32, i32, i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $9=, __stack_pointer
+ i32.load $9=, 0($9)
+ i32.const $10=, 16
+ i32.sub $12=, $9, $10
+ i32.const $10=, __stack_pointer
+ i32.store $12=, 0($10), $12
+ i32.const $push1=, 7
+ i32.store $push0=, 12($12), $8
+ call fap@FUNCTION, $pop1, $7, $pop0
+ i32.const $11=, 16
+ i32.add $12=, $12, $11
+ i32.const $11=, __stack_pointer
+ i32.store $12=, 0($11), $12
+ return
+ .endfunc
+.Lfunc_end9:
+ .size f7, .Lfunc_end9-f7
+
+ .section .text.f8,"ax",@progbits
+ .hidden f8
+ .globl f8
+ .type f8,@function
+f8: # @f8
+ .param i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $10=, __stack_pointer
+ i32.load $10=, 0($10)
+ i32.const $11=, 16
+ i32.sub $13=, $10, $11
+ i32.const $11=, __stack_pointer
+ i32.store $13=, 0($11), $13
+ i32.const $push1=, 8
+ i32.store $push0=, 12($13), $9
+ call fap@FUNCTION, $pop1, $8, $pop0
+ i32.const $12=, 16
+ i32.add $13=, $13, $12
+ i32.const $12=, __stack_pointer
+ i32.store $13=, 0($12), $13
+ return
+ .endfunc
+.Lfunc_end10:
+ .size f8, .Lfunc_end10-f8
+
+ .section .text.f9,"ax",@progbits
+ .hidden f9
+ .globl f9
+ .type f9,@function
+f9: # @f9
+ .param i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $11=, __stack_pointer
+ i32.load $11=, 0($11)
+ i32.const $12=, 16
+ i32.sub $14=, $11, $12
+ i32.const $12=, __stack_pointer
+ i32.store $14=, 0($12), $14
+ i32.const $push1=, 9
+ i32.store $push0=, 12($14), $10
+ call fap@FUNCTION, $pop1, $9, $pop0
+ i32.const $13=, 16
+ i32.add $14=, $14, $13
+ i32.const $13=, __stack_pointer
+ i32.store $14=, 0($13), $14
+ return
+ .endfunc
+.Lfunc_end11:
+ .size f9, .Lfunc_end11-f9
+
+ .section .text.f10,"ax",@progbits
+ .hidden f10
+ .globl f10
+ .type f10,@function
+f10: # @f10
+ .param i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $12=, __stack_pointer
+ i32.load $12=, 0($12)
+ i32.const $13=, 16
+ i32.sub $15=, $12, $13
+ i32.const $13=, __stack_pointer
+ i32.store $15=, 0($13), $15
+ i32.const $push1=, 10
+ i32.store $push0=, 12($15), $11
+ call fap@FUNCTION, $pop1, $10, $pop0
+ i32.const $14=, 16
+ i32.add $15=, $15, $14
+ i32.const $14=, __stack_pointer
+ i32.store $15=, 0($14), $15
+ return
+ .endfunc
+.Lfunc_end12:
+ .size f10, .Lfunc_end12-f10
+
+ .section .text.f11,"ax",@progbits
+ .hidden f11
+ .globl f11
+ .type f11,@function
+f11: # @f11
+ .param i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $13=, __stack_pointer
+ i32.load $13=, 0($13)
+ i32.const $14=, 16
+ i32.sub $16=, $13, $14
+ i32.const $14=, __stack_pointer
+ i32.store $16=, 0($14), $16
+ i32.const $push1=, 11
+ i32.store $push0=, 12($16), $12
+ call fap@FUNCTION, $pop1, $11, $pop0
+ i32.const $15=, 16
+ i32.add $16=, $16, $15
+ i32.const $15=, __stack_pointer
+ i32.store $16=, 0($15), $16
+ return
+ .endfunc
+.Lfunc_end13:
+ .size f11, .Lfunc_end13-f11
+
+ .section .text.f12,"ax",@progbits
+ .hidden f12
+ .globl f12
+ .type f12,@function
+f12: # @f12
+ .param i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $14=, __stack_pointer
+ i32.load $14=, 0($14)
+ i32.const $15=, 16
+ i32.sub $17=, $14, $15
+ i32.const $15=, __stack_pointer
+ i32.store $17=, 0($15), $17
+ i32.const $push1=, 12
+ i32.store $push0=, 12($17), $13
+ call fap@FUNCTION, $pop1, $12, $pop0
+ i32.const $16=, 16
+ i32.add $17=, $17, $16
+ i32.const $16=, __stack_pointer
+ i32.store $17=, 0($16), $17
+ return
+ .endfunc
+.Lfunc_end14:
+ .size f12, .Lfunc_end14-f12
+
+ .section .text.f13,"ax",@progbits
+ .hidden f13
+ .globl f13
+ .type f13,@function
+f13: # @f13
+ .param i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $15=, __stack_pointer
+ i32.load $15=, 0($15)
+ i32.const $16=, 16
+ i32.sub $18=, $15, $16
+ i32.const $16=, __stack_pointer
+ i32.store $18=, 0($16), $18
+ i32.const $push1=, 13
+ i32.store $push0=, 12($18), $14
+ call fap@FUNCTION, $pop1, $13, $pop0
+ i32.const $17=, 16
+ i32.add $18=, $18, $17
+ i32.const $17=, __stack_pointer
+ i32.store $18=, 0($17), $18
+ return
+ .endfunc
+.Lfunc_end15:
+ .size f13, .Lfunc_end15-f13
+
+ .section .text.f14,"ax",@progbits
+ .hidden f14
+ .globl f14
+ .type f14,@function
+f14: # @f14
+ .param i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $16=, __stack_pointer
+ i32.load $16=, 0($16)
+ i32.const $17=, 16
+ i32.sub $19=, $16, $17
+ i32.const $17=, __stack_pointer
+ i32.store $19=, 0($17), $19
+ i32.const $push1=, 14
+ i32.store $push0=, 12($19), $15
+ call fap@FUNCTION, $pop1, $14, $pop0
+ i32.const $18=, 16
+ i32.add $19=, $19, $18
+ i32.const $18=, __stack_pointer
+ i32.store $19=, 0($18), $19
+ return
+ .endfunc
+.Lfunc_end16:
+ .size f14, .Lfunc_end16-f14
+
+ .section .text.f15,"ax",@progbits
+ .hidden f15
+ .globl f15
+ .type f15,@function
+f15: # @f15
+ .param i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
+ .local i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $17=, __stack_pointer
+ i32.load $17=, 0($17)
+ i32.const $18=, 16
+ i32.sub $20=, $17, $18
+ i32.const $18=, __stack_pointer
+ i32.store $20=, 0($18), $20
+ i32.const $push1=, 15
+ i32.store $push0=, 12($20), $16
+ call fap@FUNCTION, $pop1, $15, $pop0
+ i32.const $19=, 16
+ i32.add $20=, $20, $19
+ i32.const $19=, __stack_pointer
+ i32.store $20=, 0($19), $20
+ return
+ .endfunc
+.Lfunc_end17:
+ .size f15, .Lfunc_end17-f15
+
+ .section .text.main,"ax",@progbits
+ .hidden main
+ .globl main
+ .type main,@function
+main: # @main
+ .result i32
+ .local i64, i64, i64, i64, i64, i64, i64, i32, i64, i64, i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
+# BB#0: # %entry
+ i32.const $14=, __stack_pointer
+ i32.load $14=, 0($14)
+ i32.const $15=, 640
+ i32.sub $87=, $14, $15
+ i32.const $15=, __stack_pointer
+ i32.store $87=, 0($15), $87
+ i32.const $push0=, 56
+ i32.const $16=, 576
+ i32.add $16=, $87, $16
+ i32.add $push1=, $16, $pop0
+ i64.const $push2=, 64424509454
+ i64.store $0=, 0($pop1), $pop2
+ i32.const $push3=, 48
+ i32.const $17=, 576
+ i32.add $17=, $87, $17
+ i32.add $push4=, $17, $pop3
+ i64.const $push5=, 55834574860
+ i64.store $1=, 0($pop4):p2align=4, $pop5
+ i32.const $push6=, 40
+ i32.const $18=, 576
+ i32.add $18=, $87, $18
+ i32.add $push7=, $18, $pop6
+ i64.const $push8=, 47244640266
+ i64.store $2=, 0($pop7), $pop8
+ i32.const $push9=, 32
+ i32.const $19=, 576
+ i32.add $19=, $87, $19
+ i32.add $push10=, $19, $pop9
+ i64.const $push11=, 38654705672
+ i64.store $3=, 0($pop10):p2align=4, $pop11
+ i32.const $push12=, 24
+ i32.const $20=, 576
+ i32.add $20=, $87, $20
+ i32.add $push13=, $20, $pop12
+ i64.const $push14=, 30064771078
+ i64.store $4=, 0($pop13), $pop14
+ i32.const $push15=, 16
+ i32.const $21=, 576
+ i32.add $21=, $87, $21
+ i32.add $push16=, $21, $pop15
+ i64.const $push17=, 21474836484
+ i64.store $5=, 0($pop16):p2align=4, $pop17
+ i32.const $push18=, 8
+ i32.const $22=, 576
+ i32.add $22=, $87, $22
+ i32.or $push19=, $22, $pop18
+ i64.const $push20=, 12884901890
+ i64.store $6=, 0($pop19), $pop20
+ i64.const $push21=, 4294967296
+ i64.store $discard=, 576($87):p2align=4, $pop21
+ i32.const $push22=, .L.str
+ i32.const $23=, 576
+ i32.add $23=, $87, $23
+ call f0@FUNCTION, $pop22, $23
+ i32.const $push144=, 56
+ i32.const $24=, 512
+ i32.add $24=, $87, $24
+ i32.add $push23=, $24, $pop144
+ i32.const $push24=, 15
+ i32.store $7=, 0($pop23):p2align=3, $pop24
+ i32.const $push143=, 48
+ i32.const $25=, 512
+ i32.add $25=, $87, $25
+ i32.add $push25=, $25, $pop143
+ i64.const $push26=, 60129542157
+ i64.store $8=, 0($pop25):p2align=4, $pop26
+ i32.const $push142=, 40
+ i32.const $26=, 512
+ i32.add $26=, $87, $26
+ i32.add $push27=, $26, $pop142
+ i64.const $push28=, 51539607563
+ i64.store $9=, 0($pop27), $pop28
+ i32.const $push141=, 32
+ i32.const $27=, 512
+ i32.add $27=, $87, $27
+ i32.add $push29=, $27, $pop141
+ i64.const $push30=, 42949672969
+ i64.store $10=, 0($pop29):p2align=4, $pop30
+ i32.const $push140=, 24
+ i32.const $28=, 512
+ i32.add $28=, $87, $28
+ i32.add $push31=, $28, $pop140
+ i64.const $push32=, 34359738375
+ i64.store $11=, 0($pop31), $pop32
+ i32.const $push139=, 16
+ i32.const $29=, 512
+ i32.add $29=, $87, $29
+ i32.add $push33=, $29, $pop139
+ i64.const $push34=, 25769803781
+ i64.store $12=, 0($pop33):p2align=4, $pop34
+ i32.const $push138=, 8
+ i32.const $30=, 512
+ i32.add $30=, $87, $30
+ i32.or $push35=, $30, $pop138
+ i64.const $push36=, 17179869187
+ i64.store $13=, 0($pop35), $pop36
+ i64.const $push37=, 8589934593
+ i64.store $discard=, 512($87):p2align=4, $pop37
+ i32.const $push38=, .L.str+1
+ i32.const $31=, 512
+ i32.add $31=, $87, $31
+ call f1@FUNCTION, $7, $pop38, $31
+ i32.const $push137=, 48
+ i32.const $32=, 448
+ i32.add $32=, $87, $32
+ i32.add $push39=, $32, $pop137
+ i64.store $discard=, 0($pop39):p2align=4, $0
+ i32.const $push136=, 40
+ i32.const $33=, 448
+ i32.add $33=, $87, $33
+ i32.add $push40=, $33, $pop136
+ i64.store $discard=, 0($pop40), $1
+ i32.const $push135=, 32
+ i32.const $34=, 448
+ i32.add $34=, $87, $34
+ i32.add $push41=, $34, $pop135
+ i64.store $discard=, 0($pop41):p2align=4, $2
+ i32.const $push134=, 24
+ i32.const $35=, 448
+ i32.add $35=, $87, $35
+ i32.add $push42=, $35, $pop134
+ i64.store $discard=, 0($pop42), $3
+ i32.const $push133=, 16
+ i32.const $36=, 448
+ i32.add $36=, $87, $36
+ i32.add $push43=, $36, $pop133
+ i64.store $discard=, 0($pop43):p2align=4, $4
+ i32.const $push132=, 8
+ i32.const $37=, 448
+ i32.add $37=, $87, $37
+ i32.or $push44=, $37, $pop132
+ i64.store $discard=, 0($pop44), $5
+ i64.store $discard=, 448($87):p2align=4, $6
+ i32.const $push45=, .L.str+2
+ i32.const $38=, 448
+ i32.add $38=, $87, $38
+ call f2@FUNCTION, $7, $7, $pop45, $38
+ i32.const $push131=, 48
+ i32.const $39=, 384
+ i32.add $39=, $87, $39
+ i32.add $push46=, $39, $pop131
+ i32.store $discard=, 0($pop46):p2align=4, $7
+ i32.const $push130=, 40
+ i32.const $40=, 384
+ i32.add $40=, $87, $40
+ i32.add $push47=, $40, $pop130
+ i64.store $6=, 0($pop47), $8
+ i32.const $push129=, 32
+ i32.const $41=, 384
+ i32.add $41=, $87, $41
+ i32.add $push48=, $41, $pop129
+ i64.store $8=, 0($pop48):p2align=4, $9
+ i32.const $push128=, 24
+ i32.const $42=, 384
+ i32.add $42=, $87, $42
+ i32.add $push49=, $42, $pop128
+ i64.store $9=, 0($pop49), $10
+ i32.const $push127=, 16
+ i32.const $43=, 384
+ i32.add $43=, $87, $43
+ i32.add $push50=, $43, $pop127
+ i64.store $10=, 0($pop50):p2align=4, $11
+ i32.const $push126=, 8
+ i32.const $44=, 384
+ i32.add $44=, $87, $44
+ i32.or $push51=, $44, $pop126
+ i64.store $11=, 0($pop51), $12
+ i64.store $discard=, 384($87):p2align=4, $13
+ i32.const $push52=, .L.str+3
+ i32.const $45=, 384
+ i32.add $45=, $87, $45
+ call f3@FUNCTION, $7, $7, $7, $pop52, $45
+ i32.const $push125=, 40
+ i32.const $46=, 336
+ i32.add $46=, $87, $46
+ i32.add $push53=, $46, $pop125
+ i64.store $discard=, 0($pop53), $0
+ i32.const $push124=, 32
+ i32.const $47=, 336
+ i32.add $47=, $87, $47
+ i32.add $push54=, $47, $pop124
+ i64.store $discard=, 0($pop54):p2align=4, $1
+ i32.const $push123=, 24
+ i32.const $48=, 336
+ i32.add $48=, $87, $48
+ i32.add $push55=, $48, $pop123
+ i64.store $discard=, 0($pop55), $2
+ i32.const $push122=, 16
+ i32.const $49=, 336
+ i32.add $49=, $87, $49
+ i32.add $push56=, $49, $pop122
+ i64.store $discard=, 0($pop56):p2align=4, $3
+ i32.const $push121=, 8
+ i32.const $50=, 336
+ i32.add $50=, $87, $50
+ i32.or $push57=, $50, $pop121
+ i64.store $discard=, 0($pop57), $4
+ i64.store $discard=, 336($87):p2align=4, $5
+ i32.const $push58=, .L.str+4
+ i32.const $51=, 336
+ i32.add $51=, $87, $51
+ call f4@FUNCTION, $7, $7, $7, $7, $pop58, $51
+ i32.const $push120=, 40
+ i32.const $52=, 288
+ i32.add $52=, $87, $52
+ i32.add $push59=, $52, $pop120
+ i32.store $discard=, 0($pop59):p2align=3, $7
+ i32.const $push119=, 32
+ i32.const $53=, 288
+ i32.add $53=, $87, $53
+ i32.add $push60=, $53, $pop119
+ i64.store $5=, 0($pop60):p2align=4, $6
+ i32.const $push118=, 24
+ i32.const $54=, 288
+ i32.add $54=, $87, $54
+ i32.add $push61=, $54, $pop118
+ i64.store $6=, 0($pop61), $8
+ i32.const $push117=, 16
+ i32.const $55=, 288
+ i32.add $55=, $87, $55
+ i32.add $push62=, $55, $pop117
+ i64.store $8=, 0($pop62):p2align=4, $9
+ i32.const $push116=, 8
+ i32.const $56=, 288
+ i32.add $56=, $87, $56
+ i32.or $push63=, $56, $pop116
+ i64.store $9=, 0($pop63), $10
+ i64.store $discard=, 288($87):p2align=4, $11
+ i32.const $push64=, .L.str+5
+ i32.const $57=, 288
+ i32.add $57=, $87, $57
+ call f5@FUNCTION, $7, $7, $7, $7, $7, $pop64, $57
+ i32.const $push115=, 32
+ i32.const $58=, 240
+ i32.add $58=, $87, $58
+ i32.add $push65=, $58, $pop115
+ i64.store $discard=, 0($pop65):p2align=4, $0
+ i32.const $push114=, 24
+ i32.const $59=, 240
+ i32.add $59=, $87, $59
+ i32.add $push66=, $59, $pop114
+ i64.store $discard=, 0($pop66), $1
+ i32.const $push113=, 16
+ i32.const $60=, 240
+ i32.add $60=, $87, $60
+ i32.add $push67=, $60, $pop113
+ i64.store $discard=, 0($pop67):p2align=4, $2
+ i32.const $push112=, 8
+ i32.const $61=, 240
+ i32.add $61=, $87, $61
+ i32.or $push68=, $61, $pop112
+ i64.store $discard=, 0($pop68), $3
+ i64.store $discard=, 240($87):p2align=4, $4
+ i32.const $push69=, .L.str+6
+ i32.const $62=, 240
+ i32.add $62=, $87, $62
+ call f6@FUNCTION, $7, $7, $7, $7, $7, $7, $pop69, $62
+ i32.const $push111=, 32
+ i32.const $63=, 192
+ i32.add $63=, $87, $63
+ i32.add $push70=, $63, $pop111
+ i32.store $discard=, 0($pop70):p2align=4, $7
+ i32.const $push110=, 24
+ i32.const $64=, 192
+ i32.add $64=, $87, $64
+ i32.add $push71=, $64, $pop110
+ i64.store $4=, 0($pop71), $5
+ i32.const $push109=, 16
+ i32.const $65=, 192
+ i32.add $65=, $87, $65
+ i32.add $push72=, $65, $pop109
+ i64.store $5=, 0($pop72):p2align=4, $6
+ i32.const $push108=, 8
+ i32.const $66=, 192
+ i32.add $66=, $87, $66
+ i32.or $push73=, $66, $pop108
+ i64.store $6=, 0($pop73), $8
+ i64.store $discard=, 192($87):p2align=4, $9
+ i32.const $push74=, .L.str+7
+ i32.const $67=, 192
+ i32.add $67=, $87, $67
+ call f7@FUNCTION, $7, $7, $7, $7, $7, $7, $7, $pop74, $67
+ i32.const $push107=, 24
+ i32.const $68=, 160
+ i32.add $68=, $87, $68
+ i32.add $push75=, $68, $pop107
+ i64.store $discard=, 0($pop75), $0
+ i32.const $push106=, 16
+ i32.const $69=, 160
+ i32.add $69=, $87, $69
+ i32.add $push76=, $69, $pop106
+ i64.store $discard=, 0($pop76):p2align=4, $1
+ i32.const $push105=, 8
+ i32.const $70=, 160
+ i32.add $70=, $87, $70
+ i32.or $push77=, $70, $pop105
+ i64.store $discard=, 0($pop77), $2
+ i64.store $discard=, 160($87):p2align=4, $3
+ i32.const $push78=, .L.str+8
+ i32.const $71=, 160
+ i32.add $71=, $87, $71
+ call f8@FUNCTION, $7, $7, $7, $7, $7, $7, $7, $7, $pop78, $71
+ i32.const $push104=, 24
+ i32.const $72=, 128
+ i32.add $72=, $87, $72
+ i32.add $push79=, $72, $pop104
+ i32.store $discard=, 0($pop79):p2align=3, $7
+ i32.const $push103=, 16
+ i32.const $73=, 128
+ i32.add $73=, $87, $73
+ i32.add $push80=, $73, $pop103
+ i64.store $3=, 0($pop80):p2align=4, $4
+ i32.const $push102=, 8
+ i32.const $74=, 128
+ i32.add $74=, $87, $74
+ i32.or $push81=, $74, $pop102
+ i64.store $4=, 0($pop81), $5
+ i64.store $discard=, 128($87):p2align=4, $6
+ i32.const $push82=, .L.str+9
+ i32.const $75=, 128
+ i32.add $75=, $87, $75
+ call f9@FUNCTION, $7, $7, $7, $7, $7, $7, $7, $7, $7, $pop82, $75
+ i32.const $push101=, 16
+ i32.const $76=, 96
+ i32.add $76=, $87, $76
+ i32.add $push83=, $76, $pop101
+ i64.store $discard=, 0($pop83):p2align=4, $0
+ i32.const $push100=, 8
+ i32.const $77=, 96
+ i32.add $77=, $87, $77
+ i32.or $push84=, $77, $pop100
+ i64.store $discard=, 0($pop84), $1
+ i64.store $discard=, 96($87):p2align=4, $2
+ i32.const $push85=, .L.str+10
+ i32.const $78=, 96
+ i32.add $78=, $87, $78
+ call f10@FUNCTION, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $pop85, $78
+ i32.const $push99=, 16
+ i32.const $79=, 64
+ i32.add $79=, $87, $79
+ i32.add $push86=, $79, $pop99
+ i32.store $discard=, 0($pop86):p2align=4, $7
+ i32.const $push98=, 8
+ i32.const $80=, 64
+ i32.add $80=, $87, $80
+ i32.or $push87=, $80, $pop98
+ i64.store $2=, 0($pop87), $3
+ i64.store $discard=, 64($87):p2align=4, $4
+ i32.const $push88=, .L.str+11
+ i32.const $81=, 64
+ i32.add $81=, $87, $81
+ call f11@FUNCTION, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $pop88, $81
+ i32.const $push97=, 8
+ i32.const $82=, 48
+ i32.add $82=, $87, $82
+ i32.or $push89=, $82, $pop97
+ i64.store $discard=, 0($pop89), $0
+ i64.store $discard=, 48($87):p2align=4, $1
+ i32.const $push90=, .L.str+12
+ i32.const $83=, 48
+ i32.add $83=, $87, $83
+ call f12@FUNCTION, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $pop90, $83
+ i32.const $push96=, 8
+ i32.const $84=, 32
+ i32.add $84=, $87, $84
+ i32.or $push91=, $84, $pop96
+ i32.store $discard=, 0($pop91):p2align=3, $7
+ i64.store $discard=, 32($87):p2align=4, $2
+ i32.const $push92=, .L.str+13
+ i32.const $85=, 32
+ i32.add $85=, $87, $85
+ call f13@FUNCTION, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $pop92, $85
+ i64.store $discard=, 16($87):p2align=4, $0
+ i32.const $push93=, .L.str+14
+ i32.const $86=, 16
+ i32.add $86=, $87, $86
+ call f14@FUNCTION, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $pop93, $86
+ i32.store $discard=, 0($87):p2align=4, $7
+ i32.const $push94=, .L.str+15
+ call f15@FUNCTION, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $7, $pop94, $87
+ i32.const $push95=, 0
+ call exit@FUNCTION, $pop95
+ unreachable
+ .endfunc
+.Lfunc_end18:
+ .size main, .Lfunc_end18-main
+
+ .type .L.str,@object # @.str
+ .section .rodata.str1.16,"aMS",@progbits,1
+ .p2align 4
+.L.str:
+ .asciz "0123456789abcdef"
+ .size .L.str, 17
+
+
+ .ident "clang version 3.9.0 "