mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
1368b914e9
Now that all port tests live under testsuite/sim/*/, and none live in testsuite/ directly, flatten the structure by moving all of the dirs under testsuite/sim/ to testsuite/ directly. We need to stop passing --tool to dejagnu so that it searches all dirs and not just ones that start with "sim". Since we have no other dirs in this tree, and no plans to add any, should be fine.
106 lines
1.6 KiB
ArmAsm
106 lines
1.6 KiB
ArmAsm
# mach: aarch64
|
|
|
|
# Check the vector multiply subtract instruction: mls.
|
|
|
|
.include "testutils.inc"
|
|
|
|
.data
|
|
.align 4
|
|
input:
|
|
.word 0x04030201
|
|
.word 0x08070605
|
|
.word 0x0c0b0a09
|
|
.word 0x100f0e0d
|
|
m8b:
|
|
.word 0xf1f8fd00
|
|
.word 0xc1d0dde8
|
|
m16b:
|
|
.word 0xf1f8fd00
|
|
.word 0xc1d0dde8
|
|
.word 0x71889db0
|
|
.word 0x01203d58
|
|
m4h:
|
|
.word 0xe7f8fc00
|
|
.word 0x8fd0c3e8
|
|
m8h:
|
|
.word 0xe7f8fc00
|
|
.word 0x8fd0c3e8
|
|
.word 0xf7884bb0
|
|
.word 0x1f209358
|
|
m2s:
|
|
.word 0xebf5fc00
|
|
.word 0x5b95c3e8
|
|
m4s:
|
|
.word 0xebf5fc00
|
|
.word 0x5b95c3e8
|
|
.word 0x4ad54bb0
|
|
.word 0xb9b49358
|
|
|
|
start
|
|
adrp x0, input
|
|
ldr q0, [x0, #:lo12:input]
|
|
|
|
movi v1.8b, #1
|
|
mls v1.8b, v0.8b, v0.8b
|
|
mov x1, v1.d[0]
|
|
adrp x3, m8b
|
|
ldr x4, [x3, #:lo12:m8b]
|
|
cmp x1, x4
|
|
bne .Lfailure
|
|
|
|
movi v1.16b, #1
|
|
mls v1.16b, v0.16b, v0.16b
|
|
mov x1, v1.d[0]
|
|
mov x2, v1.d[1]
|
|
adrp x3, m16b
|
|
ldr x4, [x3, #:lo12:m16b]
|
|
cmp x1, x4
|
|
bne .Lfailure
|
|
ldr x5, [x3, #:lo12:m16b+8]
|
|
cmp x2, x5
|
|
bne .Lfailure
|
|
|
|
movi v1.4h, #1
|
|
mls v1.4h, v0.4h, v0.4h
|
|
mov x1, v1.d[0]
|
|
adrp x3, m4h
|
|
ldr x4, [x3, #:lo12:m4h]
|
|
cmp x1, x4
|
|
bne .Lfailure
|
|
|
|
movi v1.8h, #1
|
|
mls v1.8h, v0.8h, v0.8h
|
|
mov x1, v1.d[0]
|
|
mov x2, v1.d[1]
|
|
adrp x3, m8h
|
|
ldr x4, [x3, #:lo12:m8h]
|
|
cmp x1, x4
|
|
bne .Lfailure
|
|
ldr x5, [x3, #:lo12:m8h+8]
|
|
cmp x2, x5
|
|
bne .Lfailure
|
|
|
|
movi v1.2s, #1
|
|
mls v1.2s, v0.2s, v0.2s
|
|
mov x1, v1.d[0]
|
|
adrp x3, m2s
|
|
ldr x4, [x3, #:lo12:m2s]
|
|
cmp x1, x4
|
|
bne .Lfailure
|
|
|
|
movi v1.4s, #1
|
|
mls v1.4s, v0.4s, v0.4s
|
|
mov x1, v1.d[0]
|
|
mov x2, v1.d[1]
|
|
adrp x3, m4s
|
|
ldr x4, [x3, #:lo12:m4s]
|
|
cmp x1, x4
|
|
bne .Lfailure
|
|
ldr x5, [x3, #:lo12:m4s+8]
|
|
cmp x2, x5
|
|
bne .Lfailure
|
|
|
|
pass
|
|
.Lfailure:
|
|
fail
|