diff options
Diffstat (limited to 'test/torture-s/pr49419.c.s')
-rw-r--r-- | test/torture-s/pr49419.c.s | 263 |
1 files changed, 263 insertions, 0 deletions
diff --git a/test/torture-s/pr49419.c.s b/test/torture-s/pr49419.c.s new file mode 100644 index 000000000..43a83bbda --- /dev/null +++ b/test/torture-s/pr49419.c.s @@ -0,0 +1,263 @@ + .text + .file "/b/build/slave/linux/build/src/src/work/gcc/gcc/testsuite/gcc.c-torture/execute/pr49419.c" + .section .text.foo,"ax",@progbits + .hidden foo + .globl foo + .type foo,@function +foo: # @foo + .param i32, i32, i32, i32 + .result i32 + .local i32, i32, i32 +# BB#0: # %entry + i32.const $6=, 0 + block + i32.const $push0=, -1 + i32.eq $push1=, $0, $pop0 + br_if $pop1, 0 # 0: down to label0 +# BB#1: # %for.cond.preheader + i32.const $5=, 0 + i32.const $push26=, 0 + i32.load $4=, t($pop26) + block + i32.const $push6=, 1 + i32.lt_s $push7=, $3, $pop6 + br_if $pop7, 0 # 0: down to label1 +# BB#2: # %for.cond.preheader + copy_local $6=, $0 + i32.const $push3=, 12 + i32.mul $push4=, $0, $pop3 + i32.add $push5=, $4, $pop4 + i32.load $push2=, 0($pop5) + i32.ne $push8=, $pop2, $1 + br_if $pop8, 0 # 0: down to label1 +.LBB0_3: # %for.body + # =>This Inner Loop Header: Depth=1 + loop # label2: + i32.const $push13=, 1 + i32.add $5=, $5, $pop13 + i32.ge_s $push16=, $5, $3 + br_if $pop16, 1 # 1: down to label3 +# BB#4: # %for.body + # in Loop: Header=BB0_3 Depth=1 + i32.const $push10=, 12 + i32.mul $push11=, $6, $pop10 + i32.add $push12=, $4, $pop11 + i32.load $6=, 4($pop12) + i32.const $push27=, 12 + i32.mul $push14=, $6, $pop27 + i32.add $push15=, $4, $pop14 + i32.load $push9=, 0($pop15) + i32.eq $push17=, $pop9, $1 + br_if $pop17, 0 # 0: up to label2 +.LBB0_5: # %for.end + end_loop # label3: + end_block # label1: + block + i32.eq $push18=, $5, $3 + br_if $pop18, 0 # 0: down to label4 +# BB#6: # %if.end7 + block + i32.const $push28=, 1 + i32.lt_s $push19=, $5, $pop28 + br_if $pop19, 0 # 0: down to label5 +# BB#7: # %for.body10.preheader + i32.const $push20=, 2 + i32.shl $push21=, $5, $pop20 + i32.add $6=, $2, $pop21 + i32.const $push29=, 1 + i32.add $3=, $5, $pop29 +.LBB0_8: # %for.body10 + # =>This Inner Loop Header: Depth=1 + loop # label6: + i32.const $push34=, 12 + i32.mul $push22=, $0, $pop34 + i32.add $push23=, $4, $pop22 + tee_local $push33=, $0=, $pop23 + i32.load $push24=, 8($pop33) + i32.store $discard=, 0($6), $pop24 + i32.load $0=, 4($0) + i32.const $push32=, -1 + i32.add $3=, $3, $pop32 + i32.const $push31=, -4 + i32.add $6=, $6, $pop31 + i32.const $push30=, 1 + i32.gt_s $push25=, $3, $pop30 + br_if $pop25, 0 # 0: up to label6 +.LBB0_9: # %for.end16 + end_loop # label7: + end_block # label5: + i32.store $discard=, 0($2), $0 + i32.const $push35=, 1 + i32.add $6=, $5, $pop35 + br 1 # 1: down to label0 +.LBB0_10: # %if.then6 + end_block # label4: + call abort@FUNCTION + unreachable +.LBB0_11: # %cleanup + end_block # label0: + return $6 + .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, i32, i32, i32, i32, i32 +# BB#0: # %for.body.i.preheader + i32.const $6=, __stack_pointer + i32.load $6=, 0($6) + i32.const $7=, 48 + i32.sub $11=, $6, $7 + i32.const $7=, __stack_pointer + i32.store $11=, 0($7), $11 + i32.const $2=, 0 + i32.const $push39=, 0 + i32.const $push1=, 36 + i32.call $discard=, memset@FUNCTION, $11, $pop39, $pop1 + i32.const $push3=, 4 + i32.or $push4=, $11, $pop3 + i32.const $push0=, 1 + i32.store $push2=, 0($11):p2align=4, $pop0 + i32.store $0=, 0($pop4), $pop2 + i32.const $push38=, 12 + i32.or $push8=, $11, $pop38 + i32.load $1=, 0($pop8) + i32.const $push5=, 8 + i32.or $push6=, $11, $pop5 + i32.const $push7=, 2 + i32.store $5=, 0($pop6):p2align=3, $pop7 + i32.const $push37=, 0 + i32.store $discard=, t($pop37), $11 + copy_local $4=, $0 + copy_local $3=, $0 + block + i32.ne $push9=, $1, $0 + br_if $pop9, 0 # 0: down to label8 +.LBB1_1: # %for.body.i.for.body.i_crit_edge + # =>This Inner Loop Header: Depth=1 + loop # label9: + i32.add $3=, $2, $5 + i32.add $2=, $2, $0 + i32.gt_s $push15=, $3, $5 + br_if $pop15, 1 # 1: down to label10 +# BB#2: # %for.body.i.for.body.i_crit_edge + # in Loop: Header=BB1_1 Depth=1 + i32.const $push41=, 12 + i32.mul $push11=, $4, $pop41 + i32.add $push12=, $11, $pop11 + i32.load $4=, 4($pop12) + i32.const $push40=, 12 + i32.mul $push13=, $4, $pop40 + i32.add $push14=, $11, $pop13 + i32.load $push10=, 0($pop14) + i32.const $push16=, 1 + i32.eq $push17=, $pop10, $pop16 + br_if $pop17, 0 # 0: up to label9 +.LBB1_3: # %for.end.i + end_loop # label10: + end_block # label8: + block + i32.const $push18=, 3 + i32.eq $push19=, $3, $pop18 + br_if $pop19, 0 # 0: down to label11 +# BB#4: # %if.end7.i + block + block + i32.const $push42=, 0 + i32.lt_s $push20=, $2, $pop42 + br_if $pop20, 0 # 0: down to label13 +# BB#5: # %for.body10.i.preheader + i32.const $5=, 1 + i32.const $push21=, 2 + i32.shl $push22=, $3, $pop21 + tee_local $push44=, $4=, $pop22 + i32.const $9=, 36 + i32.add $9=, $11, $9 + block + i32.add $push23=, $9, $pop44 + i32.const $push43=, 2 + i32.store $push24=, 0($pop23), $pop43 + i32.lt_s $push25=, $3, $pop24 + br_if $pop25, 0 # 0: down to label14 +# BB#6: # %for.body10.i.for.body10.i_crit_edge.preheader + i32.const $10=, 36 + i32.add $10=, $11, $10 + i32.add $push26=, $4, $10 + i32.const $push45=, -4 + i32.add $4=, $pop26, $pop45 + i32.const $5=, 1 +.LBB1_7: # %for.body10.i.for.body10.i_crit_edge + # =>This Inner Loop Header: Depth=1 + loop # label15: + i32.const $push51=, 12 + i32.mul $push27=, $5, $pop51 + i32.add $push28=, $11, $pop27 + tee_local $push50=, $5=, $pop28 + i32.load $push29=, 8($pop50) + i32.store $discard=, 0($4), $pop29 + i32.load $5=, 4($5) + i32.const $push49=, -1 + i32.add $3=, $3, $pop49 + i32.const $push48=, -4 + i32.add $4=, $4, $pop48 + i32.const $push47=, 1 + i32.gt_s $push30=, $3, $pop47 + br_if $pop30, 0 # 0: up to label15 +.LBB1_8: # %foo.exit + end_loop # label16: + end_block # label14: + i32.store $3=, 36($11), $5 + br_if $2, 1 # 1: down to label12 +# BB#9: # %if.end + block + i32.const $push31=, 1 + i32.ne $push32=, $3, $pop31 + br_if $pop32, 0 # 0: down to label17 +# BB#10: # %lor.lhs.false + i32.load $push33=, 40($11) + i32.const $push34=, 2 + i32.ne $push35=, $pop33, $pop34 + br_if $pop35, 0 # 0: down to label17 +# BB#11: # %if.end6 + i32.const $push36=, 0 + i32.const $8=, 48 + i32.add $11=, $11, $8 + i32.const $8=, __stack_pointer + i32.store $11=, 0($8), $11 + return $pop36 +.LBB1_12: # %if.then5 + end_block # label17: + call abort@FUNCTION + unreachable +.LBB1_13: # %foo.exit.thread + end_block # label13: + i32.const $push46=, 0 + i32.store $discard=, 36($11), $pop46 +.LBB1_14: # %if.then + end_block # label12: + call abort@FUNCTION + unreachable +.LBB1_15: # %if.then6.i + end_block # label11: + call abort@FUNCTION + unreachable + .endfunc +.Lfunc_end1: + .size main, .Lfunc_end1-main + + .hidden t # @t + .type t,@object + .section .bss.t,"aw",@nobits + .globl t + .p2align 2 +t: + .int32 0 + .size t, 4 + + + .ident "clang version 3.9.0 " |