mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 18:13:01 +00:00
VSX Mask Manipulation operation tests.
This commit is contained in:
parent
82777ee408
commit
3c31707cd3
11
NEWS
11
NEWS
@ -35,6 +35,16 @@ support for X86/macOS 10.13, AMD64/macOS 10.13 and nanoMIPS/Linux.
|
||||
Valgrind. The vector-packed-decimal facility is currently not
|
||||
exploited by the standard toolchain and libraries.
|
||||
|
||||
* ppc64:
|
||||
|
||||
- Various bug fixes. Fix for the sync field to limit setting just two
|
||||
of the two bits in the L-field. Fix the write size for the stxsibx and
|
||||
stxsihx instructions. Fix the modsw and modsd instructions.
|
||||
|
||||
- Partial support for ISA 3.1 has been added. Support for the VSX PCV
|
||||
mask instructions, bfloat16 GER instructions, and bfloat16 to/from float
|
||||
32-bit conversion instructions are still missing.
|
||||
|
||||
* Valgrind now supports debuginfod, an HTTP server for distributing
|
||||
ELF/DWARF debugging information. When a debuginfo file cannot be
|
||||
found locally, Valgrind is able to query debuginfod servers for the
|
||||
@ -134,6 +144,7 @@ where XXXXXX is the bug number as listed below.
|
||||
428716 cppcheck detects potential leak in VEX/useful/smchash.c
|
||||
428909 helgrind: need to intercept duplicate libc definitions for Fedora 33
|
||||
429352 PPC ISA 3.1 support is missing, part 7
|
||||
429354 PPC ISA 3.1 support is missing, part 8
|
||||
429692 unhandled ppc64le-linux syscall: 147 (getsid)
|
||||
429864 s390x: C++ atomic test_and_set yields false-positive memcheck
|
||||
diagnostics
|
||||
|
||||
@ -689,6 +689,45 @@ static void test_pstq_off32 (void) {
|
||||
static void test_pstq_off64 (void) {
|
||||
__asm__ __volatile__ ("pstq 24, 64(%0), 0" :: "r" (ra) );
|
||||
}
|
||||
static void test_vcntmbb_0 (void) {
|
||||
__asm__ __volatile__ ("vcntmbb %0, %1, 0" : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vcntmbb_1 (void) {
|
||||
__asm__ __volatile__ ("vcntmbb %0, %1, 1" : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vcntmbh_0 (void) {
|
||||
__asm__ __volatile__ ("vcntmbh %0, %1, 0" : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vcntmbh_1 (void) {
|
||||
__asm__ __volatile__ ("vcntmbh %0, %1, 1" : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vcntmbw_0 (void) {
|
||||
__asm__ __volatile__ ("vcntmbw %0, %1, 0" : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vcntmbw_1 (void) {
|
||||
__asm__ __volatile__ ("vcntmbw %0, %1, 1" : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vcntmbd_0 (void) {
|
||||
__asm__ __volatile__ ("vcntmbd %0, %1, 0" : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vcntmbd_1 (void) {
|
||||
__asm__ __volatile__ ("vcntmbd %0, %1, 1" : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vextractbm (void) {
|
||||
__asm__ __volatile__ ("vextractbm %0, %1 " : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vextracthm (void) {
|
||||
__asm__ __volatile__ ("vextracthm %0, %1 " : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vextractwm (void) {
|
||||
__asm__ __volatile__ ("vextractwm %0, %1 " : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vextractdm (void) {
|
||||
__asm__ __volatile__ ("vextractdm %0, %1 " : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vextractqm (void) {
|
||||
__asm__ __volatile__ ("vextractqm %0, %1 " : "=r" (rt) : "v" (vrb) );
|
||||
}
|
||||
|
||||
static test_list_t testgroup_generic[] = {
|
||||
{ &test_brd, "brd", "RA,RS"}, /* bcs */
|
||||
@ -845,6 +884,19 @@ static test_list_t testgroup_generic[] = {
|
||||
{ &test_setnbc_31_cr1s, "setnbc 31_cr1s", "RT,BI"}, /* bcwp */
|
||||
{ &test_setnbc_31_creb, "setnbc 31_creb", "RT,BI"}, /* bcwp */
|
||||
{ &test_setnbc_31_crob, "setnbc 31_crob", "RT,BI"}, /* bcwp */
|
||||
{ &test_vcntmbb_0, "vcntmbb 0", "RT,VRB,MP"}, /* bcwp */
|
||||
{ &test_vcntmbb_1, "vcntmbb 1", "RT,VRB,MP"}, /* bcwp */
|
||||
{ &test_vcntmbd_0, "vcntmbd 0", "RT,VRB,MP"}, /* bcwp */
|
||||
{ &test_vcntmbd_1, "vcntmbd 1", "RT,VRB,MP"}, /* bcwp */
|
||||
{ &test_vcntmbh_0, "vcntmbh 0", "RT,VRB,MP"}, /* bcwp */
|
||||
{ &test_vcntmbh_1, "vcntmbh 1", "RT,VRB,MP"}, /* bcwp */
|
||||
{ &test_vcntmbw_0, "vcntmbw 0", "RT,VRB,MP"}, /* bcwp */
|
||||
{ &test_vcntmbw_1, "vcntmbw 1", "RT,VRB,MP"}, /* bcwp */
|
||||
{ &test_vextractbm, "vextractbm", "RT,VRB"}, /* bcs */
|
||||
{ &test_vextractdm, "vextractdm", "RT,VRB"}, /* bcs */
|
||||
{ &test_vextracthm, "vextracthm", "RT,VRB"}, /* bcs */
|
||||
{ &test_vextractqm, "vextractqm", "RT,VRB"}, /* bcs */
|
||||
{ &test_vextractwm, "vextractwm", "RT,VRB"}, /* bcs */
|
||||
{ &test_vgnb_2, "vgnb 2", "RT,VRB,N"}, /* bcwp */
|
||||
{ &test_vgnb_3, "vgnb 3", "RT,VRB,N"}, /* bcwp */
|
||||
{ &test_vgnb_4, "vgnb 4", "RT,VRB,N"}, /* bcwp */
|
||||
|
||||
@ -521,6 +521,188 @@ setnbc 31_creb => [aaaaaaaa] 0
|
||||
|
||||
setnbc 31_crob => [55555555] ffffffffffffffff
|
||||
|
||||
vcntmbb 0 7f800000ff800000,ff8000007f800000 => a00000000000000
|
||||
vcntmbb 0 ff8000007f800000,ff7ffffe7f7ffffe => 800000000000000
|
||||
vcntmbb 0 ff7ffffe7f7ffffe,0080000e8080000e => 800000000000000
|
||||
vcntmbb 0 0080000e8080000e,0180055e0180077e => b00000000000000
|
||||
vcntmbb 0 0180055e0180077e,0000111e8000222e => d00000000000000
|
||||
vcntmbb 0 0000111e8000222e,7ff0000000000000 => e00000000000000
|
||||
vcntmbb 0 7ff0000000000000,fff0000000000000 => d00000000000000
|
||||
vcntmbb 0 fff0000000000000,2208400000000000 => e00000000000000
|
||||
vcntmbb 0 2208400000000000,0000000000000009 => 1000000000000000
|
||||
vcntmbb 0 0000000000000009,ffff000180000001 => d00000000000000
|
||||
vcntmbb 0 ffff000180000001,0000000000000000 => d00000000000000
|
||||
vcntmbb 0 0000000000000000,8000000000000000 => f00000000000000
|
||||
vcntmbb 0 8000000000000000,7f800000ff800000 => c00000000000000
|
||||
|
||||
vcntmbb 1 7f800000ff800000,ff8000007f800000 => 600000000000000
|
||||
vcntmbb 1 ff8000007f800000,ff7ffffe7f7ffffe => 800000000000000
|
||||
vcntmbb 1 ff7ffffe7f7ffffe,0080000e8080000e => 800000000000000
|
||||
vcntmbb 1 0080000e8080000e,0180055e0180077e => 500000000000000
|
||||
vcntmbb 1 0180055e0180077e,0000111e8000222e => 300000000000000
|
||||
vcntmbb 1 0000111e8000222e,7ff0000000000000 => 200000000000000
|
||||
vcntmbb 1 7ff0000000000000,fff0000000000000 => 300000000000000
|
||||
vcntmbb 1 fff0000000000000,2208400000000000 => 200000000000000
|
||||
vcntmbb 1 2208400000000000,0000000000000009 => 0
|
||||
vcntmbb 1 0000000000000009,ffff000180000001 => 300000000000000
|
||||
vcntmbb 1 ffff000180000001,0000000000000000 => 300000000000000
|
||||
vcntmbb 1 0000000000000000,8000000000000000 => 100000000000000
|
||||
vcntmbb 1 8000000000000000,7f800000ff800000 => 400000000000000
|
||||
|
||||
vcntmbd 0 7f800000ff800000,ff8000007f800000 => 800000000000000
|
||||
vcntmbd 0 ff8000007f800000,ff7ffffe7f7ffffe => 0
|
||||
vcntmbd 0 ff7ffffe7f7ffffe,0080000e8080000e => 800000000000000
|
||||
vcntmbd 0 0080000e8080000e,0180055e0180077e => 1000000000000000
|
||||
vcntmbd 0 0180055e0180077e,0000111e8000222e => 1000000000000000
|
||||
vcntmbd 0 0000111e8000222e,7ff0000000000000 => 1000000000000000
|
||||
vcntmbd 0 7ff0000000000000,fff0000000000000 => 800000000000000
|
||||
vcntmbd 0 fff0000000000000,2208400000000000 => 800000000000000
|
||||
vcntmbd 0 2208400000000000,0000000000000009 => 1000000000000000
|
||||
vcntmbd 0 0000000000000009,ffff000180000001 => 800000000000000
|
||||
vcntmbd 0 ffff000180000001,0000000000000000 => 800000000000000
|
||||
vcntmbd 0 0000000000000000,8000000000000000 => 800000000000000
|
||||
vcntmbd 0 8000000000000000,7f800000ff800000 => 800000000000000
|
||||
|
||||
vcntmbd 1 7f800000ff800000,ff8000007f800000 => 800000000000000
|
||||
vcntmbd 1 ff8000007f800000,ff7ffffe7f7ffffe => 1000000000000000
|
||||
vcntmbd 1 ff7ffffe7f7ffffe,0080000e8080000e => 800000000000000
|
||||
vcntmbd 1 0080000e8080000e,0180055e0180077e => 0
|
||||
vcntmbd 1 0180055e0180077e,0000111e8000222e => 0
|
||||
vcntmbd 1 0000111e8000222e,7ff0000000000000 => 0
|
||||
vcntmbd 1 7ff0000000000000,fff0000000000000 => 800000000000000
|
||||
vcntmbd 1 fff0000000000000,2208400000000000 => 800000000000000
|
||||
vcntmbd 1 2208400000000000,0000000000000009 => 0
|
||||
vcntmbd 1 0000000000000009,ffff000180000001 => 800000000000000
|
||||
vcntmbd 1 ffff000180000001,0000000000000000 => 800000000000000
|
||||
vcntmbd 1 0000000000000000,8000000000000000 => 800000000000000
|
||||
vcntmbd 1 8000000000000000,7f800000ff800000 => 800000000000000
|
||||
|
||||
vcntmbh 0 7f800000ff800000,ff8000007f800000 => c00000000000000
|
||||
vcntmbh 0 ff8000007f800000,ff7ffffe7f7ffffe => 800000000000000
|
||||
vcntmbh 0 ff7ffffe7f7ffffe,0080000e8080000e => 800000000000000
|
||||
vcntmbh 0 0080000e8080000e,0180055e0180077e => e00000000000000
|
||||
vcntmbh 0 0180055e0180077e,0000111e8000222e => e00000000000000
|
||||
vcntmbh 0 0000111e8000222e,7ff0000000000000 => e00000000000000
|
||||
vcntmbh 0 7ff0000000000000,fff0000000000000 => e00000000000000
|
||||
vcntmbh 0 fff0000000000000,2208400000000000 => e00000000000000
|
||||
vcntmbh 0 2208400000000000,0000000000000009 => 1000000000000000
|
||||
vcntmbh 0 0000000000000009,ffff000180000001 => c00000000000000
|
||||
vcntmbh 0 ffff000180000001,0000000000000000 => c00000000000000
|
||||
vcntmbh 0 0000000000000000,8000000000000000 => e00000000000000
|
||||
vcntmbh 0 8000000000000000,7f800000ff800000 => c00000000000000
|
||||
|
||||
vcntmbh 1 7f800000ff800000,ff8000007f800000 => 400000000000000
|
||||
vcntmbh 1 ff8000007f800000,ff7ffffe7f7ffffe => 800000000000000
|
||||
vcntmbh 1 ff7ffffe7f7ffffe,0080000e8080000e => 800000000000000
|
||||
vcntmbh 1 0080000e8080000e,0180055e0180077e => 200000000000000
|
||||
vcntmbh 1 0180055e0180077e,0000111e8000222e => 200000000000000
|
||||
vcntmbh 1 0000111e8000222e,7ff0000000000000 => 200000000000000
|
||||
vcntmbh 1 7ff0000000000000,fff0000000000000 => 200000000000000
|
||||
vcntmbh 1 fff0000000000000,2208400000000000 => 200000000000000
|
||||
vcntmbh 1 2208400000000000,0000000000000009 => 0
|
||||
vcntmbh 1 0000000000000009,ffff000180000001 => 400000000000000
|
||||
vcntmbh 1 ffff000180000001,0000000000000000 => 400000000000000
|
||||
vcntmbh 1 0000000000000000,8000000000000000 => 200000000000000
|
||||
vcntmbh 1 8000000000000000,7f800000ff800000 => 400000000000000
|
||||
|
||||
vcntmbw 0 7f800000ff800000,ff8000007f800000 => 800000000000000
|
||||
vcntmbw 0 ff8000007f800000,ff7ffffe7f7ffffe => 800000000000000
|
||||
vcntmbw 0 ff7ffffe7f7ffffe,0080000e8080000e => 800000000000000
|
||||
vcntmbw 0 0080000e8080000e,0180055e0180077e => c00000000000000
|
||||
vcntmbw 0 0180055e0180077e,0000111e8000222e => c00000000000000
|
||||
vcntmbw 0 0000111e8000222e,7ff0000000000000 => c00000000000000
|
||||
vcntmbw 0 7ff0000000000000,fff0000000000000 => c00000000000000
|
||||
vcntmbw 0 fff0000000000000,2208400000000000 => c00000000000000
|
||||
vcntmbw 0 2208400000000000,0000000000000009 => 1000000000000000
|
||||
vcntmbw 0 0000000000000009,ffff000180000001 => 800000000000000
|
||||
vcntmbw 0 ffff000180000001,0000000000000000 => 800000000000000
|
||||
vcntmbw 0 0000000000000000,8000000000000000 => c00000000000000
|
||||
vcntmbw 0 8000000000000000,7f800000ff800000 => 800000000000000
|
||||
|
||||
vcntmbw 1 7f800000ff800000,ff8000007f800000 => 800000000000000
|
||||
vcntmbw 1 ff8000007f800000,ff7ffffe7f7ffffe => 800000000000000
|
||||
vcntmbw 1 ff7ffffe7f7ffffe,0080000e8080000e => 800000000000000
|
||||
vcntmbw 1 0080000e8080000e,0180055e0180077e => 400000000000000
|
||||
vcntmbw 1 0180055e0180077e,0000111e8000222e => 400000000000000
|
||||
vcntmbw 1 0000111e8000222e,7ff0000000000000 => 400000000000000
|
||||
vcntmbw 1 7ff0000000000000,fff0000000000000 => 400000000000000
|
||||
vcntmbw 1 fff0000000000000,2208400000000000 => 400000000000000
|
||||
vcntmbw 1 2208400000000000,0000000000000009 => 0
|
||||
vcntmbw 1 0000000000000009,ffff000180000001 => 800000000000000
|
||||
vcntmbw 1 ffff000180000001,0000000000000000 => 800000000000000
|
||||
vcntmbw 1 0000000000000000,8000000000000000 => 400000000000000
|
||||
vcntmbw 1 8000000000000000,7f800000ff800000 => 800000000000000
|
||||
|
||||
vextractbm 7f800000ff800000,ff8000007f800000 => c44c
|
||||
vextractbm ff8000007f800000,ff7ffffe7f7ffffe => b3c4
|
||||
vextractbm ff7ffffe7f7ffffe,0080000e8080000e => 4cb3
|
||||
vextractbm 0080000e8080000e,0180055e0180077e => 444c
|
||||
vextractbm 0180055e0180077e,0000111e8000222e => 844
|
||||
vextractbm 0000111e8000222e,7ff0000000000000 => 4008
|
||||
vextractbm 7ff0000000000000,fff0000000000000 => c040
|
||||
vextractbm fff0000000000000,2208400000000000 => c0
|
||||
vextractbm 2208400000000000,0000000000000009 => 0
|
||||
vextractbm 0000000000000009,ffff000180000001 => c800
|
||||
vextractbm ffff000180000001,0000000000000000 => c8
|
||||
vextractbm 0000000000000000,8000000000000000 => 8000
|
||||
vextractbm 8000000000000000,7f800000ff800000 => 4c80
|
||||
|
||||
vextractdm 7f800000ff800000,ff8000007f800000 => 2
|
||||
vextractdm ff8000007f800000,ff7ffffe7f7ffffe => 3
|
||||
vextractdm ff7ffffe7f7ffffe,0080000e8080000e => 1
|
||||
vextractdm 0080000e8080000e,0180055e0180077e => 0
|
||||
vextractdm 0180055e0180077e,0000111e8000222e => 0
|
||||
vextractdm 0000111e8000222e,7ff0000000000000 => 0
|
||||
vextractdm 7ff0000000000000,fff0000000000000 => 2
|
||||
vextractdm fff0000000000000,2208400000000000 => 1
|
||||
vextractdm 2208400000000000,0000000000000009 => 0
|
||||
vextractdm 0000000000000009,ffff000180000001 => 2
|
||||
vextractdm ffff000180000001,0000000000000000 => 1
|
||||
vextractdm 0000000000000000,8000000000000000 => 2
|
||||
vextractdm 8000000000000000,7f800000ff800000 => 1
|
||||
|
||||
vextracthm 7f800000ff800000,ff8000007f800000 => 82
|
||||
vextracthm ff8000007f800000,ff7ffffe7f7ffffe => d8
|
||||
vextracthm ff7ffffe7f7ffffe,0080000e8080000e => 2d
|
||||
vextracthm 0080000e8080000e,0180055e0180077e => 2
|
||||
vextracthm 0180055e0180077e,0000111e8000222e => 20
|
||||
vextracthm 0000111e8000222e,7ff0000000000000 => 2
|
||||
vextracthm 7ff0000000000000,fff0000000000000 => 80
|
||||
vextracthm fff0000000000000,2208400000000000 => 8
|
||||
vextracthm 2208400000000000,0000000000000009 => 0
|
||||
vextracthm 0000000000000009,ffff000180000001 => a0
|
||||
vextracthm ffff000180000001,0000000000000000 => a
|
||||
vextracthm 0000000000000000,8000000000000000 => 80
|
||||
vextracthm 8000000000000000,7f800000ff800000 => 28
|
||||
|
||||
vextractqm 7f800000ff800000,ff8000007f800000 => 1
|
||||
vextractqm ff8000007f800000,ff7ffffe7f7ffffe => 1
|
||||
vextractqm ff7ffffe7f7ffffe,0080000e8080000e => 0
|
||||
vextractqm 0080000e8080000e,0180055e0180077e => 0
|
||||
vextractqm 0180055e0180077e,0000111e8000222e => 0
|
||||
vextractqm 0000111e8000222e,7ff0000000000000 => 0
|
||||
vextractqm 7ff0000000000000,fff0000000000000 => 1
|
||||
vextractqm fff0000000000000,2208400000000000 => 0
|
||||
vextractqm 2208400000000000,0000000000000009 => 0
|
||||
vextractqm 0000000000000009,ffff000180000001 => 1
|
||||
vextractqm ffff000180000001,0000000000000000 => 0
|
||||
vextractqm 0000000000000000,8000000000000000 => 1
|
||||
vextractqm 8000000000000000,7f800000ff800000 => 0
|
||||
|
||||
vextractwm 7f800000ff800000,ff8000007f800000 => 9
|
||||
vextractwm ff8000007f800000,ff7ffffe7f7ffffe => a
|
||||
vextractwm ff7ffffe7f7ffffe,0080000e8080000e => 6
|
||||
vextractwm 0080000e8080000e,0180055e0180077e => 1
|
||||
vextractwm 0180055e0180077e,0000111e8000222e => 4
|
||||
vextractwm 0000111e8000222e,7ff0000000000000 => 1
|
||||
vextractwm 7ff0000000000000,fff0000000000000 => 8
|
||||
vextractwm fff0000000000000,2208400000000000 => 2
|
||||
vextractwm 2208400000000000,0000000000000009 => 0
|
||||
vextractwm 0000000000000009,ffff000180000001 => c
|
||||
vextractwm ffff000180000001,0000000000000000 => 3
|
||||
vextractwm 0000000000000000,8000000000000000 => 8
|
||||
vextractwm 8000000000000000,7f800000ff800000 => 6
|
||||
|
||||
vgnb 2 7f800000ff800000,ff8000007f800000 => f80078007800f800
|
||||
vgnb 2 ff8000007f800000,ff7ffffe7f7ffffe => f7ff77fff8007800
|
||||
vgnb 2 ff7ffffe7f7ffffe,0080000e8080000e => 8038803f7ff77ff
|
||||
@ -605,4 +787,4 @@ vgnb 7 ffff000180000001,0000000000000000 => 30000000000000
|
||||
vgnb 7 0000000000000000,8000000000000000 => 8000000000000000
|
||||
vgnb 7 8000000000000000,7f800000ff800000 => 4400000000000000
|
||||
|
||||
All done. Tested 160 different instruction groups
|
||||
All done. Tested 173 different instruction groups
|
||||
|
||||
@ -435,6 +435,45 @@ static void test_xsmincqp (void) {
|
||||
__asm__ __volatile__ ("xsmincqp %0, %1, %2"
|
||||
: "=v" (vrt) : "v" (vra), "v" (vrb) );
|
||||
}
|
||||
static void test_mtvsrbm (void) {
|
||||
__asm__ __volatile__ ("mtvsrbm %0, %1" : "=v" (vrt) : "r" (rb) );
|
||||
}
|
||||
static void test_mtvsrhm (void) {
|
||||
__asm__ __volatile__ ("mtvsrhm %0, %1" : "=v" (vrt) : "r" (rb) );
|
||||
}
|
||||
static void test_mtvsrwm (void) {
|
||||
__asm__ __volatile__ ("mtvsrwm %0, %1" : "=v" (vrt) : "r" (rb) );
|
||||
}
|
||||
static void test_mtvsrdm (void) {
|
||||
__asm__ __volatile__ ("mtvsrdm %0, %1" : "=v" (vrt) : "r" (rb) );
|
||||
}
|
||||
static void test_mtvsrqm (void) {
|
||||
__asm__ __volatile__ ("mtvsrqm %0, %1" : "=v" (vrt) : "r" (rb) );
|
||||
}
|
||||
static void test_mtvsrbmi_0 (void) {
|
||||
__asm__ __volatile__ ("mtvsrbmi %0, 0" : "=v" (vrt) );
|
||||
}
|
||||
static void test_mtvsrbmi_3 (void) {
|
||||
__asm__ __volatile__ ("mtvsrbmi %0, 3" : "=v" (vrt) );
|
||||
}
|
||||
static void test_mtvsrbmi_7 (void) {
|
||||
__asm__ __volatile__ ("mtvsrbmi %0, 7" : "=v" (vrt) );
|
||||
}
|
||||
static void test_vexpandbm (void) {
|
||||
__asm__ __volatile__ ("vexpandbm %0, %1 " : "=v" (vrt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vexpandhm (void) {
|
||||
__asm__ __volatile__ ("vexpandhm %0, %1 " : "=v" (vrt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vexpandwm (void) {
|
||||
__asm__ __volatile__ ("vexpandwm %0, %1 " : "=v" (vrt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vexpanddm (void) {
|
||||
__asm__ __volatile__ ("vexpanddm %0, %1 " : "=v" (vrt) : "v" (vrb) );
|
||||
}
|
||||
static void test_vexpandqm (void) {
|
||||
__asm__ __volatile__ ("vexpandqm %0, %1 " : "=v" (vrt) : "v" (vrb) );
|
||||
}
|
||||
|
||||
static test_list_t testgroup_generic[] = {
|
||||
{ &test_dcffixqq, "dcffixqq", "FRTp,VRB"}, /* bcs */
|
||||
@ -446,6 +485,14 @@ static test_list_t testgroup_generic[] = {
|
||||
{ &test_dotted_vstribr, "vstribr.", "VRT,VRB"}, /* bcs */
|
||||
{ &test_dotted_vstrihl, "vstrihl.", "VRT,VRB"}, /* bcs */
|
||||
{ &test_dotted_vstrihr, "vstrihr.", "VRT,VRB"}, /* bcs */
|
||||
{ &test_mtvsrbmi_0, "mtvsrbmi 0", "VRT,bm"}, /* bcwp */
|
||||
{ &test_mtvsrbmi_3, "mtvsrbmi 3", "VRT,bm"}, /* bcwp */
|
||||
{ &test_mtvsrbmi_7, "mtvsrbmi 7", "VRT,bm"}, /* bcwp */
|
||||
{ &test_mtvsrbm, "mtvsrbm", "VRT,RB"}, /* bcs */
|
||||
{ &test_mtvsrdm, "mtvsrdm", "VRT,RB"}, /* bcs */
|
||||
{ &test_mtvsrhm, "mtvsrhm", "VRT,RB"}, /* bcs */
|
||||
{ &test_mtvsrqm, "mtvsrqm", "VRT,RB"}, /* bcs */
|
||||
{ &test_mtvsrwm, "mtvsrwm", "VRT,RB"}, /* bcs */
|
||||
{ &test_vcfuged, "vcfuged", "VRT,VRA,VRB"}, /* bcs */
|
||||
{ &test_vclrlb, "vclrlb", "VRT,VRA,RB"}, /* bcs */
|
||||
{ &test_vclrrb, "vclrrb", "VRT,VRA,RB"}, /* bcs */
|
||||
@ -466,6 +513,11 @@ static test_list_t testgroup_generic[] = {
|
||||
{ &test_vdivud, "vdivud", "VRT,VRA,VRB"}, /* bcs */
|
||||
{ &test_vdivuq, "vdivuq", "VRT,VRA,VRB"}, /* bcs */
|
||||
{ &test_vdivuw, "vdivuw", "VRT,VRA,VRB"}, /* bcs */
|
||||
{ &test_vexpandbm, "vexpandbm", "VRT,VRB"}, /* bcs */
|
||||
{ &test_vexpanddm, "vexpanddm", "VRT,VRB"}, /* bcs */
|
||||
{ &test_vexpandhm, "vexpandhm", "VRT,VRB"}, /* bcs */
|
||||
{ &test_vexpandqm, "vexpandqm", "VRT,VRB"}, /* bcs */
|
||||
{ &test_vexpandwm, "vexpandwm", "VRT,VRB"}, /* bcs */
|
||||
{ &test_vextddvlx, "vextddvlx", "VRT,VRA,VRB,RC"}, /* bcs */
|
||||
{ &test_vextddvrx, "vextddvrx", "VRT,VRA,VRB,RC"}, /* bcs */
|
||||
{ &test_vextdubvlx, "vextdubvlx", "VRT,VRA,VRB,RC"}, /* bcs */
|
||||
|
||||
@ -586,6 +586,42 @@ vstrihr. ffff000180000001,0000000000000000 => [00000020]6:[0010]
|
||||
vstrihr. 0000000000000000,8000000000000000 => [00000020]6:[0010] 0,0000000000000000
|
||||
vstrihr. 8000000000000000,7f800000ff800000 => [00000020]6:[0010] 0,0000000000000000
|
||||
|
||||
mtvsrbmi 0 => 0,0000000000000000
|
||||
|
||||
mtvsrbmi 3 => 0,000000000000ffff
|
||||
|
||||
mtvsrbmi 7 => 0,0000000000ffffff
|
||||
|
||||
mtvsrbm 0 => 0,0000000000000000
|
||||
mtvsrbm ffffffff => ffffffffffffffff,ffffffffffffffff
|
||||
mtvsrbm ffffffff55555555 => ff00ff00ff00ff,00ff00ff00ff00ff
|
||||
mtvsrbm 5555aaaaaaaa5555 => ff00ff00ff00ff,00ff00ff00ff00ff
|
||||
mtvsrbm aaaa00000000aaaa => ff00ff00ff00ff00,ff00ff00ff00ff00
|
||||
|
||||
mtvsrdm 0 => 0,0000000000000000
|
||||
mtvsrdm ffffffff => ffffffffffffffff,ffffffffffffffff
|
||||
mtvsrdm ffffffff55555555 => 0,ffffffffffffffff
|
||||
mtvsrdm 5555aaaaaaaa5555 => 0,ffffffffffffffff
|
||||
mtvsrdm aaaa00000000aaaa => ffffffffffffffff,0000000000000000
|
||||
|
||||
mtvsrhm 0 => 0,0000000000000000
|
||||
mtvsrhm ffffffff => ffffffffffffffff,ffffffffffffffff
|
||||
mtvsrhm ffffffff55555555 => ffff0000ffff,0000ffff0000ffff
|
||||
mtvsrhm 5555aaaaaaaa5555 => ffff0000ffff,0000ffff0000ffff
|
||||
mtvsrhm aaaa00000000aaaa => ffff0000ffff0000,ffff0000ffff0000
|
||||
|
||||
mtvsrqm 0 => 0,0000000000000000
|
||||
mtvsrqm ffffffff => ffffffffffffffff,ffffffffffffffff
|
||||
mtvsrqm ffffffff55555555 => ffffffffffffffff,ffffffffffffffff
|
||||
mtvsrqm 5555aaaaaaaa5555 => ffffffffffffffff,ffffffffffffffff
|
||||
mtvsrqm aaaa00000000aaaa => 0,0000000000000000
|
||||
|
||||
mtvsrwm 0 => 0,0000000000000000
|
||||
mtvsrwm ffffffff => ffffffffffffffff,ffffffffffffffff
|
||||
mtvsrwm ffffffff55555555 => ffffffff,00000000ffffffff
|
||||
mtvsrwm 5555aaaaaaaa5555 => ffffffff,00000000ffffffff
|
||||
mtvsrwm aaaa00000000aaaa => ffffffff00000000,ffffffff00000000
|
||||
|
||||
vcfuged 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => 1ffff,000000000001ffff
|
||||
vcfuged 7f800000ff800000,ff8000007f800000 ff8000007f800000,ff7ffffe7f7ffffe => 97f800001fc00000,000001000000ffff
|
||||
vcfuged 7f800000ff800000,ff8000007f800000 ff7ffffe7f7ffffe,0080000e8080000e => ff00000fe0000108,b3f800001fc00000
|
||||
@ -2508,6 +2544,76 @@ vdivuw 7f800000ff800000,ff8000007f800000 ff7ffffe7f7ffffe,0080000e8080000e =>
|
||||
vdivuw 7f800000ff800000,ff8000007f800000 0080000e8080000e,0180055e0180077e => aa00000054,000000fe00000001
|
||||
vdivuw 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => eed3000000000,00000054000000aa
|
||||
|
||||
vexpandbm 7f800000ff800000,ff8000007f800000 => ffff000000ff0000,00ff0000ffff0000
|
||||
vexpandbm ff8000007f800000,ff7ffffe7f7ffffe => ff00ffff0000ffff,ffff000000ff0000
|
||||
vexpandbm ff7ffffe7f7ffffe,0080000e8080000e => ff0000ffff0000,ff00ffff0000ffff
|
||||
vexpandbm 0080000e8080000e,0180055e0180077e => ff000000ff0000,00ff0000ffff0000
|
||||
vexpandbm 0180055e0180077e,0000111e8000222e => ff000000,00ff000000ff0000
|
||||
vexpandbm 0000111e8000222e,7ff0000000000000 => ff000000000000,00000000ff000000
|
||||
vexpandbm 7ff0000000000000,fff0000000000000 => ffff000000000000,00ff000000000000
|
||||
vexpandbm fff0000000000000,2208400000000000 => 0,ffff000000000000
|
||||
vexpandbm 2208400000000000,0000000000000009 => 0,0000000000000000
|
||||
vexpandbm 0000000000000009,ffff000180000001 => ffff0000ff000000,0000000000000000
|
||||
vexpandbm ffff000180000001,0000000000000000 => 0,ffff0000ff000000
|
||||
vexpandbm 0000000000000000,8000000000000000 => ff00000000000000,0000000000000000
|
||||
vexpandbm 8000000000000000,7f800000ff800000 => ff0000ffff0000,ff00000000000000
|
||||
|
||||
vexpanddm 7f800000ff800000,ff8000007f800000 => ffffffffffffffff,0000000000000000
|
||||
vexpanddm ff8000007f800000,ff7ffffe7f7ffffe => ffffffffffffffff,ffffffffffffffff
|
||||
vexpanddm ff7ffffe7f7ffffe,0080000e8080000e => 0,ffffffffffffffff
|
||||
vexpanddm 0080000e8080000e,0180055e0180077e => 0,0000000000000000
|
||||
vexpanddm 0180055e0180077e,0000111e8000222e => 0,0000000000000000
|
||||
vexpanddm 0000111e8000222e,7ff0000000000000 => 0,0000000000000000
|
||||
vexpanddm 7ff0000000000000,fff0000000000000 => ffffffffffffffff,0000000000000000
|
||||
vexpanddm fff0000000000000,2208400000000000 => 0,ffffffffffffffff
|
||||
vexpanddm 2208400000000000,0000000000000009 => 0,0000000000000000
|
||||
vexpanddm 0000000000000009,ffff000180000001 => ffffffffffffffff,0000000000000000
|
||||
vexpanddm ffff000180000001,0000000000000000 => 0,ffffffffffffffff
|
||||
vexpanddm 0000000000000000,8000000000000000 => ffffffffffffffff,0000000000000000
|
||||
vexpanddm 8000000000000000,7f800000ff800000 => 0,ffffffffffffffff
|
||||
|
||||
vexpandhm 7f800000ff800000,ff8000007f800000 => ffff000000000000,00000000ffff0000
|
||||
vexpandhm ff8000007f800000,ff7ffffe7f7ffffe => ffffffff0000ffff,ffff000000000000
|
||||
vexpandhm ff7ffffe7f7ffffe,0080000e8080000e => ffff0000,ffffffff0000ffff
|
||||
vexpandhm 0080000e8080000e,0180055e0180077e => 0,00000000ffff0000
|
||||
vexpandhm 0180055e0180077e,0000111e8000222e => ffff0000,0000000000000000
|
||||
vexpandhm 0000111e8000222e,7ff0000000000000 => 0,00000000ffff0000
|
||||
vexpandhm 7ff0000000000000,fff0000000000000 => ffff000000000000,0000000000000000
|
||||
vexpandhm fff0000000000000,2208400000000000 => 0,ffff000000000000
|
||||
vexpandhm 2208400000000000,0000000000000009 => 0,0000000000000000
|
||||
vexpandhm 0000000000000009,ffff000180000001 => ffff0000ffff0000,0000000000000000
|
||||
vexpandhm ffff000180000001,0000000000000000 => 0,ffff0000ffff0000
|
||||
vexpandhm 0000000000000000,8000000000000000 => ffff000000000000,0000000000000000
|
||||
vexpandhm 8000000000000000,7f800000ff800000 => ffff0000,ffff000000000000
|
||||
|
||||
vexpandqm 7f800000ff800000,ff8000007f800000 => ffffffffffffffff,ffffffffffffffff
|
||||
vexpandqm ff8000007f800000,ff7ffffe7f7ffffe => ffffffffffffffff,ffffffffffffffff
|
||||
vexpandqm ff7ffffe7f7ffffe,0080000e8080000e => 0,0000000000000000
|
||||
vexpandqm 0080000e8080000e,0180055e0180077e => 0,0000000000000000
|
||||
vexpandqm 0180055e0180077e,0000111e8000222e => 0,0000000000000000
|
||||
vexpandqm 0000111e8000222e,7ff0000000000000 => 0,0000000000000000
|
||||
vexpandqm 7ff0000000000000,fff0000000000000 => ffffffffffffffff,ffffffffffffffff
|
||||
vexpandqm fff0000000000000,2208400000000000 => 0,0000000000000000
|
||||
vexpandqm 2208400000000000,0000000000000009 => 0,0000000000000000
|
||||
vexpandqm 0000000000000009,ffff000180000001 => ffffffffffffffff,ffffffffffffffff
|
||||
vexpandqm ffff000180000001,0000000000000000 => 0,0000000000000000
|
||||
vexpandqm 0000000000000000,8000000000000000 => ffffffffffffffff,ffffffffffffffff
|
||||
vexpandqm 8000000000000000,7f800000ff800000 => 0,0000000000000000
|
||||
|
||||
vexpandwm 7f800000ff800000,ff8000007f800000 => ffffffff00000000,00000000ffffffff
|
||||
vexpandwm ff8000007f800000,ff7ffffe7f7ffffe => ffffffff00000000,ffffffff00000000
|
||||
vexpandwm ff7ffffe7f7ffffe,0080000e8080000e => ffffffff,ffffffff00000000
|
||||
vexpandwm 0080000e8080000e,0180055e0180077e => 0,00000000ffffffff
|
||||
vexpandwm 0180055e0180077e,0000111e8000222e => ffffffff,0000000000000000
|
||||
vexpandwm 0000111e8000222e,7ff0000000000000 => 0,00000000ffffffff
|
||||
vexpandwm 7ff0000000000000,fff0000000000000 => ffffffff00000000,0000000000000000
|
||||
vexpandwm fff0000000000000,2208400000000000 => 0,ffffffff00000000
|
||||
vexpandwm 2208400000000000,0000000000000009 => 0,0000000000000000
|
||||
vexpandwm 0000000000000009,ffff000180000001 => ffffffffffffffff,0000000000000000
|
||||
vexpandwm ffff000180000001,0000000000000000 => 0,ffffffffffffffff
|
||||
vexpandwm 0000000000000000,8000000000000000 => ffffffff00000000,0000000000000000
|
||||
vexpandwm 8000000000000000,7f800000ff800000 => ffffffff,ffffffff00000000
|
||||
|
||||
vextddvlx 0 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => ff8000007f800000,0000000000000000
|
||||
vextddvlx 4 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => 7f8000007f800000,0000000000000000
|
||||
vextddvlx 8 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => 7f800000ff800000,0000000000000000
|
||||
@ -12013,4 +12119,4 @@ xsmincqp 8000000000000000,7f800000ff800000 ffff000180000001,0000000000000000 =>
|
||||
xsmincqp 8000000000000000,7f800000ff800000 0000000000000000,8000000000000000 => 8000000000000000,0000000000000000
|
||||
xsmincqp 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => 7f800000ff800000,8000000000000000
|
||||
|
||||
All done. Tested 97 different instruction groups
|
||||
All done. Tested 110 different instruction groups
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user