.ai/ compiler/ lib/ scripts/ seed/ test/ tests/ abi.sizes.rad 3.4 KiB addfn.rad 52 B addfn.ril 76 B aggregate.return.rad 4.1 KiB arith.assignment.rad 595 B arith.basic.rad 191 B arith.modulo.rad 111 B arith.subword.rad 3.9 KiB arith.subword.ril 4.3 KiB arith.sum.rad 192 B arith.w64.rad 4.1 KiB arith.w64.ril 5.2 KiB array.aggregate.stride.rad 753 B array.aggregate.stride.ril 460 B array.assign.rad 221 B array.assign.ril 525 B array.bounds.check.rad 321 B array.index.assign.rad 382 B array.index.rad 264 B array.index.ril 495 B array.len.const.rad 348 B array.len.const.ril 200 B array.length.rad 277 B array.literal.rad 136 B array.literal.ril 329 B array.math.rad 1.2 KiB array.nested.assign.rad 319 B array.nested.rad 325 B array.nested.ril 921 B array.record.elements.rad 1.7 KiB array.repeat.edge.rad 548 B array.repeat.rad 828 B array.repeat.ril 3.0 KiB array.return.rad 345 B array.slice.empty.rad 123 B array.slice.full.rad 110 B array.slice.full.ril 168 B array.slice.gen.end.rad 141 B array.slice.gen.index.rad 154 B array.slice.gen.open.rad 140 B array.slice.gen.start.end.rad 142 B array.slice.gen.start.rad 141 B array.slice.openend.rad 134 B array.slice.openend.ril 245 B array.slice.openstart.rad 134 B array.slice.openstart.ril 183 B array.slice.rad 774 B as.precedence.rad 226 B assert.basic.rad 402 B assert.basic.ril 623 B assert.fail.rad 138 B assert.false.rad 140 B assert.message.rad 123 B assert.message.ril 141 B assert.true.rad 115 B assign.loop.rad 205 B assign.loop.ril 242 B assign.multi.var.rad 182 B assign.multi.var.ril 73 B assign.mutable.rad 6.1 KiB assign.param.rad 142 B assign.param.ril 96 B assign.rad 144 B assign.self.ref.rad 153 B assign.self.ref.ril 92 B assign.sequential.rad 155 B assign.sequential.ril 52 B assign.shadow.mutable.rad 461 B assign.use.intermediate.rad 187 B assign.use.intermediate.ril 99 B average.rad 185 B average.ril 359 B binop.arith.rad 479 B binop.arith.ril 389 B binop.bitwise.rad 1.2 KiB binop.bitwise.ril 1.2 KiB binop.cmp.rad 441 B binop.logical.rad 216 B binop.logical.ril 373 B binop.shift.rad 197 B binop.shift.ril 149 B binop.unsigned.rad 317 B binop.unsigned.ril 236 B bool.comparison.array.rad 688 B bool.comparison.nested.gen.rad 1.0 KiB bool.comparison.opt.rad 905 B bool.comparison.record.gen.rad 1.0 KiB bool.comparison.record.rad 1.1 KiB bool.comparison.slice.gen.rad 157 B bool.comparison.slice.rad 4.1 KiB bool.comparison.slice.record.gen.rad 2.0 KiB bool.comparison.slice.union.gen.rad 2.5 KiB bool.comparison.union.ctor.rad 705 B bool.comparison.union.gen.rad 1.2 KiB bool.comparison.union.record.gen.rad 1.5 KiB bool.comparison.union.simple.gen.rad 296 B bool.operators.complex.rad 384 B bool.operators.rad 831 B bool.short.circuit.rad 2.3 KiB bool.simple.rad 209 B bool.values.rad 787 B builtin.alignof.rad 692 B builtin.alignof.ril 287 B builtin.size.align.rad 1.2 KiB builtin.sizeof.rad 650 B builtin.sizeof.ril 282 B builtin.sliceof.mut.rad 621 B builtin.sliceof.rad 505 B byte.load.store.rad 372 B byte.load.store.ril 520 B call.arg.clobber.rad 732 B call.basic.rad 256 B call.clobber.rad 477 B call.tests.rad 764 B call.tests.ril 603 B cast.basic.rad 848 B cast.basic.ril 594 B cast.narrow.rad 583 B cast.narrow.ril 557 B cast.ptr.rad 276 B cast.ptr.ril 231 B cast.same.size.rad 1.0 KiB cast.same.size.ril 1.1 KiB casting.numbers.rad 1.5 KiB char.literal.rad 180 B cmp.rel.rad 733 B cmp.rel.ril 467 B cmp.unsigned.rad 733 B cmp.unsigned.ril 467 B coercion.implicit.rad 917 B coercion.implicit.ril 1.0 KiB compound.assign.field.rad 300 B compound.assign.rad 1.1 KiB compound.assign.ril 2.0 KiB cond.assign.merge.basic.rad 213 B cond.assign.merge.basic.ril 172 B cond.assign.merge.rad 206 B cond.assign.merge.ril 169 B cond.assign.rad 738 B cond.elseif.rad 204 B cond.elseif.ril 181 B cond.expr.aggregate.rad 1.2 KiB cond.expr.rad 1.9 KiB cond.expr.ril 3.5 KiB cond.for.else.break.rad 341 B cond.for.indexed.rad 253 B cond.for.rad 180 B cond.for.range.indexed.rad 541 B cond.for.range.rad 186 B cond.for.unsigned.range.rad 659 B cond.forever.break.continue.rad 197 B cond.forever.break.rad 247 B cond.fused.rad 941 B cond.if.case.rad 2.2 KiB cond.if.else.min.rad 158 B cond.if.else.rad 240 B cond.if.elseif.rad 435 B cond.if.noelse.rad 135 B cond.if.rad 880 B cond.ifelse.rad 104 B cond.ifelse.ril 117 B cond.iflet.case.rad 170 B cond.iflet.case.ril 114 B cond.iflet.guard.rad 182 B cond.iflet.guard.ril 165 B cond.iflet.mut.rad 191 B cond.iflet.mut.ril 217 B cond.iflet.noelse.rad 156 B cond.iflet.noelse.ril 225 B cond.iflet.optional.rad 184 B cond.iflet.optional.ril 118 B cond.iflet.optional.value.rad 194 B cond.iflet.optional.value.ril 206 B cond.letelse.case.rad 146 B cond.letelse.case.ril 118 B cond.letelse.guard.rad 160 B cond.letelse.guard.ril 169 B cond.letelse.mut.rad 181 B cond.letelse.mut.ril 221 B cond.letelse.optional.rad 160 B cond.letelse.optional.ril 122 B cond.match.fallthrough.rad 384 B cond.match.guard.rad 1.4 KiB cond.match.guard.regalloc.rad 1.3 KiB cond.nested.rad 138 B cond.nested.ril 185 B cond.simple.rad 86 B cond.simple.ril 118 B cond.while.else.break.rad 297 B cond.while.rad 134 B const-expr-array-size.rad 356 B const-expr-cast.rad 1.0 KiB const-expr-literal.rad 628 B const-expr-refs.rad 716 B const.array.copy.mutate.rad 386 B const.array.ident.rad 238 B const.array.ident.ril 146 B const.array.rad 210 B const.array.record.ident.rad 378 B const.array.record.ident.ril 353 B const.array.repeat.record.rad 216 B const.array.repeat.record.ril 399 B const.array.ril 371 B const.array.strings.slice.rad 271 B const.array.strings.slice.ril 539 B const.basic.rad 340 B const.char.rad 174 B const.fn.array.rad 664 B const.negative.rad 322 B const.negative.ril 338 B const.record.array.rad 1.2 KiB const.record.array.simple.rad 538 B const.record.ctor.rad 185 B const.record.ctor.ril 414 B const.record.fn.rad 353 B const.record.mutcopy.rad 450 B const.record.mutcopy.ril 385 B const.record.nested.rad 393 B const.record.nested.ril 474 B const.record.packed.rad 266 B const.record.packed.ril 284 B const.record.padded.rad 266 B const.record.padded.ril 318 B const.record.rad 197 B const.record.ril 220 B const.record.union.rad 593 B const.record.union.ril 625 B const.scalar.rad 102 B const.scalar.ril 82 B const.slice.of.slices.rad 232 B const.slice.of.slices.ril 749 B const.slice.param.rad 333 B const.string.rad 111 B const.string.ril 285 B const.string.scoped.names.rad 254 B const.string.scoped.names.ril 840 B const.union.payload.ctor.rad 364 B const.union.payload.ctor.ril 506 B const.union.record.literal.rad 374 B const.union.record.literal.ril 505 B data.array.rad 782 B data.bool.rad 231 B data.i16.rad 276 B data.i32.rad 296 B data.i8.rad 263 B data.record.rad 576 B data.simple.rad 451 B data.u16.rad 235 B data.u32.rad 255 B data.u8.rad 223 B data.union.rad 901 B debug.tag.rad 557 B ecall.i64.rad 497 B edge.cases.2.rad 352 B edge.cases.3.rad 594 B edge.cases.4.rad 1.2 KiB edge.cases.5.rad 1.1 KiB edge.cases.6.rad 2.6 KiB edge.cases.7.addr.bug.rad 224 B edge.cases.8.bug.rad 523 B edge.cases.rad 238 B error.basic.rad 174 B error.catch.rad 1.6 KiB error.catch.return.rad 403 B error.catch.return.ril 634 B error.division.zero.rad 164 B error.modulo.zero.rad 162 B error.multi.basic.rad 687 B error.multi.catch.rad 787 B error.multi.catch.typed.binding.rad 806 B error.multi.catch.typed.catchall.rad 1.0 KiB error.multi.catch.typed.rad 1.1 KiB error.multi.propagate.multi.rad 968 B error.multi.propagate.rad 840 B error.multi.try.optional.rad 522 B error.slice.bounds.rad 219 B error.try.bang.success.rad 370 B error.try.catch.binding.rad 2.0 KiB error.try.optional.rad 1.9 KiB error.try.rad 4.0 KiB externfn.rad 39 B externfn.ril 37 B fibonacci.rad 122 B fibonacci.ril 247 B field.aggregate.rad 793 B field.aggregate.ril 782 B fn.block.scope.rad 508 B fn.callback.nested.rad 1.2 KiB fn.default.rad 146 B fn.local.rad 155 B fn.ptr.assign.rad 277 B fn.ptr.assign.ril 143 B fn.ptr.call.rad 258 B fn.ptr.call.ril 183 B fn.ptr.param.rad 356 B fn.ptr.param.ril 282 B fn.recursion.2.rad 239 B fn.void.rad 165 B for.else.continue.rad 1.1 KiB frame.large.rad 582 B if-let-mut.rad 1.2 KiB iflet.shadow.leak.rad 317 B index.u8.rad 594 B int.default.i64.rad 1.1 KiB integer.bitwise.basic.rad 708 B integer.overflow.rad 1.8 KiB intrinsic.ebreak.rad 97 B intrinsic.ebreak.ril 76 B intrinsic.ecall.rad 175 B intrinsic.ecall.ril 131 B large.blit.store.rad 2.1 KiB let.copy.semantics.rad 871 B let.copy.semantics.ril 879 B let.guard.rad 1.9 KiB let.placeholder.rad 291 B let.placeholder.ril 220 B literal.char.rad 209 B literal.char.ril 127 B literal.slice.bytes.rad 124 B literal.slice.bytes.ril 245 B literal.slice.dedup.rad 199 B literal.slice.dedup.ril 407 B literal.slice.empty.rad 100 B literal.slice.empty.ril 157 B literal.slice.multi.rad 170 B literal.slice.multi.ril 460 B literal.slice.rad 123 B literal.slice.record.rad 211 B literal.slice.record.ril 468 B literal.slice.ril 254 B literal.string.dedup.rad 179 B literal.string.dedup.ril 395 B literal.string.empty.rad 93 B literal.string.empty.ril 230 B literal.string.fns.rad 180 B literal.string.fns.ril 434 B literal.string.multi.rad 153 B literal.string.multi.ril 444 B literal.string.rad 108 B literal.string.ril 229 B literal.w64.rad 1.7 KiB load.u32.high.rad 1.8 KiB loc.addr.offset.bug.rad 425 B loc.addr.opt.to.opt.rad 448 B loc.addr.optional.assign.rad 423 B loc.addr.record.assign.rad 458 B local.multi.rad 85 B local.multi.ril 67 B local.mut.rad 75 B local.mut.ril 45 B local.simple.rad 60 B local.simple.ril 45 B loop.break.rad 152 B loop.break.ril 228 B loop.complex.flow.rad 1022 B loop.continue.rad 211 B loop.continue.ril 327 B loop.for.array.rad 219 B loop.for.array.ril 295 B loop.for.break.bound.rad 161 B loop.for.break.bound.ril 264 B loop.for.continue.rad 395 B loop.for.continue.ril 721 B loop.for.indexed.rad 145 B loop.for.indexed.ril 285 B loop.for.placeholder.rad 313 B loop.for.placeholder.ril 457 B loop.for.rad 116 B loop.for.ril 220 B loop.for.slice.rad 212 B loop.for.slice.ril 341 B loop.for.unsigned.range.rad 309 B loop.for.unsigned.range.ril 481 B loop.infinite.rad 41 B loop.infinite.ril 78 B loop.mutable.rad 371 B loop.mutable.ril 489 B loop.nested.break.rad 380 B loop.nested.break.ril 461 B loop.nested.continue.rad 406 B loop.nested.continue.ril 581 B loop.return.rad 137 B loop.return.ril 179 B loop.sealblock.rad 926 B loop.while.false.noparams.rad 175 B loop.while.false.noparams.ril 171 B loop.while.nested.shortcircuit.rad 860 B loop.while.nested.shortcircuit.ril 589 B loop.while.rad 156 B loop.while.ril 241 B loop.whilelet.case.rad 251 B loop.whilelet.case.ril 204 B loop.whilelet.guard.rad 257 B loop.whilelet.guard.ril 256 B loop.whilelet.optional.rad 208 B loop.whilelet.optional.ril 217 B loop.whilelet.union.rad 368 B loop.whilelet.union.ril 382 B match.array.rad 3.5 KiB match.char.rad 1.6 KiB match.more.rad 643 B match.more.ril 683 B match.multi.seal.rad 1002 B match.multi.seal.ril 923 B match.multi.survive.rad 1.6 KiB match.mutref.push.rad 1.0 KiB match.mutref.union.rad 677 B match.nested.call.rad 1.7 KiB match.nested.deep.rad 2.2 KiB match.nested.deref.rad 3.7 KiB match.nested.guard.rad 1.6 KiB match.nested.iflet.guard.rad 1.6 KiB match.nested.iflet.rad 1.4 KiB match.nested.iflet.ril 2.3 KiB match.nested.letelse.rad 828 B match.nested.letelse.union.rad 1.3 KiB match.nested.literal.rad 3.1 KiB match.nested.multi.rad 2.4 KiB match.nested.pattern.rad 5.2 KiB match.nested.pattern.ril 8.3 KiB match.nested.record.rad 2.1 KiB match.nested.record.ril 3.5 KiB match.nested.union.rad 2.3 KiB match.nested.union.ril 4.5 KiB match.nested.whilelet.rad 2.4 KiB match.optional.aggregate.rad 222 B match.optional.aggregate.ril 578 B match.optional.rad 183 B match.optional.ril 164 B match.record.pattern.rad 325 B match.record.pattern.ril 287 B match.simple.rad 367 B match.simple.ril 347 B match.string.rad 1.8 KiB match.switch.rad 217 B match.switch.ril 187 B match.value.copy.rad 2.0 KiB match.void.then.or.rad 1.6 KiB memzero.result.bug.rad 821 B memzero.union.bug.rad 591 B method.basic.rad 554 B method.chain.rad 560 B method.multiple.rad 888 B method.ptr.rad 662 B method.pub.rad 238 B method.return.rad 599 B method.throws.rad 829 B method.union.rad 424 B method.with.trait.rad 644 B mixedtypes.rad 79 B mixedtypes.ril 82 B multi.throw.basic.rad 272 B multi.throw.basic.ril 526 B multi.throw.catch.typed.rad 436 B multi.throw.catch.typed.ril 1015 B multi.throw.propagate.rad 335 B multi.throw.propagate.ril 873 B multiplefns.rad 110 B multiplefns.ril 146 B mutref.loop.bug.rad 1.8 KiB mutref.loop.rad 281 B mutref.loop.ril 368 B mutref.scalar.rad 228 B mutref.scalar.ril 324 B nil.cmp.rad 622 B nil.cmp.ril 423 B noparams.rad 38 B noparams.ril 43 B opt.array.hint.rad 951 B opt.assignment.bug.rad 1.3 KiB opt.bug.test.rad 1.4 KiB opt.if.let.complex.rad 6.2 KiB opt.if.let.guard.rad 809 B opt.if.let.rad 956 B opt.nil.check.rad 1.5 KiB opt.ptr.return.nil.rad 85 B opt.ptr.return.nil.ril 51 B opt.record.eq.rad 842 B opt.record.eq.rev.rad 307 B opt.record.eq.rev.ril 635 B opt.record.eq.ril 3.4 KiB opt.record.rad 655 B opt.return.array.rad 289 B opt.return.nested.rad 797 B opt.return.nil.rad 82 B opt.return.nil.ril 114 B opt.return.record.rad 344 B opt.return.value.rad 91 B opt.return.value.ril 138 B opt.slice.npo.rad 2.8 KiB opt.slice.npo.ril 6.5 KiB opt.type.rad 215 B opt.while.let.complex.rad 404 B optional.aggregate.eq.rad 286 B optional.aggregate.eq.ril 695 B optional.eq.rad 131 B optional.eq.ril 253 B optional.ptr.eq.rad 313 B optional.ptr.eq.ril 309 B panic.basic.rad 70 B panic.basic.ril 46 B panic.rad 111 B placeholder.basic.rad 148 B placeholder.comprehensive.rad 577 B pointer.copy.edge.case.rad 1.3 KiB pointer.slice.index.rad 284 B pointer.slice.store.rad 896 B pointerfn.rad 50 B pointerfn.ril 54 B prog.ackermann.rad 5.0 KiB prog.bignum.rad 9.5 KiB prog.binsearch.rad 2.5 KiB prog.bubblesort.rad 2.0 KiB prog.cordic.rad 6.9 KiB prog.crc32.rad 2.7 KiB prog.dijkstra.rad 7.7 KiB prog.eval.rad 6.2 KiB prog.hanoi.rad 3.8 KiB prog.huffman.rad 9.3 KiB prog.hybridsort.rad 3.1 KiB prog.linkedlist.rad 5.9 KiB prog.lzw.rad 6.7 KiB prog.matmul.rad 2.9 KiB prog.mersenne.rad 5.2 KiB prog.nqueens.rad 3.4 KiB prog.rbtree.rad 8.3 KiB prog.regex.rad 10.2 KiB prog.sha256.rad 7.1 KiB prog.sieve.rad 2.8 KiB prog.symtab.rad 10.1 KiB prog.tokenizer.rad 13.9 KiB prog.vm.rad 17.4 KiB ptr.addressof.field.rad 132 B ptr.addressof.field.ril 78 B ptr.addressof.local.rad 455 B ptr.addressof.local.ril 280 B ptr.addressof.rad 119 B ptr.addressof.ril 87 B ptr.assign.rad 137 B ptr.assign.ril 129 B ptr.deref.rad 622 B ptr.deref.record.rad 282 B ptr.deref.record.ril 190 B ptr.deref.ril 1.0 KiB ptr.eq.rad 981 B ptr.mutate.rad 244 B ptr.opaque.rad 1.4 KiB ptr.subscript.assign.rad 129 B ptr.subscript.assign.ril 162 B range.arithmetic.rad 723 B record.access.rad 300 B record.alignment.rad 194 B record.array.elements.rad 1.7 KiB record.assign.blit.rad 111 B record.assign.blit.ril 158 B record.copy.rad 2.0 KiB record.ctor.tuple.rad 69 B record.ctor.tuple.ril 127 B record.empty.eq.rad 272 B record.empty.eq.ril 226 B record.eq.rad 223 B record.eq.ril 214 B record.field.assign.rad 199 B record.field.assign.ril 307 B record.literal.labeled.rad 103 B record.literal.labeled.ril 127 B record.mixed.layout.rad 116 B record.mixed.layout.ril 149 B record.nested.calls.2.rad 612 B record.nested.calls.3.rad 749 B record.nested.eq.rad 246 B record.nested.eq.ril 522 B record.nested.lit.rad 170 B record.nested.lit.ril 188 B record.param.lit.rad 368 B record.ptr.access.rad 242 B record.ptr.access.ril 197 B record.ptr.mutate.rad 235 B record.shorthand.rad 1.5 KiB record.unlabeled.deref.rad 1.4 KiB record.unlabeled.rad 407 B ref.if.bug.rad 519 B ref.immut.loop.bug.rad 670 B ref.mut.ptr.rad 253 B regalloc.callee.save.rad 1.5 KiB regalloc.spill.reuse.rad 488 B reserve.loop.rad 407 B reserve.loop.ril 472 B result.void.success.rad 701 B return.lit.rad 45 B return.lit.ril 50 B return.param.rad 48 B return.param.ril 54 B simplefn.rad 45 B simplefn.ril 51 B slice.alloc.loop.rad 803 B slice.append.rad 4.1 KiB slice.append.ril 16.7 KiB slice.assign.mismatch.rad 216 B slice.assign.rad 1.4 KiB slice.basic.rad 742 B slice.basic.ril 711 B slice.cap.rad 956 B slice.delete.rad 986 B slice.delete.ril 3.4 KiB slice.eq.rad 126 B slice.eq.ril 209 B slice.index.rad 104 B slice.index.ril 152 B slice.mutable.rad 281 B slice.mutable.ril 876 B slice.of.rad 475 B slice.range.rad 606 B slice.range.ril 1.2 KiB slice.runtime.i32.rad 237 B slice.runtime.i32.ril 725 B slice.runtime.literal.rad 240 B slice.runtime.literal.ril 455 B slice.subslice.rad 1.4 KiB spill.blockarg.clobber.rad 3.5 KiB spill.loop.rad 1.6 KiB stack.local.corrupt.rad 335 B static.array.mutate.rad 402 B static.assign.rad 127 B static.assign.ril 244 B static.basic.rad 327 B static.fn.array.rad 628 B static.local.decl.rad 191 B static.local.decl.ril 280 B static.record.array.rad 518 B static.scalar.rad 109 B static.scalar.ril 135 B static.slice.index.assign.rad 408 B static.slice.offset.rad 683 B string.basic.rad 164 B string.escape.rad 364 B string.index.rad 131 B switch.blockargs.clobber.rad 1.4 KiB trait.aggregate.ret.rad 1.5 KiB trait.array.optional.rad 1.7 KiB trait.basic.rad 580 B trait.control.flow.rad 1.2 KiB trait.dispatch.rad 323 B trait.dispatch.ril 469 B trait.fn.param.rad 1.7 KiB trait.multiple.methods.rad 1.2 KiB trait.multiple.traits.rad 1.2 KiB trait.multiple.types.rad 1.3 KiB trait.object.rad 356 B trait.object.ril 496 B trait.supertrait.rad 2.6 KiB trait.supertrait.ril 3.4 KiB trait.throws.rad 1.0 KiB trait.writer.rad 2.6 KiB trivial.phi.rad 1.1 KiB trivial.phi.ril 512 B try.basic.rad 391 B try.basic.ril 879 B try.catch.rad 339 B try.catch.ril 837 B try.optional.rad 363 B try.optional.ril 760 B try.panic.rad 351 B try.panic.ril 639 B type.unify.rad 4.5 KiB undefined.aggregate.rad 152 B undefined.aggregate.ril 84 B undefined.primitive.rad 115 B undefined.primitive.ril 48 B undefined.rad 432 B undefined.record.field.rad 1.6 KiB undefined.record.field.ril 751 B union-tag.rad 926 B union.bitfield.rad 1.2 KiB union.ctor.rad 552 B union.ctor.ril 385 B union.discriminant.cast.rad 389 B union.edge.case.2.rad 694 B union.edge.case.3.rad 623 B union.eq.rad 783 B union.eq.ril 1.4 KiB union.eq.void.ctor.rad 378 B union.eq.void.ctor.ril 131 B union.eq.void.rad 178 B union.eq.void.ril 75 B union.match.bind.rad 259 B union.match.bind.ril 238 B union.match.ref.rad 1.1 KiB union.match.ref.ril 1.2 KiB union.match.tag.rad 858 B union.match.tag.ril 820 B union.mixed.assign.rad 992 B union.payload.mutref.rad 1.4 KiB union.payload.rad 595 B union.payload.record.eq.rad 292 B union.payload.record.eq.ril 984 B union.record.forward.rad 1.3 KiB union.record.literal.rad 444 B union.record.literal.ril 391 B union.variant.access.rad 731 B union.variant.access.ril 506 B union.void.match.rad 418 B union.void.rad 839 B unop.rad 478 B unop.ril 376 B unsafe.basic.rad 574 B unsafe.basic.ril 434 B unsigned.compare.rad 1.9 KiB var.align.rad 1.0 KiB var.infer.rad 564 B var.shadow.rad 236 B var.shadow.ril 145 B void.throw.rad 270 B void.throw.ril 707 B voidfn.rad 18 B voidfn.ril 43 B run 1.9 KiB runner.rad 7.0 KiB vim/ .gitignore 353 B .gitsigners 112 B LICENSE 1.1 KiB Makefile 3.0 KiB README 2.5 KiB std.lib 1.0 KiB std.lib.test 252 B
test/tests/slice.append.ril 16.7 KiB raw
1
data mut $BUF align 1 {
2
    undef * 4096;
3
}
4
5
fn ptr $newArena(ptr %0, ptr %1) {
6
  @entry0
7
    reserve %2 24 8;
8
    blit %2 %1 16;
9
    store w32 0 %2 16;
10
    blit %0 %2 24;
11
    ret %0;
12
}
13
14
fn ptr $arenaAlloc(ptr %0, w32 %1, w32 %2) {
15
  @entry0
16
    load w32 %3 %0 16;
17
    add w32 %4 %3 %2;
18
    sub w32 %5 %4 1;
19
    udiv w32 %6 %5 %2;
20
    mul w32 %7 %6 %2;
21
    add w32 %8 %7 %1;
22
    load w32 %9 %0 8;
23
    br.ult w32 %9 %8 @assert.fail1 @assert.ok2;
24
  @assert.fail1
25
    unreachable;
26
  @assert.ok2
27
    load w32 %10 %0 8;
28
    load ptr %11 %0 0;
29
    elem %12 %11 %7 %10 1;
30
    store w32 %8 %0 16;
31
    ret %12;
32
}
33
34
fn ptr $arenaAllocFn(ptr %0, w32 %1, w32 %2) {
35
  @entry0
36
    call ptr %3 $arenaAlloc(%0, %1, %2);
37
    ret %3;
38
}
39
40
fn ptr $arenaAllocator(ptr %0, ptr %1) {
41
  @entry0
42
    reserve %2 16 8;
43
    copy %3 $arenaAllocFn;
44
    store ptr %3 %2 0;
45
    store ptr %1 %2 8;
46
    blit %0 %2 16;
47
    ret %0;
48
}
49
50
fn w32 $main() {
51
  @entry0
52
    copy %0 $BUF;
53
    reserve %1 16 8;
54
    store ptr %0 %1 0;
55
    store w32 4096 %1 8;
56
    store w32 4096 %1 12;
57
    reserve %2 24 8;
58
    call ptr %3 $newArena(%2, %1);
59
    reserve %4 16 8;
60
    call ptr %5 $arenaAllocator(%4, %3);
61
    mul w32 %6 4 4;
62
    call ptr %7 $arenaAlloc(%3, %6, 4);
63
    reserve %8 16 8;
64
    store ptr %7 %8 0;
65
    store w32 0 %8 8;
66
    store w32 4 %8 12;
67
    load w32 %9 %8 8;
68
    load w32 %10 %8 12;
69
    br.ult w32 %9 %10 @append.store1 @append.grow2;
70
  @append.store1
71
    load ptr %24 %8 0;
72
    load w32 %25 %8 12;
73
    elem %26 %24 %9 %25 4;
74
    store w32 10 %26 0;
75
    add w32 %27 %9 1;
76
    store w32 %27 %8 8;
77
    load w32 %32 %8 8;
78
    load w32 %33 %8 12;
79
    br.ult w32 %32 %33 @append.store6 @append.grow7;
80
  @append.grow2
81
    shl w32 %11 %10 1;
82
    or w32 %12 %11 1;
83
    load ptr %13 %5 0;
84
    load ptr %14 %5 8;
85
    mul w32 %15 %12 4;
86
    call ptr %16 %13(%14, %15, 4);
87
    load ptr %17 %8 0;
88
    mul w32 %18 %9 4;
89
    jmp @append3(0);
90
  @append3(w32 %19)
91
    br.ult w32 %19 %18 @append4 @append5;
92
  @append4
93
    elem %20 %17 %19 %18 1;
94
    load w8 %21 %20 0;
95
    elem %22 %16 %19 %18 1;
96
    store w8 %21 %22 0;
97
    add w32 %23 %19 1;
98
    jmp @append3(%23);
99
  @append5
100
    store ptr %16 %8 0;
101
    store w32 %12 %8 12;
102
    jmp @append.store1;
103
  @append.store6
104
    load ptr %47 %8 0;
105
    load w32 %48 %8 12;
106
    elem %49 %47 %32 %48 4;
107
    store w32 20 %49 0;
108
    add w32 %50 %32 1;
109
    store w32 %50 %8 8;
110
    load w32 %55 %8 8;
111
    load w32 %56 %8 12;
112
    br.ult w32 %55 %56 @append.store11 @append.grow12;
113
  @append.grow7
114
    shl w32 %34 %33 1;
115
    or w32 %35 %34 1;
116
    load ptr %36 %5 0;
117
    load ptr %37 %5 8;
118
    mul w32 %38 %35 4;
119
    call ptr %39 %36(%37, %38, 4);
120
    load ptr %40 %8 0;
121
    mul w32 %41 %32 4;
122
    jmp @append8(0);
123
  @append8(w32 %42)
124
    br.ult w32 %42 %41 @append9 @append10;
125
  @append9
126
    elem %43 %40 %42 %41 1;
127
    load w8 %44 %43 0;
128
    elem %45 %39 %42 %41 1;
129
    store w8 %44 %45 0;
130
    add w32 %46 %42 1;
131
    jmp @append8(%46);
132
  @append10
133
    store ptr %39 %8 0;
134
    store w32 %35 %8 12;
135
    jmp @append.store6;
136
  @append.store11
137
    load ptr %70 %8 0;
138
    load w32 %71 %8 12;
139
    elem %72 %70 %55 %71 4;
140
    store w32 30 %72 0;
141
    add w32 %73 %55 1;
142
    store w32 %73 %8 8;
143
    load w32 %76 %8 8;
144
    br.ne w32 %76 3 @then16 @merge17;
145
  @append.grow12
146
    shl w32 %57 %56 1;
147
    or w32 %58 %57 1;
148
    load ptr %59 %5 0;
149
    load ptr %60 %5 8;
150
    mul w32 %61 %58 4;
151
    call ptr %62 %59(%60, %61, 4);
152
    load ptr %63 %8 0;
153
    mul w32 %64 %55 4;
154
    jmp @append13(0);
155
  @append13(w32 %65)
156
    br.ult w32 %65 %64 @append14 @append15;
157
  @append14
158
    elem %66 %63 %65 %64 1;
159
    load w8 %67 %66 0;
160
    elem %68 %62 %65 %64 1;
161
    store w8 %67 %68 0;
162
    add w32 %69 %65 1;
163
    jmp @append13(%69);
164
  @append15
165
    store ptr %62 %8 0;
166
    store w32 %58 %8 12;
167
    jmp @append.store11;
168
  @then16
169
    ret 1;
170
  @merge17
171
    load w32 %77 %8 12;
172
    br.ne w32 %77 4 @then18 @merge19;
173
  @then18
174
    ret 2;
175
  @merge19
176
    load w32 %78 %8 8;
177
    load ptr %79 %8 0;
178
    elem %80 %79 0 %78 4;
179
    sload w32 %81 %80 0;
180
    br.ne w32 %81 10 @then20 @merge21;
181
  @then20
182
    ret 3;
183
  @merge21
184
    load w32 %82 %8 8;
185
    load ptr %83 %8 0;
186
    elem %84 %83 1 %82 4;
187
    sload w32 %85 %84 0;
188
    br.ne w32 %85 20 @then22 @merge23;
189
  @then22
190
    ret 4;
191
  @merge23
192
    load w32 %86 %8 8;
193
    load ptr %87 %8 0;
194
    elem %88 %87 2 %86 4;
195
    sload w32 %89 %88 0;
196
    br.ne w32 %89 30 @then24 @merge25;
197
  @then24
198
    ret 5;
199
  @merge25
200
    load w32 %92 %8 8;
201
    load w32 %93 %8 12;
202
    br.ult w32 %92 %93 @append.store26 @append.grow27;
203
  @append.store26
204
    load ptr %107 %8 0;
205
    load w32 %108 %8 12;
206
    elem %109 %107 %92 %108 4;
207
    store w32 40 %109 0;
208
    add w32 %110 %92 1;
209
    store w32 %110 %8 8;
210
    load w32 %113 %8 8;
211
    br.ne w32 %113 4 @then31 @merge32;
212
  @append.grow27
213
    shl w32 %94 %93 1;
214
    or w32 %95 %94 1;
215
    load ptr %96 %5 0;
216
    load ptr %97 %5 8;
217
    mul w32 %98 %95 4;
218
    call ptr %99 %96(%97, %98, 4);
219
    load ptr %100 %8 0;
220
    mul w32 %101 %92 4;
221
    jmp @append28(0);
222
  @append28(w32 %102)
223
    br.ult w32 %102 %101 @append29 @append30;
224
  @append29
225
    elem %103 %100 %102 %101 1;
226
    load w8 %104 %103 0;
227
    elem %105 %99 %102 %101 1;
228
    store w8 %104 %105 0;
229
    add w32 %106 %102 1;
230
    jmp @append28(%106);
231
  @append30
232
    store ptr %99 %8 0;
233
    store w32 %95 %8 12;
234
    jmp @append.store26;
235
  @then31
236
    ret 6;
237
  @merge32
238
    load w32 %114 %8 12;
239
    br.ne w32 %114 4 @then33 @merge34;
240
  @then33
241
    ret 7;
242
  @merge34
243
    load w32 %117 %8 8;
244
    load w32 %118 %8 12;
245
    br.ult w32 %117 %118 @append.store35 @append.grow36;
246
  @append.store35
247
    load ptr %132 %8 0;
248
    load w32 %133 %8 12;
249
    elem %134 %132 %117 %133 4;
250
    store w32 50 %134 0;
251
    add w32 %135 %117 1;
252
    store w32 %135 %8 8;
253
    load w32 %138 %8 8;
254
    br.ne w32 %138 5 @then40 @merge41;
255
  @append.grow36
256
    shl w32 %119 %118 1;
257
    or w32 %120 %119 1;
258
    load ptr %121 %5 0;
259
    load ptr %122 %5 8;
260
    mul w32 %123 %120 4;
261
    call ptr %124 %121(%122, %123, 4);
262
    load ptr %125 %8 0;
263
    mul w32 %126 %117 4;
264
    jmp @append37(0);
265
  @append37(w32 %127)
266
    br.ult w32 %127 %126 @append38 @append39;
267
  @append38
268
    elem %128 %125 %127 %126 1;
269
    load w8 %129 %128 0;
270
    elem %130 %124 %127 %126 1;
271
    store w8 %129 %130 0;
272
    add w32 %131 %127 1;
273
    jmp @append37(%131);
274
  @append39
275
    store ptr %124 %8 0;
276
    store w32 %120 %8 12;
277
    jmp @append.store35;
278
  @then40
279
    ret 8;
280
  @merge41
281
    load w32 %139 %8 12;
282
    br.ne w32 %139 9 @then42 @merge43;
283
  @then42
284
    ret 9;
285
  @merge43
286
    load w32 %140 %8 8;
287
    load ptr %141 %8 0;
288
    elem %142 %141 4 %140 4;
289
    sload w32 %143 %142 0;
290
    br.ne w32 %143 50 @then44 @merge45;
291
  @then44
292
    ret 10;
293
  @merge45
294
    load w32 %144 %8 8;
295
    load ptr %145 %8 0;
296
    elem %146 %145 0 %144 4;
297
    sload w32 %147 %146 0;
298
    br.ne w32 %147 10 @then46 @merge47;
299
  @then46
300
    ret 11;
301
  @merge47
302
    load w32 %148 %8 8;
303
    load ptr %149 %8 0;
304
    elem %150 %149 3 %148 4;
305
    sload w32 %151 %150 0;
306
    br.ne w32 %151 40 @then48 @merge49;
307
  @then48
308
    ret 12;
309
  @merge49
310
    reserve %162 16 8;
311
    store ptr %7 %162 0;
312
    store w32 0 %162 8;
313
    store w32 0 %162 12;
314
    load w32 %165 %162 8;
315
    load w32 %166 %162 12;
316
    br.ult w32 %165 %166 @append.store50 @append.grow51;
317
  @append.store50
318
    load ptr %180 %162 0;
319
    load w32 %181 %162 12;
320
    elem %182 %180 %165 %181 4;
321
    store w32 99 %182 0;
322
    add w32 %183 %165 1;
323
    store w32 %183 %162 8;
324
    load w32 %186 %162 8;
325
    br.ne w32 %186 1 @then55 @merge56;
326
  @append.grow51
327
    shl w32 %167 %166 1;
328
    or w32 %168 %167 1;
329
    load ptr %169 %5 0;
330
    load ptr %170 %5 8;
331
    mul w32 %171 %168 4;
332
    call ptr %172 %169(%170, %171, 4);
333
    load ptr %173 %162 0;
334
    mul w32 %174 %165 4;
335
    jmp @append52(0);
336
  @append52(w32 %175)
337
    br.ult w32 %175 %174 @append53 @append54;
338
  @append53
339
    elem %176 %173 %175 %174 1;
340
    load w8 %177 %176 0;
341
    elem %178 %172 %175 %174 1;
342
    store w8 %177 %178 0;
343
    add w32 %179 %175 1;
344
    jmp @append52(%179);
345
  @append54
346
    store ptr %172 %162 0;
347
    store w32 %168 %162 12;
348
    jmp @append.store50;
349
  @then55
350
    ret 13;
351
  @merge56
352
    load w32 %187 %162 12;
353
    br.ne w32 %187 1 @then57 @merge58;
354
  @then57
355
    ret 14;
356
  @merge58
357
    load w32 %188 %162 8;
358
    load ptr %189 %162 0;
359
    elem %190 %189 0 %188 4;
360
    sload w32 %191 %190 0;
361
    br.ne w32 %191 99 @then59 @merge60;
362
  @then59
363
    ret 15;
364
  @merge60
365
    load w32 %194 %8 8;
366
    load ptr %195 %8 0;
367
    jmp @loop61(0, 0);
368
  @loop61(w32 %196, w32 %199)
369
    br.slt w32 %196 %194 @body62 @merge63;
370
  @body62
371
    elem %197 %195 %196 %194 4;
372
    sload w32 %198 %197 0;
373
    add w32 %200 %199 %198;
374
    add w32 %201 %196 1;
375
    jmp @loop61(%201, %200);
376
  @merge63
377
    br.ne w32 %199 150 @then64 @merge65;
378
  @then64
379
    ret 16;
380
  @merge65
381
    call ptr %215 $arenaAlloc(%3, 2, 1);
382
    reserve %216 16 8;
383
    store ptr %215 %216 0;
384
    store w32 0 %216 8;
385
    store w32 2 %216 12;
386
    load w32 %220 %216 8;
387
    load w32 %221 %216 12;
388
    br.ult w32 %220 %221 @append.store66 @append.grow67;
389
  @append.store66
390
    load ptr %235 %216 0;
391
    load w32 %236 %216 12;
392
    elem %237 %235 %220 %236 1;
393
    store w8 171 %237 0;
394
    add w32 %238 %220 1;
395
    store w32 %238 %216 8;
396
    load w32 %243 %216 8;
397
    load w32 %244 %216 12;
398
    br.ult w32 %243 %244 @append.store71 @append.grow72;
399
  @append.grow67
400
    shl w32 %222 %221 1;
401
    or w32 %223 %222 1;
402
    load ptr %224 %5 0;
403
    load ptr %225 %5 8;
404
    mul w32 %226 %223 1;
405
    call ptr %227 %224(%225, %226, 1);
406
    load ptr %228 %216 0;
407
    mul w32 %229 %220 1;
408
    jmp @append68(0);
409
  @append68(w32 %230)
410
    br.ult w32 %230 %229 @append69 @append70;
411
  @append69
412
    elem %231 %228 %230 %229 1;
413
    load w8 %232 %231 0;
414
    elem %233 %227 %230 %229 1;
415
    store w8 %232 %233 0;
416
    add w32 %234 %230 1;
417
    jmp @append68(%234);
418
  @append70
419
    store ptr %227 %216 0;
420
    store w32 %223 %216 12;
421
    jmp @append.store66;
422
  @append.store71
423
    load ptr %258 %216 0;
424
    load w32 %259 %216 12;
425
    elem %260 %258 %243 %259 1;
426
    store w8 205 %260 0;
427
    add w32 %261 %243 1;
428
    store w32 %261 %216 8;
429
    load w32 %264 %216 8;
430
    br.ne w32 %264 2 @then76 @merge77;
431
  @append.grow72
432
    shl w32 %245 %244 1;
433
    or w32 %246 %245 1;
434
    load ptr %247 %5 0;
435
    load ptr %248 %5 8;
436
    mul w32 %249 %246 1;
437
    call ptr %250 %247(%248, %249, 1);
438
    load ptr %251 %216 0;
439
    mul w32 %252 %243 1;
440
    jmp @append73(0);
441
  @append73(w32 %253)
442
    br.ult w32 %253 %252 @append74 @append75;
443
  @append74
444
    elem %254 %251 %253 %252 1;
445
    load w8 %255 %254 0;
446
    elem %256 %250 %253 %252 1;
447
    store w8 %255 %256 0;
448
    add w32 %257 %253 1;
449
    jmp @append73(%257);
450
  @append75
451
    store ptr %250 %216 0;
452
    store w32 %246 %216 12;
453
    jmp @append.store71;
454
  @then76
455
    ret 17;
456
  @merge77
457
    load w32 %265 %216 8;
458
    load ptr %266 %216 0;
459
    elem %267 %266 0 %265 1;
460
    load w8 %268 %267 0;
461
    br.ne w8 %268 171 @then78 @merge79;
462
  @then78
463
    ret 18;
464
  @merge79
465
    load w32 %269 %216 8;
466
    load ptr %270 %216 0;
467
    elem %271 %270 1 %269 1;
468
    load w8 %272 %271 0;
469
    br.ne w8 %272 205 @then80 @merge81;
470
  @then80
471
    ret 19;
472
  @merge81
473
    load w32 %275 %216 8;
474
    load w32 %276 %216 12;
475
    br.ult w32 %275 %276 @append.store82 @append.grow83;
476
  @append.store82
477
    load ptr %290 %216 0;
478
    load w32 %291 %216 12;
479
    elem %292 %290 %275 %291 1;
480
    store w8 239 %292 0;
481
    add w32 %293 %275 1;
482
    store w32 %293 %216 8;
483
    load w32 %296 %216 8;
484
    br.ne w32 %296 3 @then87 @merge88;
485
  @append.grow83
486
    shl w32 %277 %276 1;
487
    or w32 %278 %277 1;
488
    load ptr %279 %5 0;
489
    load ptr %280 %5 8;
490
    mul w32 %281 %278 1;
491
    call ptr %282 %279(%280, %281, 1);
492
    load ptr %283 %216 0;
493
    mul w32 %284 %275 1;
494
    jmp @append84(0);
495
  @append84(w32 %285)
496
    br.ult w32 %285 %284 @append85 @append86;
497
  @append85
498
    elem %286 %283 %285 %284 1;
499
    load w8 %287 %286 0;
500
    elem %288 %282 %285 %284 1;
501
    store w8 %287 %288 0;
502
    add w32 %289 %285 1;
503
    jmp @append84(%289);
504
  @append86
505
    store ptr %282 %216 0;
506
    store w32 %278 %216 12;
507
    jmp @append.store82;
508
  @then87
509
    ret 20;
510
  @merge88
511
    load w32 %297 %216 12;
512
    br.ne w32 %297 5 @then89 @merge90;
513
  @then89
514
    ret 21;
515
  @merge90
516
    load w32 %298 %216 8;
517
    load ptr %299 %216 0;
518
    elem %300 %299 2 %298 1;
519
    load w8 %301 %300 0;
520
    br.ne w8 %301 239 @then91 @merge92;
521
  @then91
522
    ret 22;
523
  @merge92
524
    load w32 %302 %216 8;
525
    load ptr %303 %216 0;
526
    elem %304 %303 0 %302 1;
527
    load w8 %305 %304 0;
528
    br.ne w8 %305 171 @then93 @merge94;
529
  @then93
530
    ret 23;
531
  @merge94
532
    mul w32 %312 4 2;
533
    call ptr %313 $arenaAlloc(%3, %312, 4);
534
    reserve %314 16 8;
535
    store ptr %313 %314 0;
536
    store w32 0 %314 8;
537
    store w32 2 %314 12;
538
    load w32 %317 %314 8;
539
    load w32 %318 %314 12;
540
    br.ult w32 %317 %318 @append.store95 @append.grow96;
541
  @append.store95
542
    load ptr %332 %314 0;
543
    load w32 %333 %314 12;
544
    elem %334 %332 %317 %333 4;
545
    store w32 42 %334 0;
546
    add w32 %335 %317 1;
547
    store w32 %335 %314 8;
548
    blit %314 %314 16;
549
    load w32 %338 %314 8;
550
    br.eq w32 %338 1 @assert.ok101 @assert.fail100;
551
  @append.grow96
552
    shl w32 %319 %318 1;
553
    or w32 %320 %319 1;
554
    load ptr %321 %5 0;
555
    load ptr %322 %5 8;
556
    mul w32 %323 %320 4;
557
    call ptr %324 %321(%322, %323, 4);
558
    load ptr %325 %314 0;
559
    mul w32 %326 %317 4;
560
    jmp @append97(0);
561
  @append97(w32 %327)
562
    br.ult w32 %327 %326 @append98 @append99;
563
  @append98
564
    elem %328 %325 %327 %326 1;
565
    load w8 %329 %328 0;
566
    elem %330 %324 %327 %326 1;
567
    store w8 %329 %330 0;
568
    add w32 %331 %327 1;
569
    jmp @append97(%331);
570
  @append99
571
    store ptr %324 %314 0;
572
    store w32 %320 %314 12;
573
    jmp @append.store95;
574
  @assert.fail100
575
    unreachable;
576
  @assert.ok101
577
    load w32 %339 %314 8;
578
    load ptr %340 %314 0;
579
    elem %341 %340 0 %339 4;
580
    sload w32 %342 %341 0;
581
    br.eq w32 %342 42 @assert.ok103 @assert.fail102;
582
  @assert.fail102
583
    unreachable;
584
  @assert.ok103
585
    load w32 %345 %314 8;
586
    load w32 %346 %314 12;
587
    br.ult w32 %345 %346 @append.store104 @append.grow105;
588
  @append.store104
589
    load ptr %360 %314 0;
590
    load w32 %361 %314 12;
591
    elem %362 %360 %345 %361 4;
592
    store w32 43 %362 0;
593
    add w32 %363 %345 1;
594
    store w32 %363 %314 8;
595
    blit %314 %314 16;
596
    load w32 %366 %314 8;
597
    br.eq w32 %366 2 @assert.ok110 @assert.fail109;
598
  @append.grow105
599
    shl w32 %347 %346 1;
600
    or w32 %348 %347 1;
601
    load ptr %349 %5 0;
602
    load ptr %350 %5 8;
603
    mul w32 %351 %348 4;
604
    call ptr %352 %349(%350, %351, 4);
605
    load ptr %353 %314 0;
606
    mul w32 %354 %345 4;
607
    jmp @append106(0);
608
  @append106(w32 %355)
609
    br.ult w32 %355 %354 @append107 @append108;
610
  @append107
611
    elem %356 %353 %355 %354 1;
612
    load w8 %357 %356 0;
613
    elem %358 %352 %355 %354 1;
614
    store w8 %357 %358 0;
615
    add w32 %359 %355 1;
616
    jmp @append106(%359);
617
  @append108
618
    store ptr %352 %314 0;
619
    store w32 %348 %314 12;
620
    jmp @append.store104;
621
  @assert.fail109
622
    unreachable;
623
  @assert.ok110
624
    load w32 %367 %314 8;
625
    load ptr %368 %314 0;
626
    elem %369 %368 0 %367 4;
627
    load w32 %372 %314 8;
628
    load w32 %373 %314 12;
629
    br.ult w32 %372 %373 @append.store111 @append.grow112;
630
  @append.store111
631
    load ptr %387 %314 0;
632
    load w32 %388 %314 12;
633
    elem %389 %387 %372 %388 4;
634
    store w32 44 %389 0;
635
    add w32 %390 %372 1;
636
    store w32 %390 %314 8;
637
    blit %314 %314 16;
638
    load w32 %393 %314 8;
639
    br.eq w32 %393 3 @assert.ok117 @assert.fail116;
640
  @append.grow112
641
    shl w32 %374 %373 1;
642
    or w32 %375 %374 1;
643
    load ptr %376 %5 0;
644
    load ptr %377 %5 8;
645
    mul w32 %378 %375 4;
646
    call ptr %379 %376(%377, %378, 4);
647
    load ptr %380 %314 0;
648
    mul w32 %381 %372 4;
649
    jmp @append113(0);
650
  @append113(w32 %382)
651
    br.ult w32 %382 %381 @append114 @append115;
652
  @append114
653
    elem %383 %380 %382 %381 1;
654
    load w8 %384 %383 0;
655
    elem %385 %379 %382 %381 1;
656
    store w8 %384 %385 0;
657
    add w32 %386 %382 1;
658
    jmp @append113(%386);
659
  @append115
660
    store ptr %379 %314 0;
661
    store w32 %375 %314 12;
662
    jmp @append.store111;
663
  @assert.fail116
664
    unreachable;
665
  @assert.ok117
666
    load w32 %394 %314 12;
667
    br.eq w32 %394 5 @assert.ok119 @assert.fail118;
668
  @assert.fail118
669
    unreachable;
670
  @assert.ok119
671
    load w32 %395 %314 8;
672
    load ptr %396 %314 0;
673
    elem %397 %396 0 %395 4;
674
    br.ne ptr %369 %397 @assert.ok121 @assert.fail120;
675
  @assert.fail120
676
    unreachable;
677
  @assert.ok121
678
    load w32 %400 %314 8;
679
    load ptr %401 %314 0;
680
    elem %402 %401 0 %400 4;
681
    sload w32 %403 %402 0;
682
    br.eq w32 %403 42 @assert.ok123 @assert.fail122;
683
  @assert.fail122
684
    unreachable;
685
  @assert.ok123
686
    load w32 %404 %314 8;
687
    load ptr %405 %314 0;
688
    elem %406 %405 1 %404 4;
689
    sload w32 %407 %406 0;
690
    br.eq w32 %407 43 @assert.ok125 @assert.fail124;
691
  @assert.fail124
692
    unreachable;
693
  @assert.ok125
694
    load w32 %408 %314 8;
695
    load ptr %409 %314 0;
696
    elem %410 %409 2 %408 4;
697
    sload w32 %411 %410 0;
698
    br.eq w32 %411 44 @assert.ok127 @assert.fail126;
699
  @assert.fail126
700
    unreachable;
701
  @assert.ok127
702
    ret 0;
703
}