blob: e2921f54a0c17fcec52c5262104285c6b65bad2b [file] [edit]
.text
.file "/usr/local/google/home/jgravelle/code/wasm/waterfall/src/work/gcc/gcc/testsuite/gcc.c-torture/execute/pr59358.c"
.section .text.foo,"ax",@progbits
.hidden foo
.globl foo
.type foo,@function
foo: # @foo
.param i32, i32
.result i32
.local i32
# BB#0: # %entry
i32.load $0=, 0($0)
block
block
i32.const $push0=, 16
i32.gt_s $push1=, $1, $pop0
br_if 0, $pop1 # 0: down to label1
# BB#1: # %entry
i32.ge_s $push2=, $0, $1
br_if 1, $pop2 # 1: down to label0
# BB#2: # %while.cond.preheader
.LBB0_3: # %while.cond
# =>This Inner Loop Header: Depth=1
loop # label2:
copy_local $push8=, $0
tee_local $push7=, $2=, $pop8
i32.const $push6=, 1
i32.shl $0=, $pop7, $pop6
i32.lt_s $push3=, $2, $1
br_if 0, $pop3 # 0: up to label2
# BB#4: # %if.end
end_loop
return $2
.LBB0_5:
end_block # label1:
copy_local $push5=, $0
return $pop5
.LBB0_6:
end_block # label0:
copy_local $push4=, $0
# fallthrough-return: $pop4
.endfunc
.Lfunc_end0:
.size foo, .Lfunc_end0-foo
.section .text.main,"ax",@progbits
.hidden main
.globl main
.type main,@function
main: # @main
.result i32
.local i32, i32, i32, i32, i32, i32, i32
# BB#0: # %entry
i32.const $push17=, 0
i32.const $push14=, 0
i32.load $push15=, __stack_pointer($pop14)
i32.const $push16=, 16
i32.sub $push27=, $pop15, $pop16
tee_local $push26=, $6=, $pop27
i32.store __stack_pointer($pop17), $pop26
i32.const $push25=, 1
i32.store 12($6), $pop25
i32.const $0=, 2
i32.const $1=, 2
i32.const $2=, 1
.LBB1_1: # %for.body
# =>This Inner Loop Header: Depth=1
block
loop # label4:
i32.const $push21=, 12
i32.add $push22=, $6, $pop21
i32.const $push33=, 16
i32.call $5=, foo@FUNCTION, $pop22, $pop33
copy_local $4=, $0
block
block
i32.const $push32=, -1
i32.add $push31=, $1, $pop32
tee_local $push30=, $3=, $pop31
i32.const $push29=, -8
i32.and $push1=, $pop30, $pop29
i32.const $push28=, 8
i32.eq $push2=, $pop1, $pop28
br_if 0, $pop2 # 0: down to label6
# BB#2: # %if.else
# in Loop: Header=BB1_1 Depth=1
block
i32.const $push35=, -4
i32.and $push3=, $3, $pop35
i32.const $push34=, 4
i32.ne $push4=, $pop3, $pop34
br_if 0, $pop4 # 0: down to label7
# BB#3: # %if.then6
# in Loop: Header=BB1_1 Depth=1
i32.const $push36=, 2
i32.shl $push13=, $2, $pop36
i32.eq $push6=, $5, $pop13
br_if 2, $pop6 # 2: down to label5
br 4 # 4: down to label3
.LBB1_4: # %if.else10
# in Loop: Header=BB1_1 Depth=1
end_block # label7:
i32.const $push39=, 24
i32.const $push38=, 16
i32.const $push37=, 4
i32.eq $push5=, $1, $pop37
i32.select $4=, $pop39, $pop38, $pop5
.LBB1_5: # %if.end15
# in Loop: Header=BB1_1 Depth=1
end_block # label6:
i32.ne $push7=, $5, $4
br_if 2, $pop7 # 2: down to label3
.LBB1_6: # %if.end18
# in Loop: Header=BB1_1 Depth=1
end_block # label5:
i32.const $push23=, 12
i32.add $push24=, $6, $pop23
i32.const $push41=, 7
i32.call $4=, foo@FUNCTION, $pop24, $pop41
copy_local $5=, $2
block
i32.const $push40=, 6
i32.gt_s $push8=, $3, $pop40
br_if 0, $pop8 # 0: down to label8
# BB#7: # %if.else22
# in Loop: Header=BB1_1 Depth=1
copy_local $5=, $0
i32.const $push42=, 3
i32.gt_s $push9=, $3, $pop42
br_if 0, $pop9 # 0: down to label8
# BB#8: # %if.else28
# in Loop: Header=BB1_1 Depth=1
i32.const $push45=, 12
i32.const $push44=, 8
i32.const $push43=, 4
i32.eq $push10=, $1, $pop43
i32.select $5=, $pop45, $pop44, $pop10
.LBB1_9: # %if.end34
# in Loop: Header=BB1_1 Depth=1
end_block # label8:
i32.ne $push11=, $4, $5
br_if 1, $pop11 # 1: down to label3
# BB#10: # %if.end37
# in Loop: Header=BB1_1 Depth=1
i32.const $push49=, 2
i32.add $0=, $0, $pop49
i32.const $push48=, 1
i32.add $2=, $2, $pop48
i32.store 12($6), $1
i32.const $push47=, 17
i32.lt_s $3=, $1, $pop47
i32.const $push46=, 1
i32.add $push0=, $1, $pop46
copy_local $1=, $pop0
br_if 0, $3 # 0: up to label4
# BB#11: # %for.end
end_loop
i32.const $push20=, 0
i32.const $push18=, 16
i32.add $push19=, $6, $pop18
i32.store __stack_pointer($pop20), $pop19
i32.const $push12=, 0
return $pop12
.LBB1_12: # %if.then36
end_block # label3:
call abort@FUNCTION
unreachable
.endfunc
.Lfunc_end1:
.size main, .Lfunc_end1-main
.ident "clang version 4.0.0 "
.functype abort, void