__asm__ __volatile__ ("vpextd %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
}
+static void test_vclrlb (void) {
+ __asm__ __volatile__ ("vclrlb %0, %1, %2"
+ : "=v" (vrt) : "v" (vra), "r" (rb) );
+}
+static void test_vclrrb (void) {
+ __asm__ __volatile__ ("vclrrb %0, %1, %2"
+ : "=v" (vrt) : "v" (vra), "r" (rb) );
+}
+static void test_vstribl (void) {
+ __asm__ __volatile__ ("vstribl %0, %1 " : "=v" (vrt) : "v" (vrb) );
+}
+static void test_dotted_vstribl (void) {
+ SET_CR_ZERO;
+ __asm__ __volatile__ ("vstribl. %0, %1 " : "=v" (vrt) : "v" (vrb) );
+ GET_CR(current_cr); SET_CR_ZERO;
+}
+static void test_vstribr (void) {
+ __asm__ __volatile__ ("vstribr %0, %1 " : "=v" (vrt) : "v" (vrb) );
+}
+static void test_dotted_vstribr (void) {
+ SET_CR_ZERO;
+ __asm__ __volatile__ ("vstribr. %0, %1 " : "=v" (vrt) : "v" (vrb) );
+ GET_CR(current_cr); SET_CR_ZERO;
+}
+static void test_vstrihl (void) {
+ __asm__ __volatile__ ("vstrihl %0, %1 " : "=v" (vrt) : "v" (vrb) );
+}
+static void test_dotted_vstrihl (void) {
+ SET_CR_ZERO;
+ __asm__ __volatile__ ("vstrihl. %0, %1 " : "=v" (vrt) : "v" (vrb) );
+ GET_CR(current_cr); SET_CR_ZERO;
+}
+static void test_vstrihr (void) {
+ __asm__ __volatile__ ("vstrihr %0, %1 " : "=v" (vrt) : "v" (vrb) );
+}
+static void test_dotted_vstrihr (void) {
+ SET_CR_ZERO;
+ __asm__ __volatile__ ("vstrihr. %0, %1 " : "=v" (vrt) : "v" (vrb) );
+ GET_CR(current_cr); SET_CR_ZERO;
+}
static void test_xscmpeqqp (void) {
__asm__ __volatile__ ("xscmpeqqp %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
{ &test_dotted_vcmpequq, "vcmpequq.", "VRT,VRA,VRB"}, /* bcs */
{ &test_dotted_vcmpgtsq, "vcmpgtsq.", "VRT,VRA,VRB"}, /* bcs */
{ &test_dotted_vcmpgtuq, "vcmpgtuq.", "VRT,VRA,VRB"}, /* bcs */
+ { &test_dotted_vstribl, "vstribl.", "VRT,VRB"}, /* bcs */
+ { &test_dotted_vstribr, "vstribr.", "VRT,VRB"}, /* bcs */
+ { &test_dotted_vstrihl, "vstrihl.", "VRT,VRB"}, /* bcs */
+ { &test_dotted_vstrihr, "vstrihr.", "VRT,VRB"}, /* bcs */
{ &test_vcfuged, "vcfuged", "VRT,VRA,VRB"}, /* bcs */
+ { &test_vclrlb, "vclrlb", "VRT,VRA,RB"}, /* bcs */
+ { &test_vclrrb, "vclrrb", "VRT,VRA,RB"}, /* bcs */
{ &test_vclzdm, "vclzdm", "VRT,VRA,VRB"}, /* bcs */
{ &test_vcmpequq, "vcmpequq", "VRT,VRA,VRB"}, /* bcs */
{ &test_vcmpgtsq, "vcmpgtsq", "VRT,VRA,VRB"}, /* bcs */
{ &test_vsrdbi_0, "vsrdbi 0", "VRT,VRA,VRB,SH"}, /* bcwp */
{ &test_vsrdbi_4, "vsrdbi 4", "VRT,VRA,VRB,SH"}, /* bcwp */
{ &test_vsrq, "vsrq", "VRT,VRA,VRB"}, /* bcs */
+ { &test_vstribl, "vstribl", "VRT,VRB"}, /* bcs */
+ { &test_vstribr, "vstribr", "VRT,VRB"}, /* bcs */
+ { &test_vstrihl, "vstrihl", "VRT,VRB"}, /* bcs */
+ { &test_vstrihr, "vstrihr", "VRT,VRB"}, /* bcs */
{ &test_xscmpeqqp, "xscmpeqqp", "VRT,VRA,VRB"}, /* bcs */
{ &test_xscmpgeqp, "xscmpgeqp", "VRT,VRA,VRB"}, /* bcs */
{ &test_xscmpgtqp, "xscmpgtqp", "VRT,VRA,VRB"}, /* bcs */
vcmpgtuq. 8000000000000000,7f800000ff800000 0000000000000000,8000000000000000 => [00000000]6:[0000] 0,0000000000000000
vcmpgtuq. 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => [00000000]6:[0000] 0,0000000000000000
+vstribl. 7f800000ff800000,ff8000007f800000 => [00000020]6:[0010] ff80000000000000,0000000000000000
+vstribl. ff8000007f800000,ff7ffffe7f7ffffe => [00000020]6:[0010] ff7ffffe7f7ffffe,ff80000000000000
+vstribl. ff7ffffe7f7ffffe,0080000e8080000e => [00000020]6:[0010] 0,0000000000000000
+vstribl. 0080000e8080000e,0180055e0180077e => [00000020]6:[0010] 180055e0180077e,0000000000000000
+vstribl. 0180055e0180077e,0000111e8000222e => [00000020]6:[0010] 0,0000000000000000
+vstribl. 0000111e8000222e,7ff0000000000000 => [00000020]6:[0010] 7ff0000000000000,0000000000000000
+vstribl. 7ff0000000000000,fff0000000000000 => [00000020]6:[0010] fff0000000000000,0000000000000000
+vstribl. fff0000000000000,2208400000000000 => [00000020]6:[0010] 2208400000000000,0000000000000000
+vstribl. 2208400000000000,0000000000000009 => [00000020]6:[0010] 0,0000000000000000
+vstribl. 0000000000000009,ffff000180000001 => [00000020]6:[0010] ffff000000000000,0000000000000000
+vstribl. ffff000180000001,0000000000000000 => [00000020]6:[0010] 0,0000000000000000
+vstribl. 0000000000000000,8000000000000000 => [00000020]6:[0010] 8000000000000000,0000000000000000
+vstribl. 8000000000000000,7f800000ff800000 => [00000020]6:[0010] 7f80000000000000,0000000000000000
+
+vstribr. 7f800000ff800000,ff8000007f800000 => [00000020]6:[0010] 0,0000000000000000
+vstribr. ff8000007f800000,ff7ffffe7f7ffffe => [00000020]6:[0010] 0,0000000000000000
+vstribr. ff7ffffe7f7ffffe,0080000e8080000e => [00000020]6:[0010] e,ff7ffffe7f7ffffe
+vstribr. 0080000e8080000e,0180055e0180077e => [00000020]6:[0010] 0,000000000000000e
+vstribr. 0180055e0180077e,0000111e8000222e => [00000020]6:[0010] 222e,0180055e0180077e
+vstribr. 0000111e8000222e,7ff0000000000000 => [00000020]6:[0010] 0,000000000000222e
+vstribr. 7ff0000000000000,fff0000000000000 => [00000020]6:[0010] 0,0000000000000000
+vstribr. fff0000000000000,2208400000000000 => [00000020]6:[0010] 0,0000000000000000
+vstribr. 2208400000000000,0000000000000009 => [00000020]6:[0010] 0,0000000000000000
+vstribr. 0000000000000009,ffff000180000001 => [00000020]6:[0010] 0,0000000000000009
+vstribr. ffff000180000001,0000000000000000 => [00000020]6:[0010] 0,0000000000000001
+vstribr. 0000000000000000,8000000000000000 => [00000020]6:[0010] 0,0000000000000000
+vstribr. 8000000000000000,7f800000ff800000 => [00000020]6:[0010] 0,0000000000000000
+
+vstrihl. 7f800000ff800000,ff8000007f800000 => [00000020]6:[0010] ff80000000000000,0000000000000000
+vstrihl. ff8000007f800000,ff7ffffe7f7ffffe => [00000020]6:[0010] ff7ffffe7f7ffffe,ff80000000000000
+vstrihl. ff7ffffe7f7ffffe,0080000e8080000e => [00000000]6:[0000] 80000e8080000e,ff7ffffe7f7ffffe
+vstrihl. 0080000e8080000e,0180055e0180077e => [00000000]6:[0000] 180055e0180077e,0080000e8080000e
+vstrihl. 0180055e0180077e,0000111e8000222e => [00000020]6:[0010] 0,0000000000000000
+vstrihl. 0000111e8000222e,7ff0000000000000 => [00000020]6:[0010] 7ff0000000000000,0000000000000000
+vstrihl. 7ff0000000000000,fff0000000000000 => [00000020]6:[0010] fff0000000000000,0000000000000000
+vstrihl. fff0000000000000,2208400000000000 => [00000020]6:[0010] 2208400000000000,0000000000000000
+vstrihl. 2208400000000000,0000000000000009 => [00000020]6:[0010] 0,0000000000000000
+vstrihl. 0000000000000009,ffff000180000001 => [00000020]6:[0010] ffff000180000001,0000000000000000
+vstrihl. ffff000180000001,0000000000000000 => [00000020]6:[0010] 0,0000000000000000
+vstrihl. 0000000000000000,8000000000000000 => [00000020]6:[0010] 8000000000000000,0000000000000000
+vstrihl. 8000000000000000,7f800000ff800000 => [00000020]6:[0010] 7f80000000000000,0000000000000000
+
+vstrihr. 7f800000ff800000,ff8000007f800000 => [00000020]6:[0010] 0,0000000000000000
+vstrihr. ff8000007f800000,ff7ffffe7f7ffffe => [00000020]6:[0010] 0,0000000000000000
+vstrihr. ff7ffffe7f7ffffe,0080000e8080000e => [00000000]6:[0000] 80000e8080000e,ff7ffffe7f7ffffe
+vstrihr. 0080000e8080000e,0180055e0180077e => [00000000]6:[0000] 180055e0180077e,0080000e8080000e
+vstrihr. 0180055e0180077e,0000111e8000222e => [00000020]6:[0010] 111e8000222e,0180055e0180077e
+vstrihr. 0000111e8000222e,7ff0000000000000 => [00000020]6:[0010] 0,0000111e8000222e
+vstrihr. 7ff0000000000000,fff0000000000000 => [00000020]6:[0010] 0,0000000000000000
+vstrihr. fff0000000000000,2208400000000000 => [00000020]6:[0010] 0,0000000000000000
+vstrihr. 2208400000000000,0000000000000009 => [00000020]6:[0010] 0,0000000000000000
+vstrihr. 0000000000000009,ffff000180000001 => [00000020]6:[0010] 0,0000000000000009
+vstrihr. ffff000180000001,0000000000000000 => [00000020]6:[0010] 0,ffff000180000001
+vstrihr. 0000000000000000,8000000000000000 => [00000020]6:[0010] 0,0000000000000000
+vstrihr. 8000000000000000,7f800000ff800000 => [00000020]6:[0010] 0,0000000000000000
+
vcfuged 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => 1ffff,000000000001ffff
vcfuged 7f800000ff800000,ff8000007f800000 ff8000007f800000,ff7ffffe7f7ffffe => 97f800001fc00000,000001000000ffff
vcfuged 7f800000ff800000,ff8000007f800000 ff7ffffe7f7ffffe,0080000e8080000e => ff00000fe0000108,b3f800001fc00000
vcfuged 8000000000000000,7f800000ff800000 0000000000000000,8000000000000000 => ff000001ff000000,8000000000000000
vcfuged 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => 1ffff,0000000000000001
+vclrlb 0 7f800000ff800000,ff8000007f800000 => 0,0000000000000000
+vclrlb 2 7f800000ff800000,ff8000007f800000 => 0,0000000000000000
+vclrlb 4 7f800000ff800000,ff8000007f800000 => 0,00000000ff800000
+vclrlb 6 7f800000ff800000,ff8000007f800000 => 0,00000000ff800000
+vclrlb 8 7f800000ff800000,ff8000007f800000 => 0,7f800000ff800000
+vclrlb a 7f800000ff800000,ff8000007f800000 => 0,7f800000ff800000
+vclrlb 0 ff8000007f800000,ff7ffffe7f7ffffe => 0,0000000000000000
+vclrlb 2 ff8000007f800000,ff7ffffe7f7ffffe => 0,0000000000000000
+vclrlb 4 ff8000007f800000,ff7ffffe7f7ffffe => 0,000000007f800000
+vclrlb 6 ff8000007f800000,ff7ffffe7f7ffffe => 0,000000007f800000
+vclrlb 8 ff8000007f800000,ff7ffffe7f7ffffe => 0,ff8000007f800000
+vclrlb a ff8000007f800000,ff7ffffe7f7ffffe => fffe,ff8000007f800000
+vclrlb 0 ff7ffffe7f7ffffe,0080000e8080000e => 0,0000000000000000
+vclrlb 2 ff7ffffe7f7ffffe,0080000e8080000e => 0,000000000000fffe
+vclrlb 4 ff7ffffe7f7ffffe,0080000e8080000e => 0,000000007f7ffffe
+vclrlb 6 ff7ffffe7f7ffffe,0080000e8080000e => 0,0000fffe7f7ffffe
+vclrlb 8 ff7ffffe7f7ffffe,0080000e8080000e => 0,ff7ffffe7f7ffffe
+vclrlb a ff7ffffe7f7ffffe,0080000e8080000e => e,ff7ffffe7f7ffffe
+vclrlb 0 0080000e8080000e,0180055e0180077e => 0,0000000000000000
+vclrlb 2 0080000e8080000e,0180055e0180077e => 0,000000000000000e
+vclrlb 4 0080000e8080000e,0180055e0180077e => 0,000000008080000e
+vclrlb 6 0080000e8080000e,0180055e0180077e => 0,0000000e8080000e
+vclrlb 8 0080000e8080000e,0180055e0180077e => 0,0080000e8080000e
+vclrlb a 0080000e8080000e,0180055e0180077e => 77e,0080000e8080000e
+
+vclrrb 0 7f800000ff800000,ff8000007f800000 => 0,0000000000000000
+vclrrb 2 7f800000ff800000,ff8000007f800000 => ff80000000000000,0000000000000000
+vclrrb 4 7f800000ff800000,ff8000007f800000 => ff80000000000000,0000000000000000
+vclrrb 6 7f800000ff800000,ff8000007f800000 => ff8000007f800000,0000000000000000
+vclrrb 8 7f800000ff800000,ff8000007f800000 => ff8000007f800000,0000000000000000
+vclrrb a 7f800000ff800000,ff8000007f800000 => ff8000007f800000,7f80000000000000
+vclrrb 0 ff8000007f800000,ff7ffffe7f7ffffe => 0,0000000000000000
+vclrrb 2 ff8000007f800000,ff7ffffe7f7ffffe => ff7f000000000000,0000000000000000
+vclrrb 4 ff8000007f800000,ff7ffffe7f7ffffe => ff7ffffe00000000,0000000000000000
+vclrrb 6 ff8000007f800000,ff7ffffe7f7ffffe => ff7ffffe7f7f0000,0000000000000000
+vclrrb 8 ff8000007f800000,ff7ffffe7f7ffffe => ff7ffffe7f7ffffe,0000000000000000
+vclrrb a ff8000007f800000,ff7ffffe7f7ffffe => ff7ffffe7f7ffffe,ff80000000000000
+vclrrb 0 ff7ffffe7f7ffffe,0080000e8080000e => 0,0000000000000000
+vclrrb 2 ff7ffffe7f7ffffe,0080000e8080000e => 80000000000000,0000000000000000
+vclrrb 4 ff7ffffe7f7ffffe,0080000e8080000e => 80000e00000000,0000000000000000
+vclrrb 6 ff7ffffe7f7ffffe,0080000e8080000e => 80000e80800000,0000000000000000
+vclrrb 8 ff7ffffe7f7ffffe,0080000e8080000e => 80000e8080000e,0000000000000000
+vclrrb a ff7ffffe7f7ffffe,0080000e8080000e => 80000e8080000e,ff7f000000000000
+vclrrb 0 0080000e8080000e,0180055e0180077e => 0,0000000000000000
+vclrrb 2 0080000e8080000e,0180055e0180077e => 180000000000000,0000000000000000
+vclrrb 4 0080000e8080000e,0180055e0180077e => 180055e00000000,0000000000000000
+vclrrb 6 0080000e8080000e,0180055e0180077e => 180055e01800000,0000000000000000
+vclrrb 8 0080000e8080000e,0180055e0180077e => 180055e0180077e,0000000000000000
+vclrrb a 0080000e8080000e,0180055e0180077e => 180055e0180077e,0080000000000000
+
vclzdm 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => 0,0000000000000000
vclzdm 7f800000ff800000,ff8000007f800000 ff8000007f800000,ff7ffffe7f7ffffe => 0,0000000000000001
vclzdm 7f800000ff800000,ff8000007f800000 ff7ffffe7f7ffffe,0080000e8080000e => 0,0000000000000001
vsrq 8000000000000000,7f800000ff800000 0000000000000000,8000000000000000 => 7f800000ff800000,8000000000000000
vsrq 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => 7f800000ff800000,8000000000000000
+vstribl 7f800000ff800000,ff8000007f800000 => ff80000000000000,0000000000000000
+vstribl ff8000007f800000,ff7ffffe7f7ffffe => ff7ffffe7f7ffffe,ff80000000000000
+vstribl ff7ffffe7f7ffffe,0080000e8080000e => 0,0000000000000000
+vstribl 0080000e8080000e,0180055e0180077e => 180055e0180077e,0000000000000000
+vstribl 0180055e0180077e,0000111e8000222e => 0,0000000000000000
+vstribl 0000111e8000222e,7ff0000000000000 => 7ff0000000000000,0000000000000000
+vstribl 7ff0000000000000,fff0000000000000 => fff0000000000000,0000000000000000
+vstribl fff0000000000000,2208400000000000 => 2208400000000000,0000000000000000
+vstribl 2208400000000000,0000000000000009 => 0,0000000000000000
+vstribl 0000000000000009,ffff000180000001 => ffff000000000000,0000000000000000
+vstribl ffff000180000001,0000000000000000 => 0,0000000000000000
+vstribl 0000000000000000,8000000000000000 => 8000000000000000,0000000000000000
+vstribl 8000000000000000,7f800000ff800000 => 7f80000000000000,0000000000000000
+
+vstribr 7f800000ff800000,ff8000007f800000 => 0,0000000000000000
+vstribr ff8000007f800000,ff7ffffe7f7ffffe => 0,0000000000000000
+vstribr ff7ffffe7f7ffffe,0080000e8080000e => e,ff7ffffe7f7ffffe
+vstribr 0080000e8080000e,0180055e0180077e => 0,000000000000000e
+vstribr 0180055e0180077e,0000111e8000222e => 222e,0180055e0180077e
+vstribr 0000111e8000222e,7ff0000000000000 => 0,000000000000222e
+vstribr 7ff0000000000000,fff0000000000000 => 0,0000000000000000
+vstribr fff0000000000000,2208400000000000 => 0,0000000000000000
+vstribr 2208400000000000,0000000000000009 => 0,0000000000000000
+vstribr 0000000000000009,ffff000180000001 => 0,0000000000000009
+vstribr ffff000180000001,0000000000000000 => 0,0000000000000001
+vstribr 0000000000000000,8000000000000000 => 0,0000000000000000
+vstribr 8000000000000000,7f800000ff800000 => 0,0000000000000000
+
+vstrihl 7f800000ff800000,ff8000007f800000 => ff80000000000000,0000000000000000
+vstrihl ff8000007f800000,ff7ffffe7f7ffffe => ff7ffffe7f7ffffe,ff80000000000000
+vstrihl ff7ffffe7f7ffffe,0080000e8080000e => 80000e8080000e,ff7ffffe7f7ffffe
+vstrihl 0080000e8080000e,0180055e0180077e => 180055e0180077e,0080000e8080000e
+vstrihl 0180055e0180077e,0000111e8000222e => 0,0000000000000000
+vstrihl 0000111e8000222e,7ff0000000000000 => 7ff0000000000000,0000000000000000
+vstrihl 7ff0000000000000,fff0000000000000 => fff0000000000000,0000000000000000
+vstrihl fff0000000000000,2208400000000000 => 2208400000000000,0000000000000000
+vstrihl 2208400000000000,0000000000000009 => 0,0000000000000000
+vstrihl 0000000000000009,ffff000180000001 => ffff000180000001,0000000000000000
+vstrihl ffff000180000001,0000000000000000 => 0,0000000000000000
+vstrihl 0000000000000000,8000000000000000 => 8000000000000000,0000000000000000
+vstrihl 8000000000000000,7f800000ff800000 => 7f80000000000000,0000000000000000
+
+vstrihr 7f800000ff800000,ff8000007f800000 => 0,0000000000000000
+vstrihr ff8000007f800000,ff7ffffe7f7ffffe => 0,0000000000000000
+vstrihr ff7ffffe7f7ffffe,0080000e8080000e => 80000e8080000e,ff7ffffe7f7ffffe
+vstrihr 0080000e8080000e,0180055e0180077e => 180055e0180077e,0080000e8080000e
+vstrihr 0180055e0180077e,0000111e8000222e => 111e8000222e,0180055e0180077e
+vstrihr 0000111e8000222e,7ff0000000000000 => 0,0000111e8000222e
+vstrihr 7ff0000000000000,fff0000000000000 => 0,0000000000000000
+vstrihr fff0000000000000,2208400000000000 => 0,0000000000000000
+vstrihr 2208400000000000,0000000000000009 => 0,0000000000000000
+vstrihr 0000000000000009,ffff000180000001 => 0,0000000000000009
+vstrihr ffff000180000001,0000000000000000 => 0,ffff000180000001
+vstrihr 0000000000000000,8000000000000000 => 0,0000000000000000
+vstrihr 8000000000000000,7f800000ff800000 => 0,0000000000000000
+
xscmpeqqp 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => ffffffffffffffff,ffffffffffffffff
xscmpeqqp 7f800000ff800000,ff8000007f800000 ff8000007f800000,ff7ffffe7f7ffffe => 0,0000000000000000
xscmpeqqp 7f800000ff800000,ff8000007f800000 ff7ffffe7f7ffffe,0080000e8080000e => 0,0000000000000000
xsmincqp 8000000000000000,7f800000ff800000 0000000000000000,8000000000000000 => 8000000000000000,0000000000000000
xsmincqp 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => 7f800000ff800000,8000000000000000
-All done. Tested 74 different instruction groups
+All done. Tested 84 different instruction groups