|
From: <sv...@va...> - 2013-09-20 17:32:17
|
Author: carll
Date: Fri Sep 20 17:32:06 2013
New Revision: 13574
Log:
Add test-cases for Power ISA 2.06 insns: divdo/divdo. and divduo/divduo.
The patch was supplied by Anmol P. Paralkar.
Valgrind Bugzilla 325110
Modified:
trunk/none/tests/ppc32/jm-insns.c
trunk/none/tests/ppc64/jm-int.stdout.exp
Modified: trunk/none/tests/ppc32/jm-insns.c
==============================================================================
--- trunk/none/tests/ppc32/jm-insns.c (original)
+++ trunk/none/tests/ppc32/jm-insns.c Fri Sep 20 17:32:06 2013
@@ -555,6 +555,16 @@
{
__asm__ __volatile__ ("divdu 17, 14, 15");
}
+
+static void test_divdo (void)
+{
+ __asm__ __volatile__ ("divdo 17, 14, 15");
+}
+
+static void test_divduo (void)
+{
+ __asm__ __volatile__ ("divduo 17, 14, 15");
+}
#endif // #ifdef __powerpc64__
static test_t tests_ia_ops_two[] = {
@@ -581,6 +591,8 @@
{ &test_mulldo , " mulldo", },
{ &test_divd , " divd", },
{ &test_divdu , " divdu", },
+ { &test_divdo , " divdo", },
+ { &test_divduo , " divduo", },
#endif // #ifdef __powerpc64__
{ NULL, NULL, },
};
@@ -695,6 +707,16 @@
{
__asm__ __volatile__ ("divdu. 17, 14, 15");
}
+
+static void test_divdo_ (void)
+{
+ __asm__ __volatile__ ("divdo. 17, 14, 15");
+}
+
+static void test_divduo_ (void)
+{
+ __asm__ __volatile__ ("divduo. 17, 14, 15");
+}
#endif // #ifdef __powerpc64__
static test_t tests_iar_ops_two[] = {
@@ -721,6 +743,8 @@
{ &test_mulldo_ , " mulldo.", },
{ &test_divd_ , " divd.", },
{ &test_divdu_ , " divdu.", },
+ { &test_divdo_ , " divdo.", },
+ { &test_divduo_ , " divduo.", },
#endif // #ifdef __powerpc64__
{ NULL, NULL, },
};
Modified: trunk/none/tests/ppc64/jm-int.stdout.exp
==============================================================================
--- trunk/none/tests/ppc64/jm-int.stdout.exp (original)
+++ trunk/none/tests/ppc64/jm-int.stdout.exp Fri Sep 20 17:32:06 2013
@@ -207,6 +207,26 @@
divdu ffffffffffffffff, 0000001cbe991def => 0000000008e7f283 (00000000 00000000)
divdu ffffffffffffffff, ffffffffffffffff => 0000000000000001 (00000000 00000000)
+ divdo 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 c0000000)
+ divdo 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+ divdo 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+ divdo 0000001cbe991def, 0000000000000000 => 0000000000000000 (00000000 c0000000)
+ divdo 0000001cbe991def, 0000001cbe991def => 0000000000000001 (00000000 00000000)
+ divdo 0000001cbe991def, ffffffffffffffff => ffffffe34166e211 (00000000 00000000)
+ divdo ffffffffffffffff, 0000000000000000 => 0000000000000000 (00000000 c0000000)
+ divdo ffffffffffffffff, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+ divdo ffffffffffffffff, ffffffffffffffff => 0000000000000001 (00000000 00000000)
+
+ divduo 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 c0000000)
+ divduo 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+ divduo 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+ divduo 0000001cbe991def, 0000000000000000 => 0000000000000000 (00000000 c0000000)
+ divduo 0000001cbe991def, 0000001cbe991def => 0000000000000001 (00000000 00000000)
+ divduo 0000001cbe991def, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+ divduo ffffffffffffffff, 0000000000000000 => 0000000000000000 (00000000 c0000000)
+ divduo ffffffffffffffff, 0000001cbe991def => 0000000008e7f283 (00000000 00000000)
+ divduo ffffffffffffffff, ffffffffffffffff => 0000000000000001 (00000000 00000000)
+
PPC integer arith insns with two args with flags update:
add. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
add. 0000000000000000, 0000001cbe991def => 0000001cbe991def (40000000 00000000)
@@ -416,6 +436,26 @@
divdu. ffffffffffffffff, 0000001cbe991def => 0000000008e7f283 (40000000 00000000)
divdu. ffffffffffffffff, ffffffffffffffff => 0000000000000001 (40000000 00000000)
+ divdo. 0000000000000000, 0000000000000000 => 0000000000000000 (30000000 c0000000)
+ divdo. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+ divdo. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+ divdo. 0000001cbe991def, 0000000000000000 => 0000000000000000 (30000000 c0000000)
+ divdo. 0000001cbe991def, 0000001cbe991def => 0000000000000001 (40000000 00000000)
+ divdo. 0000001cbe991def, ffffffffffffffff => ffffffe34166e211 (80000000 00000000)
+ divdo. ffffffffffffffff, 0000000000000000 => 0000000000000000 (30000000 c0000000)
+ divdo. ffffffffffffffff, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+ divdo. ffffffffffffffff, ffffffffffffffff => 0000000000000001 (40000000 00000000)
+
+ divduo. 0000000000000000, 0000000000000000 => 0000000000000000 (30000000 c0000000)
+ divduo. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+ divduo. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+ divduo. 0000001cbe991def, 0000000000000000 => 0000000000000000 (30000000 c0000000)
+ divduo. 0000001cbe991def, 0000001cbe991def => 0000000000000001 (40000000 00000000)
+ divduo. 0000001cbe991def, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+ divduo. ffffffffffffffff, 0000000000000000 => 0000000000000000 (30000000 c0000000)
+ divduo. ffffffffffffffff, 0000001cbe991def => 0000000008e7f283 (40000000 00000000)
+ divduo. ffffffffffffffff, ffffffffffffffff => 0000000000000001 (40000000 00000000)
+
PPC integer arith insns with two args and carry:
adde 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
adde 0000000000000000, 0000001cbe991def => 0000001cbe991def (00000000 00000000)
@@ -4730,4 +4770,4 @@
popcntb 0000001cbe991def => 0000000306040407 (00000000 00000000)
popcntb ffffffffffffffff => 0808080808080808 (00000000 00000000)
-All done. Tested 206 different instructions
+All done. Tested 210 different instructions
|