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