{
__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[] = {
{ &test_mulldo , " mulldo", },
{ &test_divd , " divd", },
{ &test_divdu , " divdu", },
+ { &test_divdo , " divdo", },
+ { &test_divduo , " divduo", },
#endif // #ifdef __powerpc64__
{ NULL, NULL, },
};
{
__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[] = {
{ &test_mulldo_ , " mulldo.", },
{ &test_divd_ , " divd.", },
{ &test_divdu_ , " divdu.", },
+ { &test_divdo_ , " divdo.", },
+ { &test_divduo_ , " divduo.", },
#endif // #ifdef __powerpc64__
{ NULL, NULL, },
};
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)
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)
popcntb 0000001cbe991def => 0000000306040407 (00000000 00000000)
popcntb ffffffffffffffff => 0808080808080808 (00000000 00000000)
-All done. Tested 206 different instructions
+All done. Tested 210 different instructions