Reduces LUT needed by mul extension
This commit is contained in:
@@ -1,20 +1,54 @@
|
||||
# expected: 0000000000000000, 0000000000000000, c1b080e9, deacf, deacf
|
||||
.text
|
||||
_start:
|
||||
li x2, 0xdead0
|
||||
li x3, 0x0
|
||||
li x4, 0x1
|
||||
li x5, (-1)
|
||||
li x6, 0xdead0
|
||||
li x7, 0xdead00000000
|
||||
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
|
||||
|
||||
# Mul 0
|
||||
# --------------------------------------------------------------
|
||||
# 1. MULHU : a * 0
|
||||
mulhu x31, x2, x3
|
||||
# expected: 0000000000000000
|
||||
|
||||
# Basic multiplications
|
||||
# 2. MULHU : a * 1
|
||||
mulhu x31, x2, x4
|
||||
mulhu x31, x7, x7
|
||||
# expected: 0000000000000000
|
||||
|
||||
# Overflow
|
||||
mulhu x31, x5, x2
|
||||
mulhu x31, x2, x5
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user