; Binary emission of 32-bit code. test binemit isa riscv function %RV32I(i32 link [%x1]) -> i32 link [%x1] { fn0 = function %foo() sig0 = () ebb0(v9999: i32): [-,%x10] v1 = iconst.i32 1 [-,%x21] v2 = iconst.i32 2 ; Integer Register-Register Operations. ; add [-,%x7] v10 = iadd v1, v2 ; bin: 015503b3 [-,%x16] v11 = iadd v2, v1 ; bin: 00aa8833 ; sub [-,%x7] v12 = isub v1, v2 ; bin: 415503b3 [-,%x16] v13 = isub v2, v1 ; bin: 40aa8833 ; and [-,%x7] v20 = band v1, v2 ; bin: 015573b3 [-,%x16] v21 = band v2, v1 ; bin: 00aaf833 ; or [-,%x7] v22 = bor v1, v2 ; bin: 015563b3 [-,%x16] v23 = bor v2, v1 ; bin: 00aae833 ; xor [-,%x7] v24 = bxor v1, v2 ; bin: 015543b3 [-,%x16] v25 = bxor v2, v1 ; bin: 00aac833 ; sll [-,%x7] v30 = ishl v1, v2 ; bin: 015513b3 [-,%x16] v31 = ishl v2, v1 ; bin: 00aa9833 ; srl [-,%x7] v32 = ushr v1, v2 ; bin: 015553b3 [-,%x16] v33 = ushr v2, v1 ; bin: 00aad833 ; sra [-,%x7] v34 = sshr v1, v2 ; bin: 415553b3 [-,%x16] v35 = sshr v2, v1 ; bin: 40aad833 ; slt [-,%x7] v42 = icmp slt v1, v2 ; bin: 015523b3 [-,%x16] v43 = icmp slt v2, v1 ; bin: 00aaa833 ; sltu [-,%x7] v44 = icmp ult v1, v2 ; bin: 015533b3 [-,%x16] v45 = icmp ult v2, v1 ; bin: 00aab833 ; Integer Register-Immediate Instructions ; addi [-,%x7] v100 = iadd_imm v1, 1000 ; bin: 3e850393 [-,%x16] v101 = iadd_imm v2, -905 ; bin: c77a8813 ; andi [-,%x7] v110 = band_imm v1, 1000 ; bin: 3e857393 [-,%x16] v111 = band_imm v2, -905 ; bin: c77af813 ; ori [-,%x7] v112 = bor_imm v1, 1000 ; bin: 3e856393 [-,%x16] v113 = bor_imm v2, -905 ; bin: c77ae813 ; xori [-,%x7] v114 = bxor_imm v1, 1000 ; bin: 3e854393 [-,%x16] v115 = bxor_imm v2, -905 ; bin: c77ac813 ; slli [-,%x7] v120 = ishl_imm v1, 31 ; bin: 01f51393 [-,%x16] v121 = ishl_imm v2, 8 ; bin: 008a9813 ; srli [-,%x7] v122 = ushr_imm v1, 31 ; bin: 01f55393 [-,%x16] v123 = ushr_imm v2, 8 ; bin: 008ad813 ; srai [-,%x7] v124 = sshr_imm v1, 31 ; bin: 41f55393 [-,%x16] v125 = sshr_imm v2, 8 ; bin: 408ad813 ; slti [-,%x7] v130 = icmp_imm slt v1, 1000 ; bin: 3e852393 [-,%x16] v131 = icmp_imm slt v2, -905 ; bin: c77aa813 ; sltiu [-,%x7] v132 = icmp_imm ult v1, 1000 ; bin: 3e853393 [-,%x16] v133 = icmp_imm ult v2, -905 ; bin: c77ab813 ; lui [-,%x7] v140 = iconst.i32 0x12345000 ; bin: 123453b7 [-,%x16] v141 = iconst.i32 0xffffffff_fedcb000 ; bin: fedcb837 ; addi [-,%x7] v142 = iconst.i32 1000 ; bin: 3e800393 [-,%x16] v143 = iconst.i32 -905 ; bin: c7700813 ; Copies alias to iadd_imm. [-,%x7] v150 = copy v1 ; bin: 00050393 [-,%x16] v151 = copy v2 ; bin: 000a8813 ; Control Transfer Instructions ; jal %x1, fn0 call fn0() ; bin: Call(fn0) 000000ef ; jalr %x1, %x10 call_indirect sig0, v1() ; bin: 000500e7 call_indirect sig0, v2() ; bin: 000a80e7 brz v1, ebb3 brnz v1, ebb1 ; jalr %x0, %x1, 0 return v9999 ; bin: 00008067 ebb1: ; beq 0x000 br_icmp eq v1, v2, ebb1 ; bin: 01550063 ; bne 0xffc br_icmp ne v1, v2, ebb1 ; bin: ff551ee3 ; blt 0xff8 br_icmp slt v1, v2, ebb1 ; bin: ff554ce3 ; bge 0xff4 br_icmp sge v1, v2, ebb1 ; bin: ff555ae3 ; bltu 0xff0 br_icmp ult v1, v2, ebb1 ; bin: ff5568e3 ; bgeu 0xfec br_icmp uge v1, v2, ebb1 ; bin: ff5576e3 ; Forward branches. ; beq 0x018 br_icmp eq v2, v1, ebb2 ; bin: 00aa8c63 ; bne 0x014 br_icmp ne v2, v1, ebb2 ; bin: 00aa9a63 ; blt 0x010 br_icmp slt v2, v1, ebb2 ; bin: 00aac863 ; bge 0x00c br_icmp sge v2, v1, ebb2 ; bin: 00aad663 ; bltu 0x008 br_icmp ult v2, v1, ebb2 ; bin: 00aae463 ; bgeu 0x004 br_icmp uge v2, v1, ebb2 ; bin: 00aaf263 fallthrough ebb2 ebb2: ; jal %x0, 0x00000 jump ebb2 ; bin: 0000006f ebb3: ; beq x, %x0 brz v1, ebb3 ; bin: 00050063 ; bne x, %x0 brnz v1, ebb3 ; bin: fe051ee3 ; jal %x0, 0x1ffff4 jump ebb2 ; bin: ff5ff06f }