compiler/ lib/ scripts/ seed/ sublime/ test/ tests/ assign.qualified.static/ fn.unsafe.callbacks/ wildcard.import.owner/ abi.sizes.rad 3.5 KiB addfn.rad 52 B addfn.ril 76 B aggregate.return.rad 4.1 KiB arith.assignment.rad 631 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 773 B array.aggregate.stride.ril 1.1 KiB array.assign.rad 225 B array.assign.ril 526 B array.bounds.check.rad 321 B array.fn.assign.rad 265 B array.index.assign.rad 422 B array.index.rad 280 B array.index.ril 496 B array.len.const.rad 348 B array.len.const.ril 200 B array.length.rad 285 B array.literal.rad 136 B array.literal.ril 329 B array.math.rad 1.2 KiB array.nested.assign.rad 327 B array.nested.rad 325 B array.nested.ril 922 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 124 B array.slice.full.ril 168 B array.slice.gen.end.rad 155 B array.slice.gen.index.rad 168 B array.slice.gen.open.rad 154 B array.slice.gen.start.end.rad 156 B array.slice.gen.start.rad 155 B array.slice.openend.rad 148 B array.slice.openend.ril 351 B array.slice.openstart.rad 148 B array.slice.openstart.ril 289 B array.slice.rad 816 B as.precedence.rad 226 B asm.basic.text.program.ras 187 B asm.branch.comparisons.ras 648 B asm.call.return.flow.ras 203 B asm.compare.set.logic.ras 611 B asm.csr.system.instructions.ras 221 B asm.data.directives.ras 439 B asm.data.symbol.fixup.ras 227 B asm.directive.boundary.values.ras 809 B asm.fence.ras 76 B asm.global.scoped.symbols.ras 207 B asm.instruction.matrix.alu.ras 566 B asm.instruction.matrix.mem.control.ras 355 B asm.instruction.matrix.system.ras 115 B asm.label.fixups.ras 235 B asm.li.expressions.ras 212 B asm.link.rad 103 B asm.link.ras 85 B asm.load.store.widths.ras 711 B asm.mul.div.rem.ras 769 B asm.rodata.prefix.rad 226 B asm.rodata.prefix.ras 163 B asm.scoped.symbols.la.ras 147 B asm.scoped.symbols.tail.ras 157 B asm.section.switching.ras 173 B asm.space.constant.expressions.ras 358 B asm.string.directive.lists.ras 326 B asm.word.dword.constants.ras 372 B asm.word.shift.ops.ras 870 B assert.basic.rad 402 B assert.basic.ril 624 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 213 B assign.loop.ril 242 B assign.multi.var.rad 194 B assign.multi.var.ril 73 B assign.mutable.rad 6.3 KiB assign.param.rad 150 B assign.param.ril 96 B assign.qualified.static.rad 464 B assign.rad 156 B assign.self.ref.rad 161 B assign.self.ref.ril 92 B assign.sequential.rad 163 B assign.sequential.ril 52 B assign.shadow.mutable.rad 489 B assign.use.intermediate.rad 191 B assign.use.intermediate.ril 99 B average.rad 189 B average.ril 378 B binding.storage.rad 962 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.4 KiB bool.comparison.slice.record.gen.rad 2.0 KiB bool.comparison.slice.union.gen.rad 2.6 KiB bool.comparison.union.ctor.rad 711 B bool.comparison.union.gen.rad 1.2 KiB bool.comparison.union.record.gen.rad 1.5 KiB bool.comparison.union.simple.gen.rad 302 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 borrow.fields.calls.rad 1.3 KiB borrow.fields.calls.ril 841 B borrow.fields.pattern.rad 596 B borrow.fields.pattern.ril 279 B builtin.alignof.rad 698 B builtin.alignof.ril 287 B builtin.memory.fence.rad 108 B builtin.size.align.rad 1.2 KiB builtin.sizeof.rad 656 B builtin.sizeof.ril 282 B builtin.sliceof.invalid.cap.rad 271 B builtin.sliceof.mut.rad 674 B builtin.sliceof.rad 542 B byte.load.store.rad 380 B byte.load.store.ril 730 B call.aggregate.arg.snapshot.rad 520 B call.arg.clobber.rad 732 B call.basic.rad 256 B call.clobber.rad 509 B call.tests.rad 764 B call.tests.ril 603 B cast.basic.rad 855 B cast.basic.ril 594 B cast.narrow.rad 583 B cast.narrow.ril 557 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.1 KiB compare.literal.first.u64.rad 301 B compound.assign.field.rad 318 B compound.assign.index.once.rad 431 B compound.assign.rad 1.2 KiB compound.assign.ril 2.0 KiB cond.assign.merge.basic.rad 221 B cond.assign.merge.basic.ril 172 B cond.assign.merge.rad 214 B cond.assign.merge.ril 169 B cond.assign.rad 766 B cond.elseif.rad 204 B cond.elseif.ril 181 B cond.expr.aggregate.rad 1.2 KiB cond.expr.literal-first.rad 326 B cond.expr.rad 1.9 KiB cond.expr.ril 3.5 KiB cond.for.else.break.rad 349 B cond.for.indexed.rad 257 B cond.for.rad 184 B cond.for.range.indexed.rad 549 B cond.for.range.rad 190 B cond.for.unsigned.range.rad 671 B cond.forever.break.continue.rad 201 B cond.forever.break.rad 255 B cond.fused.rad 941 B cond.if.case.rad 2.2 KiB cond.if.else.min.rad 158 B cond.if.else.rad 244 B cond.if.elseif.rad 443 B cond.if.noelse.rad 139 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 195 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 149 B cond.letelse.guard.rad 160 B cond.letelse.guard.ril 200 B cond.letelse.mut.rad 185 B cond.letelse.mut.ril 252 B cond.letelse.optional.rad 160 B cond.letelse.optional.ril 153 B cond.match.fallthrough.rad 388 B cond.match.guard.rad 1.4 KiB cond.match.guard.regalloc.rad 1.4 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 305 B cond.while.rad 138 B const-cast-wrap.rad 450 B const-expr-array-size.rad 379 B const-expr-cast.rad 1.1 KiB const-expr-literal.rad 673 B const-expr-refs.rad 752 B const.array.copy.mutate.rad 397 B const.array.ident.rad 247 B const.array.ident.ril 146 B const.array.rad 217 B const.array.record.ident.rad 396 B const.array.record.ident.ril 353 B const.array.repeat.record.rad 225 B const.array.repeat.record.ril 399 B const.array.repeat.string.slice.rad 303 B const.array.repeat.string.slice.ril 1.1 KiB const.array.ril 392 B const.array.strings.slice.rad 274 B const.array.strings.slice.ril 579 B const.basic.rad 349 B const.char.rad 180 B const.fn.array.rad 670 B const.i32.shift.right.rad 244 B const.local.duplicate.rad 474 B const.local.duplicate.ril 787 B const.negative.rad 331 B const.negative.ril 338 B const.record.array.rad 1.2 KiB const.record.array.simple.rad 559 B const.record.ctor.rad 194 B const.record.ctor.ril 415 B const.record.fn.rad 362 B const.record.mutcopy.rad 466 B const.record.mutcopy.ril 385 B const.record.nested.rad 408 B const.record.nested.ril 474 B const.record.packed.rad 275 B const.record.packed.ril 284 B const.record.padded.rad 275 B const.record.padded.ril 318 B const.record.rad 206 B const.record.ril 221 B const.record.union.rad 608 B const.record.union.ril 673 B const.scalar.rad 105 B const.scalar.ril 82 B const.shift.negative.count.rad 305 B const.slice.of.slices.rad 238 B const.slice.of.slices.ril 956 B const.slice.param.rad 336 B const.string.rad 114 B const.string.ril 309 B const.string.scoped.names.rad 263 B const.string.scoped.names.ril 904 B const.u32.shift.mask.rad 249 B const.u64.compare.rad 188 B const.u64.divide.rad 174 B const.union.payload.ctor.rad 373 B const.union.payload.ctor.ril 507 B const.union.payload.fn.array.rad 1.1 KiB const.union.payload.record.array.rad 1.5 KiB const.union.record.literal.rad 383 B const.union.record.literal.ril 506 B data.array.rad 803 B data.bool.rad 237 B data.i16.rad 288 B data.i32.rad 308 B data.i8.rad 275 B data.optional.nil.rad 935 B data.optional.value.rad 2.4 KiB data.record.rad 597 B data.simple.rad 454 B data.u16.rad 244 B data.u32.rad 264 B data.u8.rad 232 B data.union.rad 931 B debug.tag.rad 563 B div.u8.immediate.wrap.rad 213 B ecall.i64.rad 529 B edge.cases.2.rad 361 B edge.cases.3.rad 606 B edge.cases.4.rad 1.3 KiB edge.cases.5.rad 1.1 KiB edge.cases.6.rad 2.7 KiB edge.cases.7.addr.bug.rad 246 B edge.cases.8.bug.rad 553 B edge.cases.rad 247 B error.basic.rad 180 B error.catch.rad 1.6 KiB error.catch.return.rad 409 B error.catch.return.ril 634 B error.division.zero.rad 164 B error.modulo.zero.rad 162 B error.multi.basic.rad 711 B error.multi.catch.rad 819 B error.multi.catch.typed.binding.rad 830 B error.multi.catch.typed.catchall.rad 1.0 KiB error.multi.catch.typed.rad 1.1 KiB error.multi.propagate.multi.rad 1000 B error.multi.propagate.rad 864 B error.multi.try.optional.rad 534 B error.slice.bounds.rad 233 B error.throw.coercion.rad 318 B error.try.bang.success.rad 376 B error.try.catch.binding.rad 2.1 KiB error.try.optional.rad 1.9 KiB error.try.rad 4.1 KiB extern.inferred.rad 70 B externfn.rad 32 B externfn.ril 37 B fibonacci.rad 122 B fibonacci.ril 247 B field.aggregate.rad 837 B field.aggregate.ril 782 B fn.block.scope.rad 508 B fn.callback.nested.rad 1.6 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.unsafe.callbacks.rad 737 B fn.void.rad 165 B for.else.continue.rad 1.1 KiB frame.large.rad 614 B if-let-mut.rad 1.2 KiB iflet.shadow.else.rad 408 B iflet.shadow.leak.rad 317 B index.eval.order.rad 368 B index.u8.rad 616 B int.default.i64.rad 1.1 KiB integer.bitwise.basic.rad 708 B integer.overflow.rad 1.8 KiB intrinsic.ebreak.rad 90 B intrinsic.ebreak.ril 76 B intrinsic.ecall.rad 168 B intrinsic.ecall.ril 131 B large.blit.store.rad 2.2 KiB let.copy.semantics.rad 883 B let.copy.semantics.ril 879 B let.guard.rad 1.9 KiB let.placeholder.rad 291 B let.placeholder.ril 220 B linear.let-else.rad 402 B linear.ownership.rad 395 B linear.ownership.ril 353 B linear.reference.rad 663 B linear.reference.ril 623 B linear.unsafe.rad 531 B linear.unsafe.ril 286 B literal.char.rad 209 B literal.char.ril 127 B literal.slice.bytes.rad 124 B literal.slice.bytes.ril 263 B literal.slice.dedup.rad 199 B literal.slice.dedup.ril 434 B literal.slice.empty.rad 100 B literal.slice.empty.ril 157 B literal.slice.multi.rad 170 B literal.slice.multi.ril 496 B literal.slice.rad 123 B literal.slice.record.rad 217 B literal.slice.record.ril 694 B literal.slice.ril 272 B literal.string.dedup.rad 179 B literal.string.dedup.ril 422 B literal.string.empty.rad 93 B literal.string.empty.ril 248 B literal.string.fns.rad 180 B literal.string.fns.ril 470 B literal.string.multi.rad 153 B literal.string.multi.ril 480 B literal.string.rad 108 B literal.string.ril 247 B literal.w64.rad 1.7 KiB load.u32.high.rad 1.8 KiB loc.addr.offset.bug.rad 455 B loc.addr.opt.to.opt.rad 472 B loc.addr.optional.assign.rad 447 B loc.addr.record.assign.rad 499 B local.multi.rad 85 B local.multi.ril 67 B local.mut.rad 79 B local.mut.ril 45 B local.simple.rad 60 B local.simple.ril 45 B loop.break.rad 156 B loop.break.ril 228 B loop.complex.flow.rad 1.0 KiB loop.continue.rad 219 B loop.continue.ril 327 B loop.for.array.rad 223 B loop.for.array.ril 315 B loop.for.break.bound.rad 161 B loop.for.break.bound.ril 264 B loop.for.continue.rad 403 B loop.for.continue.ril 741 B loop.for.indexed.rad 149 B loop.for.indexed.ril 285 B loop.for.placeholder.rad 321 B loop.for.placeholder.ril 457 B loop.for.rad 120 B loop.for.ril 220 B loop.for.slice.rad 216 B loop.for.slice.ril 362 B loop.for.unsigned.range.rad 317 B loop.for.unsigned.range.ril 481 B loop.infinite.rad 41 B loop.infinite.ril 78 B loop.mutable.rad 375 B loop.mutable.ril 617 B loop.nested.break.rad 392 B loop.nested.break.ril 461 B loop.nested.continue.rad 418 B loop.nested.continue.ril 581 B loop.return.rad 141 B loop.return.ril 179 B loop.sealblock.rad 942 B loop.while.false.noparams.rad 175 B loop.while.false.noparams.ril 171 B loop.while.nested.shortcircuit.rad 872 B loop.while.nested.shortcircuit.ril 589 B loop.while.rad 164 B loop.while.ril 241 B loop.whilelet.case.rad 259 B loop.whilelet.case.ril 204 B loop.whilelet.guard.rad 265 B loop.whilelet.guard.ril 256 B loop.whilelet.optional.rad 212 B loop.whilelet.optional.ril 217 B loop.whilelet.union.rad 382 B loop.whilelet.union.ril 382 B lower.const.record.ident.rad 291 B lower.const.record.ident.ril 387 B lower.private.union.const.rad 259 B lower.private.union.const.ril 317 B lower.record.scalar.record.const.rad 244 B lower.record.scalar.record.const.ril 321 B match.array.rad 3.5 KiB match.borrow.scope.rad 708 B match.char.rad 1.6 KiB match.more.rad 647 B match.more.ril 683 B match.multi.seal.rad 1008 B match.multi.seal.ril 924 B match.multi.survive.rad 1.7 KiB match.mutref.push.rad 1.1 KiB match.mutref.union.rad 693 B match.nested.call.rad 1.7 KiB match.nested.deep.rad 2.2 KiB match.nested.deref.rad 3.8 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 840 B match.nested.letelse.union.rad 1.4 KiB match.nested.literal.rad 3.1 KiB match.nested.multi.rad 2.4 KiB match.nested.pattern.rad 5.3 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.ref.rad 212 B match.optional.ref.ril 232 B match.optional.ril 164 B match.optional.wildcard.rad 282 B match.record.pattern.rad 331 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.1 KiB match.void.then.or.rad 1.6 KiB memzero.result.bug.rad 835 B memzero.union.bug.rad 618 B method.basic.rad 590 B method.chain.rad 574 B method.multiple.rad 945 B method.ptr.rad 717 B method.pub.rad 247 B method.return.rad 605 B method.throws.rad 849 B method.union.rad 430 B method.with.trait.rad 706 B mixedtypes.rad 79 B mixedtypes.ril 82 B multi.throw.basic.rad 284 B multi.throw.basic.ril 526 B multi.throw.catch.typed.rad 456 B multi.throw.catch.typed.ril 1015 B multi.throw.propagate.rad 347 B multi.throw.propagate.ril 873 B multiplefns.rad 110 B multiplefns.ril 146 B mutref.call.result.rad 350 B mutref.loop.bug.rad 1.9 KiB mutref.loop.rad 324 B mutref.loop.ril 368 B mutref.scalar.rad 232 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.6 KiB opt.ptr.return.nil.rad 85 B opt.ptr.return.nil.ril 51 B opt.record.eq.rad 866 B opt.record.eq.rev.rad 313 B opt.record.eq.rev.ril 635 B opt.record.eq.ril 3.4 KiB opt.record.rad 679 B opt.return.array.rad 289 B opt.return.nested.rad 803 B opt.return.nil.rad 82 B opt.return.nil.ril 114 B opt.return.record.rad 350 B opt.return.value.rad 91 B opt.return.value.ril 138 B opt.slice.npo.rad 3.0 KiB opt.slice.npo.ril 6.9 KiB opt.type.rad 227 B opt.while.let.complex.rad 412 B optional.aggregate.eq.rad 292 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 optional.record.value.match.rad 606 B optional.union.eq.rad 1.5 KiB panic.basic.rad 70 B panic.basic.ril 46 B panic.rad 111 B parser.call.record.argument.rad 209 B parser.condition.array.record.rad 232 B parser.condition.subscript.record.rad 278 B placeholder.basic.rad 148 B placeholder.comprehensive.rad 581 B pointer.arithmetic.unsafe.rad 417 B pointer.borrow.unsafe.rad 1.7 KiB pointer.cast.unsafe.rad 439 B pointer.copy.edge.case.rad 1.4 KiB pointer.move.record.rad 551 B pointer.slice.index.rad 304 B pointer.slice.store.rad 1009 B pointer.stack.borrow.rad 907 B pointer.stack.unsafe.rad 483 B pointerfn.rad 50 B pointerfn.ril 54 B prog.ackermann.rad 5.0 KiB prog.bignum.rad 9.7 KiB prog.binsearch.rad 2.5 KiB prog.bubblesort.rad 2.0 KiB prog.cordic.rad 7.0 KiB prog.crc32.rad 2.8 KiB prog.dijkstra.rad 8.1 KiB prog.eval.rad 6.3 KiB prog.hanoi.rad 3.8 KiB prog.huffman.rad 9.9 KiB prog.hybridsort.rad 3.1 KiB prog.linkedlist.rad 6.0 KiB prog.lzw.rad 7.2 KiB prog.matmul.rad 3.0 KiB prog.mersenne.rad 5.5 KiB prog.nqueens.rad 3.5 KiB prog.rbtree.rad 8.8 KiB prog.regex.rad 10.8 KiB prog.sha256.rad 7.2 KiB prog.sieve.rad 2.8 KiB prog.symtab.rad 10.3 KiB prog.tokenizer.rad 14.5 KiB prog.vm.rad 18.3 KiB ptr.addressof.field.rad 138 B ptr.addressof.field.ril 78 B ptr.addressof.local.rad 503 B ptr.addressof.local.ril 280 B ptr.addressof.rad 133 B ptr.addressof.ril 213 B ptr.assign.rad 155 B ptr.assign.ril 130 B ptr.deref.rad 685 B ptr.deref.record.rad 288 B ptr.deref.record.ril 190 B ptr.deref.ril 1.1 KiB ptr.eq.rad 1.1 KiB ptr.mutate.rad 256 B ptr.opaque.rad 1.6 KiB ptr.subscript.assign.rad 133 B ptr.subscript.assign.ril 288 B range.arithmetic.rad 775 B record.access.rad 306 B record.alignment.rad 200 B record.array.elements.rad 1.7 KiB record.assign.blit.rad 121 B record.assign.blit.ril 158 B record.copy.rad 2.1 KiB record.ctor.tuple.rad 75 B record.ctor.tuple.ril 127 B record.empty.eq.rad 278 B record.empty.eq.ril 226 B record.eq.rad 229 B record.eq.ril 214 B record.field.assign.rad 217 B record.field.assign.ril 308 B record.literal.labeled.rad 109 B record.literal.labeled.ril 127 B record.mixed.layout.rad 122 B record.mixed.layout.ril 149 B record.nested.calls.2.rad 622 B record.nested.calls.3.rad 755 B record.nested.eq.rad 258 B record.nested.eq.ril 522 B record.nested.lit.rad 182 B record.nested.lit.ril 188 B record.param.lit.rad 380 B record.ptr.access.rad 262 B record.ptr.access.ril 198 B record.ptr.mutate.rad 249 B record.shorthand.rad 1.5 KiB record.unlabeled.deref.rad 1.4 KiB record.unlabeled.rad 419 B ref.if.bug.rad 527 B ref.immut.loop.bug.rad 674 B ref.local.bindings.rad 1.5 KiB ref.local.bindings.ril 1.2 KiB ref.local.fields.rad 1.8 KiB ref.local.never.rad 269 B ref.local.never.ril 121 B ref.local.scopes.rad 1.1 KiB ref.local.scopes.ril 896 B ref.local.slice.release.rad 261 B ref.local.slice.release.ril 753 B ref.mut.ptr.rad 291 B reference.array.repeat.rad 135 B reference.array.repeat.ril 260 B regalloc.callee.save.rad 1.5 KiB regalloc.spill.reuse.rad 488 B reserve.loop.rad 421 B reserve.loop.ril 473 B result.void.success.rad 711 B return.lit.rad 45 B return.lit.ril 50 B return.never.catch.rad 757 B return.never.flow.rad 619 B return.never.flow.ril 570 B return.never.rad 337 B return.never.ras 139 B return.param.rad 48 B return.param.ril 54 B rv64.u32.compare.rad 2.1 KiB set.keyword.rad 448 B simplefn.rad 45 B simplefn.ril 51 B slice.alloc.loop.rad 849 B slice.append.rad 4.2 KiB slice.append.ril 18.7 KiB slice.assign.mismatch.rad 220 B slice.assign.rad 1.4 KiB slice.basic.rad 763 B slice.basic.ril 818 B slice.cap.rad 999 B slice.construct.unsafe.rad 432 B slice.delete.rad 1012 B slice.delete.ril 4.8 KiB slice.empty.suffix.rad 593 B slice.eq.rad 126 B slice.eq.ril 209 B slice.header.unsafe.rad 593 B slice.index.rad 104 B slice.index.ril 278 B slice.mutable.rad 297 B slice.mutable.ril 1.5 KiB slice.of.rad 560 B slice.ptr.checked.bounds.rad 227 B slice.ptr.unsafe.rad 627 B slice.range.bounds.check.rad 299 B slice.range.dynamic.rad 877 B slice.range.order.check.rad 298 B slice.range.rad 676 B slice.range.ril 1.8 KiB slice.runtime.i32.rad 279 B slice.runtime.i32.ril 725 B slice.runtime.literal.rad 271 B slice.runtime.literal.ril 455 B slice.subslice.rad 1.5 KiB spill.blockarg.clobber.rad 3.6 KiB spill.loop.rad 1.6 KiB stack.local.corrupt.rad 335 B start.default.rad 62 B start.default.start.ras 29 B start.exit.rad 54 B start.exit.start.ras 53 B static.array.mutate.rad 427 B static.assign.rad 131 B static.assign.ril 244 B static.basic.rad 347 B static.fn.array.rad 628 B static.local.decl.rad 201 B static.local.decl.ril 420 B static.record.array.rad 532 B static.scalar.rad 109 B static.scalar.ril 135 B static.slice.index.assign.rad 450 B static.slice.offset.rad 723 B static.zero.bss.rad 1.1 KiB 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.7 KiB trait.array.optional.rad 1.8 KiB trait.basic.rad 632 B trait.control.flow.rad 1.2 KiB trait.dispatch.rad 333 B trait.dispatch.ril 469 B trait.fn.param.rad 1.8 KiB trait.multiple.methods.rad 1.3 KiB trait.multiple.traits.rad 1.3 KiB trait.multiple.types.rad 1.4 KiB trait.object.rad 408 B trait.object.ril 496 B trait.supertrait.forward.rad 693 B trait.supertrait.rad 2.7 KiB trait.supertrait.ril 3.9 KiB trait.throws.rad 1.1 KiB trait.writer.rad 2.8 KiB trivial.phi.rad 1.1 KiB trivial.phi.ril 512 B try.basic.rad 397 B try.basic.ril 879 B try.catch.rad 345 B try.catch.ril 837 B try.optional.rad 369 B try.optional.ril 760 B try.panic.rad 357 B try.panic.ril 639 B type.unify.rad 4.6 KiB undefined.aggregate.rad 165 B undefined.aggregate.ril 84 B undefined.primitive.rad 122 B undefined.primitive.ril 48 B undefined.rad 459 B undefined.record.field.rad 1.6 KiB undefined.record.field.ril 751 B undefined.unsafe.rad 824 B union-tag.rad 967 B union.bitfield.rad 1.2 KiB union.ctor.rad 564 B union.ctor.ril 385 B union.discriminant.cast.rad 395 B union.edge.case.2.rad 700 B union.edge.case.3.rad 674 B union.eq.rad 807 B union.eq.ril 1.4 KiB union.eq.void.ctor.rad 384 B union.eq.void.ctor.ril 131 B union.eq.void.rad 184 B union.eq.void.ril 75 B union.match.bind.rad 265 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 870 B union.match.tag.ril 820 B union.mixed.assign.rad 1012 B union.payload.mutref.rad 1.5 KiB union.payload.rad 601 B union.payload.record.eq.rad 304 B union.payload.record.eq.ril 984 B union.record.forward.rad 1.3 KiB union.record.literal.rad 450 B union.record.literal.ril 391 B union.variant.access.rad 743 B union.variant.access.ril 506 B union.void.match.rad 424 B union.void.rad 845 B unop.rad 699 B unop.ril 506 B unsafe.block.bounds.rad 268 B unsafe.block.rad 784 B unsafe.static.rad 523 B unsigned.compare.rad 1.9 KiB var.align.rad 1.0 KiB var.infer.rad 574 B var.shadow.rad 244 B var.shadow.ril 145 B void.throw.rad 276 B void.throw.ril 707 B voidfn.rad 18 B voidfn.ril 43 B wildcard.import.owner.rad 199 B backend.rad 22.0 KiB run 2.7 KiB runner.rad 10.3 KiB vim/ .gitignore 336 B .gitsigners 112 B CONTRIBUTING 2.1 KiB LICENSE 1.1 KiB Makefile 4.1 KiB README 2.5 KiB STYLE 2.6 KiB std.lib 1.2 KiB std.lib.test 347 B
test/tests/slice.append.ril 18.7 KiB raw
1
data mut $BUF align 1 {
2
    undef * 4096;
3
}
4
5
data mut $main$nominal$arena align 8 {
6
    undef * 24;
7
}
8
9
fn w64 $newArena(w64 %0, w64 %1) {
10
  @entry0
11
    reserve %2 24 8;
12
    blit %2 %1 16;
13
    store w32 0 %2 16;
14
    blit %0 %2 24;
15
    ret %0;
16
}
17
18
fn w64 $arenaAlloc(w64 %0, w32 %1, w32 %2) {
19
  @entry0
20
    load w32 %3 %0 16;
21
    add w32 %4 %3 %2;
22
    sub w32 %5 %4 1;
23
    udiv w32 %6 %5 %2;
24
    mul w32 %7 %6 %2;
25
    add w32 %8 %7 %1;
26
    load w32 %9 %0 8;
27
    br.ult w32 %9 %8 @assert.fail1 @assert.ok2;
28
  @assert.fail1
29
    unreachable;
30
  @assert.ok2
31
    load w32 %10 %0 8;
32
    br.ult w32 %7 %10 @guard#pass3 @guard#trap4;
33
  @guard#pass3
34
    load w64 %11 %0 0;
35
    add w64 %12 %11 %7;
36
    store w32 %8 %0 16;
37
    ret %12;
38
  @guard#trap4
39
    ebreak;
40
    unreachable;
41
}
42
43
fn w64 $arenaAllocFn(w64 %0, w32 %1, w32 %2) {
44
  @entry0
45
    call w64 %3 $arenaAlloc(%0, %1, %2);
46
    ret %3;
47
}
48
49
fn w64 $arenaAllocator(w64 %0, w64 %1) {
50
  @entry0
51
    reserve %2 16 8;
52
    copy %3 $arenaAllocFn;
53
    store w64 %3 %2 0;
54
    store w64 %1 %2 8;
55
    blit %0 %2 16;
56
    ret %0;
57
}
58
59
fn w32 $main() {
60
  @entry0
61
    copy %0 $BUF;
62
    reserve %1 16 8;
63
    store w64 %0 %1 0;
64
    store w32 4096 %1 8;
65
    store w32 4096 %1 12;
66
    reserve %2 24 8;
67
    call w64 %3 $newArena(%2, %1);
68
    copy %4 $main$nominal$arena;
69
    blit %4 %3 24;
70
    copy %5 $main$nominal$arena;
71
    reserve %6 16 8;
72
    call w64 %7 $arenaAllocator(%6, %5);
73
    copy %8 $main$nominal$arena;
74
    mul w32 %9 4 4;
75
    call w64 %10 $arenaAlloc(%8, %9, 4);
76
    reserve %11 16 8;
77
    store w64 %10 %11 0;
78
    store w32 0 %11 8;
79
    store w32 4 %11 12;
80
    load w32 %12 %11 8;
81
    load w32 %13 %11 12;
82
    br.ult w32 %12 %13 @append.store1 @append.grow2;
83
  @append.store1
84
    load w64 %27 %11 0;
85
    mul w64 %28 %12 4;
86
    add w64 %29 %27 %28;
87
    store w32 10 %29 0;
88
    add w32 %30 %12 1;
89
    store w32 %30 %11 8;
90
    load w32 %35 %11 8;
91
    load w32 %36 %11 12;
92
    br.ult w32 %35 %36 @append.store6 @append.grow7;
93
  @append.grow2
94
    shl w32 %14 %13 1;
95
    or w32 %15 %14 1;
96
    load w64 %16 %7 0;
97
    load w64 %17 %7 8;
98
    mul w32 %18 %15 4;
99
    call w64 %19 %16(%17, %18, 4);
100
    load w64 %20 %11 0;
101
    mul w32 %21 %12 4;
102
    jmp @append3(0);
103
  @append3(w32 %22)
104
    br.ult w32 %22 %21 @append4 @append5;
105
  @append4
106
    add w64 %23 %20 %22;
107
    load w8 %24 %23 0;
108
    add w64 %25 %19 %22;
109
    store w8 %24 %25 0;
110
    add w32 %26 %22 1;
111
    jmp @append3(%26);
112
  @append5
113
    store w64 %19 %11 0;
114
    store w32 %15 %11 12;
115
    jmp @append.store1;
116
  @append.store6
117
    load w64 %50 %11 0;
118
    mul w64 %51 %35 4;
119
    add w64 %52 %50 %51;
120
    store w32 20 %52 0;
121
    add w32 %53 %35 1;
122
    store w32 %53 %11 8;
123
    load w32 %58 %11 8;
124
    load w32 %59 %11 12;
125
    br.ult w32 %58 %59 @append.store11 @append.grow12;
126
  @append.grow7
127
    shl w32 %37 %36 1;
128
    or w32 %38 %37 1;
129
    load w64 %39 %7 0;
130
    load w64 %40 %7 8;
131
    mul w32 %41 %38 4;
132
    call w64 %42 %39(%40, %41, 4);
133
    load w64 %43 %11 0;
134
    mul w32 %44 %35 4;
135
    jmp @append8(0);
136
  @append8(w32 %45)
137
    br.ult w32 %45 %44 @append9 @append10;
138
  @append9
139
    add w64 %46 %43 %45;
140
    load w8 %47 %46 0;
141
    add w64 %48 %42 %45;
142
    store w8 %47 %48 0;
143
    add w32 %49 %45 1;
144
    jmp @append8(%49);
145
  @append10
146
    store w64 %42 %11 0;
147
    store w32 %38 %11 12;
148
    jmp @append.store6;
149
  @append.store11
150
    load w64 %73 %11 0;
151
    mul w64 %74 %58 4;
152
    add w64 %75 %73 %74;
153
    store w32 30 %75 0;
154
    add w32 %76 %58 1;
155
    store w32 %76 %11 8;
156
    load w32 %79 %11 8;
157
    br.ne w32 %79 3 @then16 @merge17;
158
  @append.grow12
159
    shl w32 %60 %59 1;
160
    or w32 %61 %60 1;
161
    load w64 %62 %7 0;
162
    load w64 %63 %7 8;
163
    mul w32 %64 %61 4;
164
    call w64 %65 %62(%63, %64, 4);
165
    load w64 %66 %11 0;
166
    mul w32 %67 %58 4;
167
    jmp @append13(0);
168
  @append13(w32 %68)
169
    br.ult w32 %68 %67 @append14 @append15;
170
  @append14
171
    add w64 %69 %66 %68;
172
    load w8 %70 %69 0;
173
    add w64 %71 %65 %68;
174
    store w8 %70 %71 0;
175
    add w32 %72 %68 1;
176
    jmp @append13(%72);
177
  @append15
178
    store w64 %65 %11 0;
179
    store w32 %61 %11 12;
180
    jmp @append.store11;
181
  @then16
182
    ret 1;
183
  @merge17
184
    load w32 %80 %11 12;
185
    br.ne w32 %80 4 @then18 @merge19;
186
  @then18
187
    ret 2;
188
  @merge19
189
    load w32 %81 %11 8;
190
    br.ult w32 0 %81 @guard#pass22 @guard#trap23;
191
  @then20
192
    ret 3;
193
  @merge21
194
    load w32 %84 %11 8;
195
    br.ult w32 1 %84 @guard#pass26 @guard#trap27;
196
  @guard#pass22
197
    load w64 %82 %11 0;
198
    sload w32 %83 %82 0;
199
    br.ne w32 %83 10 @then20 @merge21;
200
  @guard#trap23
201
    ebreak;
202
    unreachable;
203
  @then24
204
    ret 4;
205
  @merge25
206
    load w32 %89 %11 8;
207
    br.ult w32 2 %89 @guard#pass30 @guard#trap31;
208
  @guard#pass26
209
    load w64 %85 %11 0;
210
    mul w64 %86 1 4;
211
    add w64 %87 %85 %86;
212
    sload w32 %88 %87 0;
213
    br.ne w32 %88 20 @then24 @merge25;
214
  @guard#trap27
215
    ebreak;
216
    unreachable;
217
  @then28
218
    ret 5;
219
  @merge29
220
    load w32 %96 %11 8;
221
    load w32 %97 %11 12;
222
    br.ult w32 %96 %97 @append.store32 @append.grow33;
223
  @guard#pass30
224
    load w64 %90 %11 0;
225
    mul w64 %91 2 4;
226
    add w64 %92 %90 %91;
227
    sload w32 %93 %92 0;
228
    br.ne w32 %93 30 @then28 @merge29;
229
  @guard#trap31
230
    ebreak;
231
    unreachable;
232
  @append.store32
233
    load w64 %111 %11 0;
234
    mul w64 %112 %96 4;
235
    add w64 %113 %111 %112;
236
    store w32 40 %113 0;
237
    add w32 %114 %96 1;
238
    store w32 %114 %11 8;
239
    load w32 %117 %11 8;
240
    br.ne w32 %117 4 @then37 @merge38;
241
  @append.grow33
242
    shl w32 %98 %97 1;
243
    or w32 %99 %98 1;
244
    load w64 %100 %7 0;
245
    load w64 %101 %7 8;
246
    mul w32 %102 %99 4;
247
    call w64 %103 %100(%101, %102, 4);
248
    load w64 %104 %11 0;
249
    mul w32 %105 %96 4;
250
    jmp @append34(0);
251
  @append34(w32 %106)
252
    br.ult w32 %106 %105 @append35 @append36;
253
  @append35
254
    add w64 %107 %104 %106;
255
    load w8 %108 %107 0;
256
    add w64 %109 %103 %106;
257
    store w8 %108 %109 0;
258
    add w32 %110 %106 1;
259
    jmp @append34(%110);
260
  @append36
261
    store w64 %103 %11 0;
262
    store w32 %99 %11 12;
263
    jmp @append.store32;
264
  @then37
265
    ret 6;
266
  @merge38
267
    load w32 %118 %11 12;
268
    br.ne w32 %118 4 @then39 @merge40;
269
  @then39
270
    ret 7;
271
  @merge40
272
    load w32 %121 %11 8;
273
    load w32 %122 %11 12;
274
    br.ult w32 %121 %122 @append.store41 @append.grow42;
275
  @append.store41
276
    load w64 %136 %11 0;
277
    mul w64 %137 %121 4;
278
    add w64 %138 %136 %137;
279
    store w32 50 %138 0;
280
    add w32 %139 %121 1;
281
    store w32 %139 %11 8;
282
    load w32 %142 %11 8;
283
    br.ne w32 %142 5 @then46 @merge47;
284
  @append.grow42
285
    shl w32 %123 %122 1;
286
    or w32 %124 %123 1;
287
    load w64 %125 %7 0;
288
    load w64 %126 %7 8;
289
    mul w32 %127 %124 4;
290
    call w64 %128 %125(%126, %127, 4);
291
    load w64 %129 %11 0;
292
    mul w32 %130 %121 4;
293
    jmp @append43(0);
294
  @append43(w32 %131)
295
    br.ult w32 %131 %130 @append44 @append45;
296
  @append44
297
    add w64 %132 %129 %131;
298
    load w8 %133 %132 0;
299
    add w64 %134 %128 %131;
300
    store w8 %133 %134 0;
301
    add w32 %135 %131 1;
302
    jmp @append43(%135);
303
  @append45
304
    store w64 %128 %11 0;
305
    store w32 %124 %11 12;
306
    jmp @append.store41;
307
  @then46
308
    ret 8;
309
  @merge47
310
    load w32 %143 %11 12;
311
    br.ne w32 %143 9 @then48 @merge49;
312
  @then48
313
    ret 9;
314
  @merge49
315
    load w32 %144 %11 8;
316
    br.ult w32 4 %144 @guard#pass52 @guard#trap53;
317
  @then50
318
    ret 10;
319
  @merge51
320
    load w32 %149 %11 8;
321
    br.ult w32 0 %149 @guard#pass56 @guard#trap57;
322
  @guard#pass52
323
    load w64 %145 %11 0;
324
    mul w64 %146 4 4;
325
    add w64 %147 %145 %146;
326
    sload w32 %148 %147 0;
327
    br.ne w32 %148 50 @then50 @merge51;
328
  @guard#trap53
329
    ebreak;
330
    unreachable;
331
  @then54
332
    ret 11;
333
  @merge55
334
    load w32 %152 %11 8;
335
    br.ult w32 3 %152 @guard#pass60 @guard#trap61;
336
  @guard#pass56
337
    load w64 %150 %11 0;
338
    sload w32 %151 %150 0;
339
    br.ne w32 %151 10 @then54 @merge55;
340
  @guard#trap57
341
    ebreak;
342
    unreachable;
343
  @then58
344
    ret 12;
345
  @merge59
346
    reserve %157 16 8;
347
    store w64 0 %157 0;
348
    store w32 0 %157 8;
349
    store w32 0 %157 12;
350
    load w32 %160 %157 8;
351
    load w32 %161 %157 12;
352
    br.ult w32 %160 %161 @append.store62 @append.grow63;
353
  @guard#pass60
354
    load w64 %153 %11 0;
355
    mul w64 %154 3 4;
356
    add w64 %155 %153 %154;
357
    sload w32 %156 %155 0;
358
    br.ne w32 %156 40 @then58 @merge59;
359
  @guard#trap61
360
    ebreak;
361
    unreachable;
362
  @append.store62
363
    load w64 %175 %157 0;
364
    mul w64 %176 %160 4;
365
    add w64 %177 %175 %176;
366
    store w32 99 %177 0;
367
    add w32 %178 %160 1;
368
    store w32 %178 %157 8;
369
    load w32 %181 %157 8;
370
    br.ne w32 %181 1 @then67 @merge68;
371
  @append.grow63
372
    shl w32 %162 %161 1;
373
    or w32 %163 %162 1;
374
    load w64 %164 %7 0;
375
    load w64 %165 %7 8;
376
    mul w32 %166 %163 4;
377
    call w64 %167 %164(%165, %166, 4);
378
    load w64 %168 %157 0;
379
    mul w32 %169 %160 4;
380
    jmp @append64(0);
381
  @append64(w32 %170)
382
    br.ult w32 %170 %169 @append65 @append66;
383
  @append65
384
    add w64 %171 %168 %170;
385
    load w8 %172 %171 0;
386
    add w64 %173 %167 %170;
387
    store w8 %172 %173 0;
388
    add w32 %174 %170 1;
389
    jmp @append64(%174);
390
  @append66
391
    store w64 %167 %157 0;
392
    store w32 %163 %157 12;
393
    jmp @append.store62;
394
  @then67
395
    ret 13;
396
  @merge68
397
    load w32 %182 %157 12;
398
    br.ne w32 %182 1 @then69 @merge70;
399
  @then69
400
    ret 14;
401
  @merge70
402
    load w32 %183 %157 8;
403
    br.ult w32 0 %183 @guard#pass73 @guard#trap74;
404
  @then71
405
    ret 15;
406
  @merge72
407
    load w32 %188 %11 8;
408
    load w64 %189 %11 0;
409
    jmp @loop75(0, 0);
410
  @guard#pass73
411
    load w64 %184 %157 0;
412
    sload w32 %185 %184 0;
413
    br.ne w32 %185 99 @then71 @merge72;
414
  @guard#trap74
415
    ebreak;
416
    unreachable;
417
  @loop75(w32 %190, w32 %194)
418
    br.slt w32 %190 %188 @body76 @merge77;
419
  @body76
420
    mul w64 %191 %190 4;
421
    add w64 %192 %189 %191;
422
    sload w32 %193 %192 0;
423
    add w32 %195 %194 %193;
424
    add w32 %196 %190 1;
425
    jmp @loop75(%196, %195);
426
  @merge77
427
    br.ne w32 %194 150 @then78 @merge79;
428
  @then78
429
    ret 16;
430
  @merge79
431
    copy %197 $main$nominal$arena;
432
    call w64 %198 $arenaAlloc(%197, 2, 1);
433
    reserve %199 16 8;
434
    store w64 %198 %199 0;
435
    store w32 0 %199 8;
436
    store w32 2 %199 12;
437
    load w32 %203 %199 8;
438
    load w32 %204 %199 12;
439
    br.ult w32 %203 %204 @append.store80 @append.grow81;
440
  @append.store80
441
    load w64 %218 %199 0;
442
    add w64 %219 %218 %203;
443
    store w8 171 %219 0;
444
    add w32 %220 %203 1;
445
    store w32 %220 %199 8;
446
    load w32 %225 %199 8;
447
    load w32 %226 %199 12;
448
    br.ult w32 %225 %226 @append.store85 @append.grow86;
449
  @append.grow81
450
    shl w32 %205 %204 1;
451
    or w32 %206 %205 1;
452
    load w64 %207 %7 0;
453
    load w64 %208 %7 8;
454
    mul w32 %209 %206 1;
455
    call w64 %210 %207(%208, %209, 1);
456
    load w64 %211 %199 0;
457
    mul w32 %212 %203 1;
458
    jmp @append82(0);
459
  @append82(w32 %213)
460
    br.ult w32 %213 %212 @append83 @append84;
461
  @append83
462
    add w64 %214 %211 %213;
463
    load w8 %215 %214 0;
464
    add w64 %216 %210 %213;
465
    store w8 %215 %216 0;
466
    add w32 %217 %213 1;
467
    jmp @append82(%217);
468
  @append84
469
    store w64 %210 %199 0;
470
    store w32 %206 %199 12;
471
    jmp @append.store80;
472
  @append.store85
473
    load w64 %240 %199 0;
474
    add w64 %241 %240 %225;
475
    store w8 205 %241 0;
476
    add w32 %242 %225 1;
477
    store w32 %242 %199 8;
478
    load w32 %245 %199 8;
479
    br.ne w32 %245 2 @then90 @merge91;
480
  @append.grow86
481
    shl w32 %227 %226 1;
482
    or w32 %228 %227 1;
483
    load w64 %229 %7 0;
484
    load w64 %230 %7 8;
485
    mul w32 %231 %228 1;
486
    call w64 %232 %229(%230, %231, 1);
487
    load w64 %233 %199 0;
488
    mul w32 %234 %225 1;
489
    jmp @append87(0);
490
  @append87(w32 %235)
491
    br.ult w32 %235 %234 @append88 @append89;
492
  @append88
493
    add w64 %236 %233 %235;
494
    load w8 %237 %236 0;
495
    add w64 %238 %232 %235;
496
    store w8 %237 %238 0;
497
    add w32 %239 %235 1;
498
    jmp @append87(%239);
499
  @append89
500
    store w64 %232 %199 0;
501
    store w32 %228 %199 12;
502
    jmp @append.store85;
503
  @then90
504
    ret 17;
505
  @merge91
506
    load w32 %246 %199 8;
507
    br.ult w32 0 %246 @guard#pass94 @guard#trap95;
508
  @then92
509
    ret 18;
510
  @merge93
511
    load w32 %249 %199 8;
512
    br.ult w32 1 %249 @guard#pass98 @guard#trap99;
513
  @guard#pass94
514
    load w64 %247 %199 0;
515
    load w8 %248 %247 0;
516
    br.ne w8 %248 171 @then92 @merge93;
517
  @guard#trap95
518
    ebreak;
519
    unreachable;
520
  @then96
521
    ret 19;
522
  @merge97
523
    load w32 %255 %199 8;
524
    load w32 %256 %199 12;
525
    br.ult w32 %255 %256 @append.store100 @append.grow101;
526
  @guard#pass98
527
    load w64 %250 %199 0;
528
    add w64 %251 %250 1;
529
    load w8 %252 %251 0;
530
    br.ne w8 %252 205 @then96 @merge97;
531
  @guard#trap99
532
    ebreak;
533
    unreachable;
534
  @append.store100
535
    load w64 %270 %199 0;
536
    add w64 %271 %270 %255;
537
    store w8 239 %271 0;
538
    add w32 %272 %255 1;
539
    store w32 %272 %199 8;
540
    load w32 %275 %199 8;
541
    br.ne w32 %275 3 @then105 @merge106;
542
  @append.grow101
543
    shl w32 %257 %256 1;
544
    or w32 %258 %257 1;
545
    load w64 %259 %7 0;
546
    load w64 %260 %7 8;
547
    mul w32 %261 %258 1;
548
    call w64 %262 %259(%260, %261, 1);
549
    load w64 %263 %199 0;
550
    mul w32 %264 %255 1;
551
    jmp @append102(0);
552
  @append102(w32 %265)
553
    br.ult w32 %265 %264 @append103 @append104;
554
  @append103
555
    add w64 %266 %263 %265;
556
    load w8 %267 %266 0;
557
    add w64 %268 %262 %265;
558
    store w8 %267 %268 0;
559
    add w32 %269 %265 1;
560
    jmp @append102(%269);
561
  @append104
562
    store w64 %262 %199 0;
563
    store w32 %258 %199 12;
564
    jmp @append.store100;
565
  @then105
566
    ret 20;
567
  @merge106
568
    load w32 %276 %199 12;
569
    br.ne w32 %276 5 @then107 @merge108;
570
  @then107
571
    ret 21;
572
  @merge108
573
    load w32 %277 %199 8;
574
    br.ult w32 2 %277 @guard#pass111 @guard#trap112;
575
  @then109
576
    ret 22;
577
  @merge110
578
    load w32 %281 %199 8;
579
    br.ult w32 0 %281 @guard#pass115 @guard#trap116;
580
  @guard#pass111
581
    load w64 %278 %199 0;
582
    add w64 %279 %278 2;
583
    load w8 %280 %279 0;
584
    br.ne w8 %280 239 @then109 @merge110;
585
  @guard#trap112
586
    ebreak;
587
    unreachable;
588
  @then113
589
    ret 23;
590
  @merge114
591
    copy %284 $main$nominal$arena;
592
    mul w32 %285 4 2;
593
    call w64 %286 $arenaAlloc(%284, %285, 4);
594
    reserve %287 16 8;
595
    store w64 %286 %287 0;
596
    store w32 0 %287 8;
597
    store w32 2 %287 12;
598
    load w32 %290 %287 8;
599
    load w32 %291 %287 12;
600
    br.ult w32 %290 %291 @append.store117 @append.grow118;
601
  @guard#pass115
602
    load w64 %282 %199 0;
603
    load w8 %283 %282 0;
604
    br.ne w8 %283 171 @then113 @merge114;
605
  @guard#trap116
606
    ebreak;
607
    unreachable;
608
  @append.store117
609
    load w64 %305 %287 0;
610
    mul w64 %306 %290 4;
611
    add w64 %307 %305 %306;
612
    store w32 42 %307 0;
613
    add w32 %308 %290 1;
614
    store w32 %308 %287 8;
615
    blit %287 %287 16;
616
    load w32 %311 %287 8;
617
    br.eq w32 %311 1 @assert.ok123 @assert.fail122;
618
  @append.grow118
619
    shl w32 %292 %291 1;
620
    or w32 %293 %292 1;
621
    load w64 %294 %7 0;
622
    load w64 %295 %7 8;
623
    mul w32 %296 %293 4;
624
    call w64 %297 %294(%295, %296, 4);
625
    load w64 %298 %287 0;
626
    mul w32 %299 %290 4;
627
    jmp @append119(0);
628
  @append119(w32 %300)
629
    br.ult w32 %300 %299 @append120 @append121;
630
  @append120
631
    add w64 %301 %298 %300;
632
    load w8 %302 %301 0;
633
    add w64 %303 %297 %300;
634
    store w8 %302 %303 0;
635
    add w32 %304 %300 1;
636
    jmp @append119(%304);
637
  @append121
638
    store w64 %297 %287 0;
639
    store w32 %293 %287 12;
640
    jmp @append.store117;
641
  @assert.fail122
642
    unreachable;
643
  @assert.ok123
644
    load w32 %312 %287 8;
645
    br.ult w32 0 %312 @guard#pass126 @guard#trap127;
646
  @assert.fail124
647
    unreachable;
648
  @assert.ok125
649
    load w32 %317 %287 8;
650
    load w32 %318 %287 12;
651
    br.ult w32 %317 %318 @append.store128 @append.grow129;
652
  @guard#pass126
653
    load w64 %313 %287 0;
654
    sload w32 %314 %313 0;
655
    br.eq w32 %314 42 @assert.ok125 @assert.fail124;
656
  @guard#trap127
657
    ebreak;
658
    unreachable;
659
  @append.store128
660
    load w64 %332 %287 0;
661
    mul w64 %333 %317 4;
662
    add w64 %334 %332 %333;
663
    store w32 43 %334 0;
664
    add w32 %335 %317 1;
665
    store w32 %335 %287 8;
666
    blit %287 %287 16;
667
    load w32 %338 %287 8;
668
    br.eq w32 %338 2 @assert.ok134 @assert.fail133;
669
  @append.grow129
670
    shl w32 %319 %318 1;
671
    or w32 %320 %319 1;
672
    load w64 %321 %7 0;
673
    load w64 %322 %7 8;
674
    mul w32 %323 %320 4;
675
    call w64 %324 %321(%322, %323, 4);
676
    load w64 %325 %287 0;
677
    mul w32 %326 %317 4;
678
    jmp @append130(0);
679
  @append130(w32 %327)
680
    br.ult w32 %327 %326 @append131 @append132;
681
  @append131
682
    add w64 %328 %325 %327;
683
    load w8 %329 %328 0;
684
    add w64 %330 %324 %327;
685
    store w8 %329 %330 0;
686
    add w32 %331 %327 1;
687
    jmp @append130(%331);
688
  @append132
689
    store w64 %324 %287 0;
690
    store w32 %320 %287 12;
691
    jmp @append.store128;
692
  @assert.fail133
693
    unreachable;
694
  @assert.ok134
695
    load w32 %339 %287 8;
696
    br.ult w32 0 %339 @guard#pass135 @guard#trap136;
697
  @guard#pass135
698
    load w64 %340 %287 0;
699
    load w32 %343 %287 8;
700
    load w32 %344 %287 12;
701
    br.ult w32 %343 %344 @append.store137 @append.grow138;
702
  @guard#trap136
703
    ebreak;
704
    unreachable;
705
  @append.store137
706
    load w64 %358 %287 0;
707
    mul w64 %359 %343 4;
708
    add w64 %360 %358 %359;
709
    store w32 44 %360 0;
710
    add w32 %361 %343 1;
711
    store w32 %361 %287 8;
712
    blit %287 %287 16;
713
    load w32 %364 %287 8;
714
    br.eq w32 %364 3 @assert.ok143 @assert.fail142;
715
  @append.grow138
716
    shl w32 %345 %344 1;
717
    or w32 %346 %345 1;
718
    load w64 %347 %7 0;
719
    load w64 %348 %7 8;
720
    mul w32 %349 %346 4;
721
    call w64 %350 %347(%348, %349, 4);
722
    load w64 %351 %287 0;
723
    mul w32 %352 %343 4;
724
    jmp @append139(0);
725
  @append139(w32 %353)
726
    br.ult w32 %353 %352 @append140 @append141;
727
  @append140
728
    add w64 %354 %351 %353;
729
    load w8 %355 %354 0;
730
    add w64 %356 %350 %353;
731
    store w8 %355 %356 0;
732
    add w32 %357 %353 1;
733
    jmp @append139(%357);
734
  @append141
735
    store w64 %350 %287 0;
736
    store w32 %346 %287 12;
737
    jmp @append.store137;
738
  @assert.fail142
739
    unreachable;
740
  @assert.ok143
741
    load w32 %365 %287 12;
742
    br.eq w32 %365 5 @assert.ok145 @assert.fail144;
743
  @assert.fail144
744
    unreachable;
745
  @assert.ok145
746
    load w32 %366 %287 8;
747
    br.ult w32 0 %366 @guard#pass146 @guard#trap147;
748
  @guard#pass146
749
    load w64 %367 %287 0;
750
    br.ne w64 %340 %367 @assert.ok149 @assert.fail148;
751
  @guard#trap147
752
    ebreak;
753
    unreachable;
754
  @assert.fail148
755
    unreachable;
756
  @assert.ok149
757
    load w32 %370 %287 8;
758
    br.ult w32 0 %370 @guard#pass152 @guard#trap153;
759
  @assert.fail150
760
    unreachable;
761
  @assert.ok151
762
    load w32 %373 %287 8;
763
    br.ult w32 1 %373 @guard#pass156 @guard#trap157;
764
  @guard#pass152
765
    load w64 %371 %287 0;
766
    sload w32 %372 %371 0;
767
    br.eq w32 %372 42 @assert.ok151 @assert.fail150;
768
  @guard#trap153
769
    ebreak;
770
    unreachable;
771
  @assert.fail154
772
    unreachable;
773
  @assert.ok155
774
    load w32 %378 %287 8;
775
    br.ult w32 2 %378 @guard#pass160 @guard#trap161;
776
  @guard#pass156
777
    load w64 %374 %287 0;
778
    mul w64 %375 1 4;
779
    add w64 %376 %374 %375;
780
    sload w32 %377 %376 0;
781
    br.eq w32 %377 43 @assert.ok155 @assert.fail154;
782
  @guard#trap157
783
    ebreak;
784
    unreachable;
785
  @assert.fail158
786
    unreachable;
787
  @assert.ok159
788
    ret 0;
789
  @guard#pass160
790
    load w64 %379 %287 0;
791
    mul w64 %380 2 4;
792
    add w64 %381 %379 %380;
793
    sload w32 %382 %381 0;
794
    br.eq w32 %382 44 @assert.ok159 @assert.fail158;
795
  @guard#trap161
796
    ebreak;
797
    unreachable;
798
}