mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-06 12:09:26 +08:00
103 lines
2.2 KiB
ArmAsm
103 lines
2.2 KiB
ArmAsm
|
# MDMX .OB op tests.
|
||
|
# mach: sb1
|
||
|
# as: -mabi=eabi
|
||
|
# ld: -N -Ttext=0x80010000
|
||
|
# output: *\\npass\\n
|
||
|
|
||
|
.include "testutils.inc"
|
||
|
.include "utils-mdmx.inc"
|
||
|
|
||
|
setup
|
||
|
|
||
|
.set noreorder
|
||
|
|
||
|
.ent DIAG
|
||
|
DIAG:
|
||
|
|
||
|
enable_mdmx
|
||
|
|
||
|
# set Status.SBX to enable SB-1 extensions.
|
||
|
mfc0 $2, $12
|
||
|
or $2, $2, (1 << 16)
|
||
|
mtc0 $2, $12
|
||
|
|
||
|
|
||
|
###
|
||
|
### SB-1 Non-accumulator .ob format ops.
|
||
|
###
|
||
|
### Key: v = vector
|
||
|
### ev = vector of single element
|
||
|
### cv = vector of constant.
|
||
|
###
|
||
|
|
||
|
|
||
|
writemsg "pavg.ob (v)"
|
||
|
ld_ob $f8, 0x1122334455667788
|
||
|
ld_ob $f9, 0x66778899aabbccdd
|
||
|
pavg.ob $f10, $f8, $f9
|
||
|
ck_ob $f10, 0x3c4d5e6f8091a2b3
|
||
|
|
||
|
writemsg "pavg.ob (ev)"
|
||
|
ld_ob $f8, 0x1122334455667788
|
||
|
ld_ob $f9, 0x66778899aabbccdd
|
||
|
pavg.ob $f10, $f8, $f9[6]
|
||
|
ck_ob $f10, 0x444d555e666f7780
|
||
|
|
||
|
writemsg "pavg.ob (cv)"
|
||
|
ld_ob $f8, 0x1122334455667788
|
||
|
pavg.ob $f10, $f8, 0x10
|
||
|
ck_ob $f10, 0x1119222a333b444c
|
||
|
|
||
|
|
||
|
writemsg "pabsdiff.ob (v)"
|
||
|
ld_ob $f8, 0x1122334455667788
|
||
|
ld_ob $f9, 0x66778899aabbccdd
|
||
|
pabsdiff.ob $f10, $f8, $f9
|
||
|
ck_ob $f10, 0x5555555555555555
|
||
|
|
||
|
writemsg "pabsdiff.ob (ev)"
|
||
|
ld_ob $f8, 0x1122334455667788
|
||
|
ld_ob $f9, 0x66778899aabbccdd
|
||
|
pabsdiff.ob $f10, $f8, $f9[7]
|
||
|
ck_ob $f10, 0x5544332211001122
|
||
|
|
||
|
writemsg "pabsdiff.ob (cv)"
|
||
|
ld_ob $f8, 0x0001020304050607
|
||
|
pabsdiff.ob $f10, $f8, 0x04
|
||
|
ck_ob $f10, 0x0403020100010203
|
||
|
|
||
|
|
||
|
###
|
||
|
### SB-1 Accumulator .ob format ops
|
||
|
###
|
||
|
### Key: v = vector
|
||
|
### ev = vector of single element
|
||
|
### cv = vector of constant.
|
||
|
###
|
||
|
|
||
|
|
||
|
writemsg "pabsdiffc.ob (v)"
|
||
|
ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
|
||
|
ld_ob $f8, 0x1122334455667788
|
||
|
ld_ob $f9, 0x66778899aabbccdd
|
||
|
pabsdiffc.ob $f8, $f9
|
||
|
ck_acc_ob 0x0001020304050607, 0x0000000000000000, 0x5555555555555555
|
||
|
|
||
|
writemsg "pabsdiffc.ob (ev)"
|
||
|
ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
|
||
|
ld_ob $f8, 0x1122334455667788
|
||
|
ld_ob $f9, 0x66778899aabbccdd
|
||
|
pabsdiffc.ob $f8, $f9[7]
|
||
|
ck_acc_ob 0x0001020304050607, 0x0000000000000000, 0x5544332211001122
|
||
|
|
||
|
writemsg "pabsdiffc.ob (cv)"
|
||
|
ld_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0000000000000000
|
||
|
ld_ob $f8, 0x0001020304050607
|
||
|
pabsdiffc.ob $f8, 0x04
|
||
|
ck_acc_ob 0x0001020304050607, 0x0000000000000000, 0x0403020100010203
|
||
|
|
||
|
|
||
|
pass
|
||
|
|
||
|
.end DIAG
|