== 273475 (canonical avx)
302709 valgrind for ARM needs extra tls support for android emulator under Linux
302918 Enable testing of the vmaddfp and vnsubfp instructions in the testsuite
+303116 Add support for the POWER instruction popcntb
Release 3.7.0 (5 November 2011)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PPC_COMPARE = 0x00000300,
PPC_CROP = 0x00000400,
PPC_LDST = 0x00000500,
+ PPC_POPCNT = 0x00000600,
PPC_TYPE = 0x00000F00,
/* Family */
PPC_INTEGER = 0x00010000,
{ NULL, NULL, },
};
+static void
+tests_popcnt_one(void)
+{
+ __asm__ __volatile__ ("popcntb 17, 14");
+}
+
+static test_t tests_popcnt_ops_one[] = {
+ { &tests_popcnt_one , " popcntb", },
+ { NULL, NULL, },
+};
+
#if !defined (NO_FLOAT)
static void test_fsel (void)
{
"PPC integer store insns with three register args",
0x0001050b,
},
+ {
+ tests_popcnt_ops_one ,
+ "PPC integer population count with one register args, no flags",
+ 0x00010601,
+ },
#if !defined (NO_FLOAT)
{
tests_fa_ops_three ,
if ((type == PPC_ARITH && !seln_flags.arith) ||
(type == PPC_LOGICAL && !seln_flags.logical) ||
(type == PPC_COMPARE && !seln_flags.compare) ||
- (type == PPC_LDST && !seln_flags.ldst))
+ (type == PPC_LDST && !seln_flags.ldst) ||
+ (type == PPC_POPCNT && !seln_flags.arith))
continue;
/* Check instruction family */
family = all_tests[i].flags & PPC_FAMILY;
stwux 000f423f, 4 => 000f423f, 4 (00000000 00000000)
stwux ffffffff, 8 => ffffffff, 8 (00000000 00000000)
-All done. Tested 154 different instructions
+PPC integer population count with one register args, no flags:
+ popcntb 00000000 => 00000000 (00000000 00000000)
+ popcntb 000f423f => 00040206 (00000000 00000000)
+ popcntb ffffffff => 08080808 (00000000 00000000)
+
+All done. Tested 155 different instructions
stdux 0000001cbe991def, 8 => 0000001cbe991def, 8 (00000000 00000000)
stdux ffffffffffffffff, 16 => ffffffffffffffff, 16 (00000000 00000000)
-All done. Tested 203 different instructions
+PPC integer population count with one register args, no flags:
+ popcntb 0000000000000000 => 0000000000000000 (00000000 00000000)
+ popcntb 0000001cbe991def => 0000000306040407 (00000000 00000000)
+ popcntb ffffffffffffffff => 0808080808080808 (00000000 00000000)
+
+All done. Tested 204 different instructions