blob: 0e8ccf824a786cc939ebc6f2ee43d1768a51568c [file] [log] [blame]
.text
.section .text.main,"ax",@progbits
.hidden main
.globl main
.type main,@function
main: # @main
.result i32
.local i64, i32, i32
# BB#0: # %entry
i64.const $0=, 0
i32.const $2=, zext
.LBB0_1: # %for.body
# =>This Inner Loop Header: Depth=1
block
block
loop # label2:
i64.const $push17=, 8526495107234113920
i64.shr_u $push0=, $pop17, $0
i64.load $push1=, 0($2)
i64.ne $push2=, $pop0, $pop1
br_if 1, $pop2 # 1: down to label1
# BB#2: # %for.cond
# in Loop: Header=BB0_1 Depth=1
i32.const $push22=, 8
i32.add $2=, $2, $pop22
i64.const $push21=, 1
i64.add $push20=, $0, $pop21
tee_local $push19=, $0=, $pop20
i64.const $push18=, 64
i64.lt_s $push3=, $pop19, $pop18
br_if 0, $pop3 # 0: up to label2
# BB#3: # %for.body4.preheader
end_loop
i64.const $0=, 0
i32.const $2=, sext
.LBB0_4: # %for.body4
# =>This Inner Loop Header: Depth=1
loop # label3:
i64.const $push23=, -8152436031399644656
i64.shr_s $push4=, $pop23, $0
i64.load $push5=, 0($2)
i64.ne $push6=, $pop4, $pop5
br_if 1, $pop6 # 1: down to label1
# BB#5: # %for.cond2
# in Loop: Header=BB0_4 Depth=1
i32.const $push28=, 8
i32.add $2=, $2, $pop28
i64.const $push27=, 1
i64.add $push26=, $0, $pop27
tee_local $push25=, $0=, $pop26
i64.const $push24=, 64
i64.lt_s $push7=, $pop25, $pop24
br_if 0, $pop7 # 0: up to label3
# BB#6: # %for.body16.preheader
end_loop
i32.const $2=, 0
i32.const $1=, zext
.LBB0_7: # %for.body16
# =>This Inner Loop Header: Depth=1
loop # label4:
i64.const $push29=, 8526495107234113920
i64.call $push8=, constant_shift@FUNCTION, $pop29, $2
i64.load $push9=, 0($1)
i64.ne $push10=, $pop8, $pop9
br_if 2, $pop10 # 2: down to label0
# BB#8: # %for.cond14
# in Loop: Header=BB0_7 Depth=1
i32.const $push34=, 8
i32.add $1=, $1, $pop34
i32.const $push33=, 1
i32.add $push32=, $2, $pop33
tee_local $push31=, $2=, $pop32
i32.const $push30=, 64
i32.lt_s $push11=, $pop31, $pop30
br_if 0, $pop11 # 0: up to label4
# BB#9: # %for.body28.preheader
end_loop
i32.const $2=, 0
i32.const $1=, sext
.LBB0_10: # %for.body28
# =>This Inner Loop Header: Depth=1
block
loop # label6:
i64.const $push35=, -8152436031399644656
i64.call $push12=, constant_shift@FUNCTION, $pop35, $2
i64.load $push13=, 0($1)
i64.ne $push14=, $pop12, $pop13
br_if 1, $pop14 # 1: down to label5
# BB#11: # %for.cond26
# in Loop: Header=BB0_10 Depth=1
i32.const $push40=, 8
i32.add $1=, $1, $pop40
i32.const $push39=, 1
i32.add $push38=, $2, $pop39
tee_local $push37=, $2=, $pop38
i32.const $push36=, 63
i32.le_s $push15=, $pop37, $pop36
br_if 0, $pop15 # 0: up to label6
# BB#12: # %for.end37
end_loop
i32.const $push16=, 0
call exit@FUNCTION, $pop16
unreachable
.LBB0_13: # %if.then33
end_block # label5:
call abort@FUNCTION
unreachable
.LBB0_14: # %if.then
end_block # label1:
call abort@FUNCTION
unreachable
.LBB0_15: # %if.then21
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 label7
# 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
br_table $1, 1, 0, 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, 1 # 1: down to label70
# 0: down to label71
# 2: down to label69
# 3: down to label68
# 4: down to label67
# 5: down to label66
# 6: down to label65
# 7: down to label64
# 8: down to label63
# 9: down to label62
# 10: down to label61
# 11: down to label60
# 12: down to label59
# 13: down to label58
# 14: down to label57
# 15: down to label56
# 16: down to label55
# 17: down to label54
# 18: down to label53
# 19: down to label52
# 20: down to label51
# 21: down to label50
# 22: down to label49
# 23: down to label48
# 24: down to label47
# 25: down to label46
# 26: down to label45
# 27: down to label44
# 28: down to label43
# 29: down to label42
# 30: down to label41
# 31: down to label40
# 32: down to label39
# 33: down to label38
# 34: down to label37
# 35: down to label36
# 36: down to label35
# 37: down to label34
# 38: down to label33
# 39: down to label32
# 40: down to label31
# 41: down to label30
# 42: down to label29
# 43: down to label28
# 44: down to label27
# 45: down to label26
# 46: down to label25
# 47: down to label24
# 48: down to label23
# 49: down to label22
# 50: down to label21
# 51: down to label20
# 52: down to label19
# 53: down to label18
# 54: down to label17
# 55: down to label16
# 56: down to label15
# 57: down to label14
# 58: down to label13
# 59: down to label12
# 60: down to label11
# 61: down to label10
# 62: down to label9
# 63: down to label8
.LBB1_2: # %sw.bb1
end_block # label71:
i64.const $push64=, 1
i64.shr_s $0=, $0, $pop64
.LBB1_3: # %sw.epilog
end_block # label70:
return $0
.LBB1_4: # %sw.bb3
end_block # label69:
i64.const $push63=, 2
i64.shr_s $push65=, $0, $pop63
return $pop65
.LBB1_5: # %sw.bb5
end_block # label68:
i64.const $push62=, 3
i64.shr_s $push66=, $0, $pop62
return $pop66
.LBB1_6: # %sw.bb7
end_block # label67:
i64.const $push61=, 4
i64.shr_s $push67=, $0, $pop61
return $pop67
.LBB1_7: # %sw.bb9
end_block # label66:
i64.const $push60=, 5
i64.shr_s $push68=, $0, $pop60
return $pop68
.LBB1_8: # %sw.bb11
end_block # label65:
i64.const $push59=, 6
i64.shr_s $push69=, $0, $pop59
return $pop69
.LBB1_9: # %sw.bb13
end_block # label64:
i64.const $push58=, 7
i64.shr_s $push70=, $0, $pop58
return $pop70
.LBB1_10: # %sw.bb15
end_block # label63:
i64.const $push57=, 8
i64.shr_s $push71=, $0, $pop57
return $pop71
.LBB1_11: # %sw.bb17
end_block # label62:
i64.const $push56=, 9
i64.shr_s $push72=, $0, $pop56
return $pop72
.LBB1_12: # %sw.bb19
end_block # label61:
i64.const $push55=, 10
i64.shr_s $push73=, $0, $pop55
return $pop73
.LBB1_13: # %sw.bb21
end_block # label60:
i64.const $push54=, 11
i64.shr_s $push74=, $0, $pop54
return $pop74
.LBB1_14: # %sw.bb23
end_block # label59:
i64.const $push53=, 12
i64.shr_s $push75=, $0, $pop53
return $pop75
.LBB1_15: # %sw.bb25
end_block # label58:
i64.const $push52=, 13
i64.shr_s $push76=, $0, $pop52
return $pop76
.LBB1_16: # %sw.bb27
end_block # label57:
i64.const $push51=, 14
i64.shr_s $push77=, $0, $pop51
return $pop77
.LBB1_17: # %sw.bb29
end_block # label56:
i64.const $push50=, 15
i64.shr_s $push78=, $0, $pop50
return $pop78
.LBB1_18: # %sw.bb31
end_block # label55:
i64.const $push49=, 16
i64.shr_s $push79=, $0, $pop49
return $pop79
.LBB1_19: # %sw.bb33
end_block # label54:
i64.const $push48=, 17
i64.shr_s $push80=, $0, $pop48
return $pop80
.LBB1_20: # %sw.bb35
end_block # label53:
i64.const $push47=, 18
i64.shr_s $push81=, $0, $pop47
return $pop81
.LBB1_21: # %sw.bb37
end_block # label52:
i64.const $push46=, 19
i64.shr_s $push82=, $0, $pop46
return $pop82
.LBB1_22: # %sw.bb39
end_block # label51:
i64.const $push45=, 20
i64.shr_s $push83=, $0, $pop45
return $pop83
.LBB1_23: # %sw.bb41
end_block # label50:
i64.const $push44=, 21
i64.shr_s $push84=, $0, $pop44
return $pop84
.LBB1_24: # %sw.bb43
end_block # label49:
i64.const $push43=, 22
i64.shr_s $push85=, $0, $pop43
return $pop85
.LBB1_25: # %sw.bb45
end_block # label48:
i64.const $push42=, 23
i64.shr_s $push86=, $0, $pop42
return $pop86
.LBB1_26: # %sw.bb47
end_block # label47:
i64.const $push41=, 24
i64.shr_s $push87=, $0, $pop41
return $pop87
.LBB1_27: # %sw.bb49
end_block # label46:
i64.const $push40=, 25
i64.shr_s $push88=, $0, $pop40
return $pop88
.LBB1_28: # %sw.bb51
end_block # label45:
i64.const $push39=, 26
i64.shr_s $push89=, $0, $pop39
return $pop89
.LBB1_29: # %sw.bb53
end_block # label44:
i64.const $push38=, 27
i64.shr_s $push90=, $0, $pop38
return $pop90
.LBB1_30: # %sw.bb55
end_block # label43:
i64.const $push37=, 28
i64.shr_s $push91=, $0, $pop37
return $pop91
.LBB1_31: # %sw.bb57
end_block # label42:
i64.const $push36=, 29
i64.shr_s $push92=, $0, $pop36
return $pop92
.LBB1_32: # %sw.bb59
end_block # label41:
i64.const $push35=, 30
i64.shr_s $push93=, $0, $pop35
return $pop93
.LBB1_33: # %sw.bb61
end_block # label40:
i64.const $push34=, 31
i64.shr_s $push94=, $0, $pop34
return $pop94
.LBB1_34: # %sw.bb63
end_block # label39:
i64.const $push33=, 32
i64.shr_s $push95=, $0, $pop33
return $pop95
.LBB1_35: # %sw.bb65
end_block # label38:
i64.const $push32=, 33
i64.shr_s $push96=, $0, $pop32
return $pop96
.LBB1_36: # %sw.bb67
end_block # label37:
i64.const $push31=, 34
i64.shr_s $push97=, $0, $pop31
return $pop97
.LBB1_37: # %sw.bb69
end_block # label36:
i64.const $push30=, 35
i64.shr_s $push98=, $0, $pop30
return $pop98
.LBB1_38: # %sw.bb71
end_block # label35:
i64.const $push29=, 36
i64.shr_s $push99=, $0, $pop29
return $pop99
.LBB1_39: # %sw.bb73
end_block # label34:
i64.const $push28=, 37
i64.shr_s $push100=, $0, $pop28
return $pop100
.LBB1_40: # %sw.bb75
end_block # label33:
i64.const $push27=, 38
i64.shr_s $push101=, $0, $pop27
return $pop101
.LBB1_41: # %sw.bb77
end_block # label32:
i64.const $push26=, 39
i64.shr_s $push102=, $0, $pop26
return $pop102
.LBB1_42: # %sw.bb79
end_block # label31:
i64.const $push25=, 40
i64.shr_s $push103=, $0, $pop25
return $pop103
.LBB1_43: # %sw.bb81
end_block # label30:
i64.const $push24=, 41
i64.shr_s $push104=, $0, $pop24
return $pop104
.LBB1_44: # %sw.bb83
end_block # label29:
i64.const $push23=, 42
i64.shr_s $push105=, $0, $pop23
return $pop105
.LBB1_45: # %sw.bb85
end_block # label28:
i64.const $push22=, 43
i64.shr_s $push106=, $0, $pop22
return $pop106
.LBB1_46: # %sw.bb87
end_block # label27:
i64.const $push21=, 44
i64.shr_s $push107=, $0, $pop21
return $pop107
.LBB1_47: # %sw.bb89
end_block # label26:
i64.const $push20=, 45
i64.shr_s $push108=, $0, $pop20
return $pop108
.LBB1_48: # %sw.bb91
end_block # label25:
i64.const $push19=, 46
i64.shr_s $push109=, $0, $pop19
return $pop109
.LBB1_49: # %sw.bb93
end_block # label24:
i64.const $push18=, 47
i64.shr_s $push110=, $0, $pop18
return $pop110
.LBB1_50: # %sw.bb95
end_block # label23:
i64.const $push17=, 48
i64.shr_s $push111=, $0, $pop17
return $pop111
.LBB1_51: # %sw.bb97
end_block # label22:
i64.const $push16=, 49
i64.shr_s $push112=, $0, $pop16
return $pop112
.LBB1_52: # %sw.bb99
end_block # label21:
i64.const $push15=, 50
i64.shr_s $push113=, $0, $pop15
return $pop113
.LBB1_53: # %sw.bb101
end_block # label20:
i64.const $push14=, 51
i64.shr_s $push114=, $0, $pop14
return $pop114
.LBB1_54: # %sw.bb103
end_block # label19:
i64.const $push13=, 52
i64.shr_s $push115=, $0, $pop13
return $pop115
.LBB1_55: # %sw.bb105
end_block # label18:
i64.const $push12=, 53
i64.shr_s $push116=, $0, $pop12
return $pop116
.LBB1_56: # %sw.bb107
end_block # label17:
i64.const $push11=, 54
i64.shr_s $push117=, $0, $pop11
return $pop117
.LBB1_57: # %sw.bb109
end_block # label16:
i64.const $push10=, 55
i64.shr_s $push118=, $0, $pop10
return $pop118
.LBB1_58: # %sw.bb111
end_block # label15:
i64.const $push9=, 56
i64.shr_s $push119=, $0, $pop9
return $pop119
.LBB1_59: # %sw.bb113
end_block # label14:
i64.const $push8=, 57
i64.shr_s $push120=, $0, $pop8
return $pop120
.LBB1_60: # %sw.bb115
end_block # label13:
i64.const $push7=, 58
i64.shr_s $push121=, $0, $pop7
return $pop121
.LBB1_61: # %sw.bb117
end_block # label12:
i64.const $push6=, 59
i64.shr_s $push122=, $0, $pop6
return $pop122
.LBB1_62: # %sw.bb119
end_block # label11:
i64.const $push5=, 60
i64.shr_s $push123=, $0, $pop5
return $pop123
.LBB1_63: # %sw.bb121
end_block # label10:
i64.const $push4=, 61
i64.shr_s $push124=, $0, $pop4
return $pop124
.LBB1_64: # %sw.bb123
end_block # label9:
i64.const $push3=, 62
i64.shr_s $push125=, $0, $pop3
return $pop125
.LBB1_65: # %sw.bb125
end_block # label8:
i64.const $push2=, 63
i64.shr_s $push126=, $0, $pop2
return $pop126
.LBB1_66: # %sw.default
end_block # label7:
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
.functype abort, void
.functype exit, void, i32