.text _start: li x2, 0xdead00000 # +59774074880 li x3, 0 # zero li x4, 1 # one li x5, 123456789 # small positive li x6, 0xdead00000 # duplicate of x2 li x7, 765432000000 # large positive li x8, 123456789 # small positive li x9, 234567890000 # large positive li x10, 0xffffffffffffffff # max positive 64b li x11, 0x8000000000000000 # min unsigned = 2^63 # -------------------------------------------------------------- # 1. MULHU : a * 0 mulhu x31, x2, x3 # expected: 0000000000000000 # 2. MULHU : a * 1 mulhu x31, x2, x4 # expected: 0000000000000000 # 3. MULHU : a * a mulhu x31, x2, x6 # expected: 00000000000000c1 # 4. MULHU : small * small mulhu x31, x5, x8 # expected: 0000000000000000 # 5. MULHU : small * large mulhu x31, x5, x7 # expected: 0000000000000005 # 6. MULHU : large * small mulhu x31, x7, x8 # expected: 0000000000000005 # 7. MULHU : large * large mulhu x31, x7, x9 # expected: 0000000000002605 # 8. MULHU : max * 2 li x12, 2 mulhu x31, x10, x12 # expected: 0000000000000001 # 9. MULHU : max * max mulhu x31, x10, x10 # expected: fffffffffffffffe # 10. MULHU : min * max mulhu x31, x11, x10 # expected: 7fffffffffffffff