VSX Mask Manipulation operation tests.

This commit is contained in:
Carl Love 2020-11-16 19:53:22 -06:00
parent 82777ee408
commit 3c31707cd3
5 changed files with 405 additions and 2 deletions

11
NEWS
View File

@ -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

View File

@ -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 */

View File

@ -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

View File

@ -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 */

View File

@ -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