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
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
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 */
{ &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 */
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
vgnb 7 0000000000000000,8000000000000000 => 8000000000000000
vgnb 7 8000000000000000,7f800000ff800000 => 4400000000000000
-All done. Tested 160 different instruction groups
+All done. Tested 173 different instruction groups
__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 */
{ &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 */
{ &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 */
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
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
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