Projet_SETI_RISC-V/riscv-gnu-toolchain/binutils/sim/testsuite/aarch64/sumulh.s
2023-03-06 14:48:14 +01:00

53 lines
752 B
ArmAsm

# mach: aarch64
# Check the multiply highpart instructions: smulh, umulh.
# Test -2*2, -1<<32*-1<<32, -2*-2, and 2*2.
.include "testutils.inc"
start
mov x0, #-2
mov x1, #2
smulh x2, x0, x1
cmp x2, #-1
bne .Lfailure
umulh x3, x0, x1
cmp x3, #1
bne .Lfailure
mov w0, #-1
lsl x0, x0, #32 // 0xffffffff00000000
mov x1, x0
smulh x2, x0, x1
cmp x2, #1
bne .Lfailure
umulh x3, x0, x1
mov w4, #-2
lsl x4, x4, #32
add x4, x4, #1 // 0xfffffffe00000001
cmp x3, x4
bne .Lfailure
mov x0, #-2
mov x1, #-2
smulh x2, x0, x1
cmp x2, #0
bne .Lfailure
umulh x3, x0, x1
cmp x3, #-4
bne .Lfailure
mov x0, #2
mov x1, #2
smulh x2, x0, x1
cmp x2, #0
bne .Lfailure
umulh x3, x0, x1
cmp x3, #0
bne .Lfailure
pass
.Lfailure:
fail