int main(void) { welcome(); test1(); test2(); test3(); test4(); test5(); test6(); test7(); test8(); test9(); test10(); test11(); test12(); test13(); test14(); test15(); test16(); test17(); test18(); test19(); /* test20(); test21(); test22();*/ }
void Test::runTests() { int score = 0; std::cerr << "\n\n=========================\n"; std::cerr << " RUNNING TEST SUITE \n"; std::cerr << "=========================\n\n"; //Run test and award points where appropriate score += test1() ? 3: 0; score += test2() ? 4: 0; score += test3() ? 3: 0; score += test4() ? 3: 0; score += test5() ? 3: 0; score += test6() ? 3: 0; score += test7() ? 3: 0; score += test8() ? 3: 0; score += test9() ? 3: 0; score += test10() ? 3: 0; score += test11() ? 10: 0; score += test12() ? 10: 0; score += test13() ? 10: 0; score += test14() ? 10: 0; score += test15() ? 3 : 0; score += test16() ? 3 : 0; score += test17() ? 3 : 0; std::cerr << "Score: " << score << " / " << MAX_SCORE << std::endl; }
int main ( ) /****************************************************************************/ /* Purpose: MAIN is the main program for CHEBYSHEV_POLYNOMIAL_PRB. Discussion: CHEBYSHEV_POLYNOMIAL_PRB tests the CHEBYSHEV_POLYNOMIAL library. Licensing: This code is distributed under the GNU LGPL license. Modified: 09 August 2013 Author: John Burkardt */ { timestamp ( ); printf ( "\n" ); printf ( "CHEBYSHEV_POLYNOMIAL_PRB\n" ); printf ( " C version\n" ); printf ( " Test the CHEBYSHEV_POLYNOMIAL library.\n" ); test01 ( ); test02 ( ); test03 ( ); test04 ( ); test05 ( ); test06 ( ); test07 ( ); test08 ( ); test09 ( ); test10 ( ); test11 ( ); test12 ( ); test13 ( ); test14 ( ); test15 ( ); test16 ( ); test17 ( ); /* Terminate. */ printf ( "\n" ); printf ( "CHEBYSHEV_POLYNOMIAL_PRB\n" ); printf ( " Normal end of execution.\n" ); printf ( "\n" ); timestamp ( ); return 0; }
void main() { test_shared_ptr(); test01(); test02(); test03(); test04(); #ifdef NTL_CXX_RV test05(); #endif test06(); test07(); test08(); test09(); test10(); test11(); test12(); test14(); test15(); test16(); test17(); test18(); test19(); test20(); test21(); test22(); test23(); test24(); test25(); #ifdef _CPPUNWIND test26(); #endif // TODO: "libstdc++-v3\testsuite\20_util\shared_ptr\creation" и далее }
void test_operatorMult() { std::cout << "Start operator *" << std::endl; //The lines below is about overflow operations *, to check it //uncomment the lines below : // numeric::Fraction<int> test(std::numeric_limits<int>::max(), 3); // numeric::Fraction<int> test2(3, 7); // numeric::Fraction<int> result = test * test2; // std::cout << "FAIL" << std::endl; // numeric::Fraction<int> test3(std::numeric_limits<int>::min(), 3); // numeric::Fraction<int> test4(2, 9); // numeric::Fraction<int> result2 = test3 * test4; // std::cout << "FAIL" << std::endl; // numeric::Fraction<int> test5(std::numeric_limits<int>::min(), 3); // numeric::Fraction<int> test6(std::numeric_limits<int>::min(), 9); // numeric::Fraction<int> result3 = test5 * test6; // std::cout << "FAIL" << std::endl; // numeric::Fraction<int> test7(2, std::numeric_limits<int>::max()); // numeric::Fraction<int> test8(3, std::numeric_limits<int>::max()); // numeric::Fraction<int> result3 = test7 * test8; // std::cout << "FAIL" << std::endl; // numeric::Fraction<int> test9(4, std::numeric_limits<int>::min()); // numeric::Fraction<int> test10(3, std::numeric_limits<int>::min()); // numeric::Fraction<int> result4 = test9 * test10; // std::cout << "FAIL" << std::endl; // numeric::Fraction<int> test11(9, std::numeric_limits<int>::max()); // numeric::Fraction<int> test12(5, std::numeric_limits<int>::min()); // numeric::Fraction<int> result5 = test11 * test12; numeric::Fraction<int> test13(4, 9); numeric::Fraction<int> test14(2, 3); numeric::Fraction<int> result6 = test13 * test14; numeric::Fraction<int> const result6_test(8, 27); if (result6 == result6_test) std::cout << "OK" << std::endl; else std::cout << "KO" << std::endl; numeric::Fraction<int> test15(7, 12); numeric::Fraction<int> test16(1, 1); numeric::Fraction<int> result7 = test15 * test16; numeric::Fraction<int> const result7_test(7, 12); if (result7 == result7_test) std::cout << "OK" << std::endl; else std::cout << "KO" << std::endl; numeric::Fraction<int> test17(8, 0); numeric::Fraction<int> test18(-1, 0); numeric::Fraction<int> result8 = test17 * test18; std::cout << "-Inf" << " " << "RESULT = " << result8 << std::endl; }
int main ( void ) /******************************************************************************/ /* Purpose: MAIN is the main program for SUPER_BLAS1_Z_PRB. Discussion: SUPER_BLAS1_Z_PRB tests the SUPER_BLAS library. Modified: 01 April 2007 Author: John Burkardt */ { timestamp ( ); printf ( "\n" ); printf ( "SUPER_BLAS1_Z_PRB:\n" ); printf ( " Z version\n" ); printf ( " Double precision complex arithmetic,\n" ); printf ( " Test the SUPER_BLAS library.\n" ); test03 ( ); test04 ( ); test05 ( ); test08 ( ); test15 ( ); test16 ( ); test17 ( ); /* Terminate. */ printf ( "\n" ); printf ( "SUPER_BLAS1_Z_PRB:\n" ); printf ( " Normal end of execution.\n" ); printf ( "\n" ); timestamp ( ); return 0; }
int main () { int ret = 0; printf ("Direct case testing of CPP core functions\n"); ret += test0 (); ret += test1 (); ret += test2 (); ret += test3 (); ret += test4 (); ret += test5 (); ret += test6 (); ret += test7 (); ret += test8 (); ret += test9 (); ret += test10 (); ret += test11 (); ret += test12 (); ret += test13 (); ret += test14 (); ret += test15 (); ret += test16 (); ret += test17 (); ret += test18 (); ret += test19 (); ret += test20 (); ret += test21 (); ret += test22 (); ret += test23 (); ret += test24 (); ret += test25 (); ret += test26 (); ret += test27 (); ret += test28 (); ret += test29 (); ret += test30 (); ret += test31 (); printf ("# test failures: %d\n", ret); return 0; }
int main(void) { test01(); test02(); test03(); test04(); test05(); test06(); test07(); test08(); test09(); test10(); test11(); test12(); test13(); test14(); test15(); test16(); test17(); return 0; }
NOMIPS16 int main() { union { long long ll; int i[2]; } endianness_test; int little_endian; v2sf a, b; int i, j; endianness_test.ll = 1; little_endian = endianness_test.i[0]; /* Case 1 {diff, diff} */ a = (v2sf) {1, 2}; b = (v2sf) {3, 4}; i = __builtin_mips_upper_c_eq_ps (a, b); j = __builtin_mips_lower_c_eq_ps (a, b); if (i != 0 || j != 0) abort (); /* Case 2 {same, diff} */ a = (v2sf) {1.0, 2.0}; b = (v2sf) {1.0, 4.0}; i = __builtin_mips_upper_c_eq_ps (a, b); j = __builtin_mips_lower_c_eq_ps (a, b); if (little_endian) { if (i != 0 || j != 1) abort (); } else { if (i != 1 || j != 0) abort (); } /* Case 3 {diff, same} */ a = (v2sf) {1, 2}; b = (v2sf) {3, 2}; i = __builtin_mips_upper_c_eq_ps (a, b); j = __builtin_mips_lower_c_eq_ps (a, b); if (little_endian) { if (i != 1 || j != 0) abort (); } else { if (i != 0 || j != 1) abort (); } /* Case 4 {same, same} */ a = (v2sf) {1, 2}; b = (v2sf) {1, 2}; i = __builtin_mips_upper_c_eq_ps (a, b); j = __builtin_mips_lower_c_eq_ps (a, b); if (i != 1 || j != 1) abort (); /* Test upper/lower with 16 operators */ if (little_endian) { a = (v2sf) {1984.0, 10.58}; b = (v2sf) {1984.0, 567.345}; } else { a = (v2sf) {10.58, 1984.0}; b = (v2sf) {567.345, 1984.0}; } i = test0 (a, b); if (i != 0) abort (); i = test1 (a, b); if (i != 0) abort (); i = test2 (a, b); if (i != 0) abort (); i = test3 (a, b); if (i != 0) abort (); i = test4 (a, b); if (i != 0) abort (); i = test5 (a, b); if (i != 1) abort (); i = test6 (a, b); if (i != 0) abort (); i = test7 (a, b); if (i != 1) abort (); i = test8 (a, b); if (i != 1) abort (); i = test9 (a, b); if (i != 0) abort (); i = test10 (a, b); if (i != 1) abort (); i = test11 (a, b); if (i != 0) abort (); i = test12 (a, b); if (i != 1) abort (); i = test13 (a, b); if (i != 1) abort (); i = test14 (a, b); if (i != 1) abort (); i = test15 (a, b); if (i != 1) abort (); i = test16 (a, b); if (i != 0) abort (); i = test17 (a, b); if (i != 0) abort (); i = test18 (a, b); if (i != 0) abort (); i = test19 (a, b); if (i != 0) abort (); i = test20 (a, b); if (i != 0) abort (); i = test21 (a, b); if (i != 1) abort (); i = test22 (a, b); if (i != 0) abort (); i = test23 (a, b); if (i != 1) abort (); i = test24 (a, b); if (i != 1) abort (); i = test25 (a, b); if (i != 0) abort (); i = test26 (a, b); if (i != 1) abort (); i = test27 (a, b); if (i != 0) abort (); i = test28 (a, b); if (i != 1) abort (); i = test29 (a, b); if (i != 1) abort (); i = test30 (a, b); if (i != 1) abort (); i = test31 (a, b); if (i != 1) abort (); /* Reverse arguments */ i = test0 (b, a); if (i != 0) abort (); i = test1 (b, a); if (i != 0) abort (); i = test2 (b, a); if (i != 0) abort (); i = test3 (b, a); if (i != 0) abort (); i = test4 (b, a); if (i != 0) abort (); i = test5 (b, a); if (i != 1) abort (); i = test6 (b, a); if (i != 0) abort (); i = test7 (b, a); if (i != 1) abort (); i = test8 (b, a); if (i != 0) abort (); i = test9 (b, a); if (i != 0) abort (); i = test10 (b, a); if (i != 0) abort (); i = test11 (b, a); if (i != 0) abort (); i = test12 (b, a); if (i != 0) abort (); i = test13 (b, a); if (i != 1) abort (); i = test14 (b, a); if (i != 0) abort (); i = test15 (b, a); if (i != 1) abort (); i = test16 (b, a); if (i != 0) abort (); i = test17 (b, a); if (i != 0) abort (); i = test18 (b, a); if (i != 0) abort (); i = test19 (b, a); if (i != 0) abort (); i = test20 (b, a); if (i != 0) abort (); i = test21 (b, a); if (i != 1) abort (); i = test22 (b, a); if (i != 0) abort (); i = test23 (b, a); if (i != 1) abort (); i = test24 (b, a); if (i != 0) abort (); i = test25 (b, a); if (i != 0) abort (); i = test26 (b, a); if (i != 0) abort (); i = test27 (b, a); if (i != 0) abort (); i = test28 (b, a); if (i != 0) abort (); i = test29 (b, a); if (i != 1) abort (); i = test30 (b, a); if (i != 0) abort (); i = test31 (b, a); if (i != 1) abort (); #ifndef __FAST_MATH__ /* Test upper/lower with 16 operators */ if (little_endian) { a = (v2sf) {qnan, qnan}; b = (v2sf) {1984.0, 567.345}; } else { a = (v2sf) {qnan, qnan}; b = (v2sf) {567.345, 1984.0}; } i = test0 (a, b); if (i != 0) abort (); i = test1 (a, b); if (i != 0) abort (); i = test2 (a, b); if (i != 1) abort (); i = test3 (a, b); if (i != 1) abort (); i = test4 (a, b); if (i != 0) abort (); i = test5 (a, b); if (i != 0) abort (); i = test6 (a, b); if (i != 1) abort (); i = test7 (a, b); if (i != 1) abort (); i = test8 (a, b); if (i != 0) abort (); i = test9 (a, b); if (i != 0) abort (); i = test10 (a, b); if (i != 1) abort (); i = test11 (a, b); if (i != 1) abort (); i = test12 (a, b); if (i != 0) abort (); i = test13 (a, b); if (i != 0) abort (); i = test14 (a, b); if (i != 1) abort (); i = test15 (a, b); if (i != 1) abort (); i = test16 (a, b); if (i != 0) abort (); i = test17 (a, b); if (i != 0) abort (); i = test18 (a, b); if (i != 1) abort (); i = test19 (a, b); if (i != 1) abort (); i = test20 (a, b); if (i != 0) abort (); i = test21 (a, b); if (i != 0) abort (); i = test22 (a, b); if (i != 1) abort (); i = test23 (a, b); if (i != 1) abort (); i = test24 (a, b); if (i != 0) abort (); i = test25 (a, b); if (i != 0) abort (); i = test26 (a, b); if (i != 1) abort (); i = test27 (a, b); if (i != 1) abort (); i = test28 (a, b); if (i != 0) abort (); i = test29 (a, b); if (i != 0) abort (); i = test30 (a, b); if (i != 1) abort (); i = test31 (a, b); if (i != 1) abort (); #endif printf ("Test Passes\n"); exit (0); }
NOMIPS16 int main () { v2sf a, b, c, d; int i, j; /* c.eq.ps */ a = (v2sf) {12, 34}; b = (v2sf) {56, 78}; i = 0; j = 0; if (__builtin_mips_any_c_eq_ps(a, b) != i) abort (); if (__builtin_mips_all_c_eq_ps(a, b) != j) abort (); /* c.eq.ps */ a = (v2sf) {12, 34}; b = (v2sf) {12, 78}; i = 1; j = 0; if (__builtin_mips_any_c_eq_ps(a, b) != i) abort (); if (__builtin_mips_all_c_eq_ps(a, b) != j) abort (); /* c.eq.ps */ a = (v2sf) {12, 34}; b = (v2sf) {56, 34}; i = 1; j = 0; if (__builtin_mips_any_c_eq_ps(a, b) != i) abort (); if (__builtin_mips_all_c_eq_ps(a, b) != j) abort (); /* c.eq.ps */ a = (v2sf) {12, 34}; b = (v2sf) {12, 34}; i = 1; j = 1; if (__builtin_mips_any_c_eq_ps(a, b) != i) abort (); if (__builtin_mips_all_c_eq_ps(a, b) != j) abort (); /* Test with 16 operators */ a = (v2sf) {10.58, 1984.0}; b = (v2sf) {567.345, 1984.0}; i = test0 (a, b); if (i != 0) abort (); i = test1 (a, b); if (i != 0) abort (); i = test2 (a, b); if (i != 0) abort (); i = test3 (a, b); if (i != 0) abort (); i = test4 (a, b); if (i != 1) abort (); i = test5 (a, b); if (i != 0) abort (); i = test6 (a, b); if (i != 1) abort (); i = test7 (a, b); if (i != 0) abort (); i = test8 (a, b); if (i != 1) abort (); i = test9 (a, b); if (i != 0) abort (); i = test10 (a, b); if (i != 1) abort (); i = test11 (a, b); if (i != 0) abort (); i = test12 (a, b); if (i != 1) abort (); i = test13 (a, b); if (i != 1) abort (); i = test14 (a, b); if (i != 1) abort (); i = test15 (a, b); if (i != 1) abort (); i = test16 (a, b); if (i != 0) abort (); i = test17 (a, b); if (i != 0) abort (); i = test18 (a, b); if (i != 0) abort (); i = test19 (a, b); if (i != 0) abort (); i = test20 (a, b); if (i != 1) abort (); i = test21 (a, b); if (i != 0) abort (); i = test22 (a, b); if (i != 1) abort (); i = test23 (a, b); if (i != 0) abort (); i = test24 (a, b); if (i != 1) abort (); i = test25 (a, b); if (i != 0) abort (); i = test26 (a, b); if (i != 1) abort (); i = test27 (a, b); if (i != 0) abort (); i = test28 (a, b); if (i != 1) abort (); i = test29 (a, b); if (i != 1) abort (); i = test30 (a, b); if (i != 1) abort (); i = test31 (a, b); if (i != 1) abort (); /* Reverse arguments */ i = test0 (b, a); if (i != 0) abort (); i = test1 (b, a); if (i != 0) abort (); i = test2 (b, a); if (i != 0) abort (); i = test3 (b, a); if (i != 0) abort (); i = test4 (b, a); if (i != 1) abort (); i = test5 (b, a); if (i != 0) abort (); i = test6 (b, a); if (i != 1) abort (); i = test7 (b, a); if (i != 0) abort (); i = test8 (b, a); if (i != 0) abort (); i = test9 (b, a); if (i != 0) abort (); i = test10 (b, a); if (i != 0) abort (); i = test11 (b, a); if (i != 0) abort (); i = test12 (b, a); if (i != 1) abort (); i = test13 (b, a); if (i != 0) abort (); i = test14 (b, a); if (i != 1) abort (); i = test15 (b, a); if (i != 0) abort (); i = test16 (b, a); if (i != 0) abort (); i = test17 (b, a); if (i != 0) abort (); i = test18 (b, a); if (i != 0) abort (); i = test19 (b, a); if (i != 0) abort (); i = test20 (b, a); if (i != 1) abort (); i = test21 (b, a); if (i != 0) abort (); i = test22 (b, a); if (i != 1) abort (); i = test23 (b, a); if (i != 0) abort (); i = test24 (b, a); if (i != 0) abort (); i = test25 (b, a); if (i != 0) abort (); i = test26 (b, a); if (i != 0) abort (); i = test27 (b, a); if (i != 0) abort (); i = test28 (b, a); if (i != 1) abort (); i = test29 (b, a); if (i != 0) abort (); i = test30 (b, a); if (i != 1) abort (); i = test31 (b, a); if (i != 0) abort (); #ifndef __FAST_MATH__ /* Test with 16 operators */ a = (v2sf) {qnan, qnan}; b = (v2sf) {567.345, 1984.0}; i = test0 (a, b); if (i != 0) abort (); i = test1 (a, b); if (i != 0) abort (); i = test2 (a, b); if (i != 1) abort (); i = test3 (a, b); if (i != 1) abort (); i = test4 (a, b); if (i != 0) abort (); i = test5 (a, b); if (i != 0) abort (); i = test6 (a, b); if (i != 1) abort (); i = test7 (a, b); if (i != 1) abort (); i = test8 (a, b); if (i != 0) abort (); i = test9 (a, b); if (i != 0) abort (); i = test10 (a, b); if (i != 1) abort (); i = test11 (a, b); if (i != 1) abort (); i = test12 (a, b); if (i != 0) abort (); i = test13 (a, b); if (i != 0) abort (); i = test14 (a, b); if (i != 1) abort (); i = test15 (a, b); if (i != 1) abort (); i = test16 (a, b); if (i != 0) abort (); i = test17 (a, b); if (i != 0) abort (); i = test18 (a, b); if (i != 1) abort (); i = test19 (a, b); if (i != 1) abort (); i = test20 (a, b); if (i != 0) abort (); i = test21 (a, b); if (i != 0) abort (); i = test22 (a, b); if (i != 1) abort (); i = test23 (a, b); if (i != 1) abort (); i = test24 (a, b); if (i != 0) abort (); i = test25 (a, b); if (i != 0) abort (); i = test26 (a, b); if (i != 1) abort (); i = test27 (a, b); if (i != 1) abort (); i = test28 (a, b); if (i != 0) abort (); i = test29 (a, b); if (i != 0) abort (); i = test30 (a, b); if (i != 1) abort (); i = test31 (a, b); if (i != 1) abort (); #endif printf ("Test Passes\n"); exit (0); }
NOMIPS16 int main () { v2sf a, b, c, d; int i, j; /* c.eq.ps */ a = (v2sf) {11, 22}; b = (v2sf) {33, 44}; c = (v2sf) {55, 66}; d = (v2sf) {77, 88}; i = 0; j = 0; if (__builtin_mips_any_c_eq_4s(a, b, c, d) != i) abort (); if (__builtin_mips_all_c_eq_4s(a, b, c, d) != j) abort (); /* c.eq.ps */ a = (v2sf) {11, 22}; b = (v2sf) {11, 44}; c = (v2sf) {55, 66}; d = (v2sf) {77, 88}; i = 1; j = 0; if (__builtin_mips_any_c_eq_4s(a, b, c, d) != i) abort (); if (__builtin_mips_all_c_eq_4s(a, b, c, d) != j) abort (); /* c.eq.ps */ a = (v2sf) {11, 22}; b = (v2sf) {33, 22}; c = (v2sf) {55, 66}; d = (v2sf) {77, 88}; i = 1; j = 0; if (__builtin_mips_any_c_eq_4s(a, b, c, d) != i) abort (); if (__builtin_mips_all_c_eq_4s(a, b, c, d) != j) abort (); /* c.eq.ps */ a = (v2sf) {11, 22}; b = (v2sf) {33, 44}; c = (v2sf) {55, 66}; d = (v2sf) {55, 88}; i = 1; j = 0; if (__builtin_mips_any_c_eq_4s(a, b, c, d) != i) abort (); if (__builtin_mips_all_c_eq_4s(a, b, c, d) != j) abort (); /* c.eq.ps */ a = (v2sf) {11, 22}; b = (v2sf) {33, 44}; c = (v2sf) {55, 66}; d = (v2sf) {77, 66}; i = 1; j = 0; if (__builtin_mips_any_c_eq_4s(a, b, c, d) != i) abort (); if (__builtin_mips_all_c_eq_4s(a, b, c, d) != j) abort (); /* c.eq.ps */ a = (v2sf) {11, 22}; b = (v2sf) {11, 22}; c = (v2sf) {55, 66}; d = (v2sf) {55, 66}; i = 1; j = 1; if (__builtin_mips_any_c_eq_4s(a, b, c, d) != i) abort (); if (__builtin_mips_all_c_eq_4s(a, b, c, d) != j) abort (); /* Test all comparisons */ a = (v2sf) {11, 33}; b = (v2sf) {33, 11}; c = (v2sf) {55, 66}; d = (v2sf) {55, 88}; i = test0 (a, b, c, d); if (i != 0) abort (); i = test1 (a, b, c, d); if (i != 0) abort (); i = test2 (a, b, c, d); if (i != 0) abort (); i = test3 (a, b, c, d); if (i != 0) abort (); i = test4 (a, b, c, d); if (i != 1) abort (); i = test5 (a, b, c, d); if (i != 0) abort (); i = test6 (a, b, c, d); if (i != 1) abort (); i = test7 (a, b, c, d); if (i != 0) abort (); i = test8 (a, b, c, d); if (i != 1) abort (); i = test9 (a, b, c, d); if (i != 0) abort (); i = test10 (a, b, c, d); if (i != 1) abort (); i = test11 (a, b, c, d); if (i != 0) abort (); i = test12 (a, b, c, d); if (i != 1) abort (); i = test13 (a, b, c, d); if (i != 0) abort (); i = test14 (a, b, c, d); if (i != 1) abort (); i = test15 (a, b, c, d); if (i != 0) abort (); i = test16 (a, b, c, d); if (i != 0) abort (); i = test17 (a, b, c, d); if (i != 0) abort (); i = test18 (a, b, c, d); if (i != 0) abort (); i = test19 (a, b, c, d); if (i != 0) abort (); i = test20 (a, b, c, d); if (i != 1) abort (); i = test21 (a, b, c, d); if (i != 0) abort (); i = test22 (a, b, c, d); if (i != 1) abort (); i = test23 (a, b, c, d); if (i != 0) abort (); i = test24 (a, b, c, d); if (i != 1) abort (); i = test25 (a, b, c, d); if (i != 0) abort (); i = test26 (a, b, c, d); if (i != 1) abort (); i = test27 (a, b, c, d); if (i != 0) abort (); i = test28 (a, b, c, d); if (i != 1) abort (); i = test29 (a, b, c, d); if (i != 0) abort (); i = test30 (a, b, c, d); if (i != 1) abort (); i = test31 (a, b, c, d); if (i != 0) abort (); /* Reversed arguments */ i = test0 (b, a, d, c); if (i != 0) abort (); i = test1 (b, a, d, c); if (i != 0) abort (); i = test2 (b, a, d, c); if (i != 0) abort (); i = test3 (b, a, d, c); if (i != 0) abort (); i = test4 (b, a, d, c); if (i != 1) abort (); i = test5 (b, a, d, c); if (i != 0) abort (); i = test6 (b, a, d, c); if (i != 1) abort (); i = test7 (b, a, d, c); if (i != 0) abort (); i = test8 (b, a, d, c); if (i != 1) abort (); i = test9 (b, a, d, c); if (i != 0) abort (); i = test10 (b, a, d, c); if (i != 1) abort (); i = test11 (b, a, d, c); if (i != 0) abort (); i = test12 (b, a, d, c); if (i != 1) abort (); i = test13 (b, a, d, c); if (i != 0) abort (); i = test14 (b, a, d, c); if (i != 1) abort (); i = test15 (b, a, d, c); if (i != 0) abort (); i = test16 (b, a, d, c); if (i != 0) abort (); i = test17 (b, a, d, c); if (i != 0) abort (); i = test18 (b, a, d, c); if (i != 0) abort (); i = test19 (b, a, d, c); if (i != 0) abort (); i = test20 (b, a, d, c); if (i != 1) abort (); i = test21 (b, a, d, c); if (i != 0) abort (); i = test22 (b, a, d, c); if (i != 1) abort (); i = test23 (b, a, d, c); if (i != 0) abort (); i = test24 (b, a, d, c); if (i != 1) abort (); i = test25 (b, a, d, c); if (i != 0) abort (); i = test26 (b, a, d, c); if (i != 1) abort (); i = test27 (b, a, d, c); if (i != 0) abort (); i = test28 (b, a, d, c); if (i != 1) abort (); i = test29 (b, a, d, c); if (i != 0) abort (); i = test30 (b, a, d, c); if (i != 1) abort (); i = test31 (b, a, d, c); if (i != 0) abort (); #ifndef __FAST_MATH__ /* Test all comparisons */ a = (v2sf) {qnan, qnan}; b = (v2sf) {33, 11}; c = (v2sf) {qnan, qnan}; d = (v2sf) {55, 88}; i = test0 (a, b, c, d); if (i != 0) abort (); i = test1 (a, b, c, d); if (i != 0) abort (); i = test2 (a, b, c, d); if (i != 1) abort (); i = test3 (a, b, c, d); if (i != 1) abort (); i = test4 (a, b, c, d); if (i != 0) abort (); i = test5 (a, b, c, d); if (i != 0) abort (); i = test6 (a, b, c, d); if (i != 1) abort (); i = test7 (a, b, c, d); if (i != 1) abort (); i = test8 (a, b, c, d); if (i != 0) abort (); i = test9 (a, b, c, d); if (i != 0) abort (); i = test10 (a, b, c, d); if (i != 1) abort (); i = test11 (a, b, c, d); if (i != 1) abort (); i = test12 (a, b, c, d); if (i != 0) abort (); i = test13 (a, b, c, d); if (i != 0) abort (); i = test14 (a, b, c, d); if (i != 1) abort (); i = test15 (a, b, c, d); if (i != 1) abort (); i = test16 (a, b, c, d); if (i != 0) abort (); i = test17 (a, b, c, d); if (i != 0) abort (); i = test18 (a, b, c, d); if (i != 1) abort (); i = test19 (a, b, c, d); if (i != 1) abort (); i = test20 (a, b, c, d); if (i != 0) abort (); i = test21 (a, b, c, d); if (i != 0) abort (); i = test22 (a, b, c, d); if (i != 1) abort (); i = test23 (a, b, c, d); if (i != 1) abort (); i = test24 (a, b, c, d); if (i != 0) abort (); i = test25 (a, b, c, d); if (i != 0) abort (); i = test26 (a, b, c, d); if (i != 1) abort (); i = test27 (a, b, c, d); if (i != 1) abort (); i = test28 (a, b, c, d); if (i != 0) abort (); i = test29 (a, b, c, d); if (i != 0) abort (); i = test30 (a, b, c, d); if (i != 1) abort (); i = test31 (a, b, c, d); if (i != 1) abort (); #endif printf ("Test Passes\n"); exit (0); }
NOMIPS16 int main () { float f1; v2sf a, b, c, d, e, f; /* Case 1 {diff, diff} */ /* movt.ps */ a = (v2sf) {5, 12}; b = (v2sf) {9, 6}; c = (v2sf) {33, 123}; d = (v2sf) {8, 78}; e = __builtin_mips_movt_c_eq_ps (a, b, c, d); f = (v2sf) {33, 123}; if (!__builtin_mips_upper_c_eq_ps (e, f) || !__builtin_mips_lower_c_eq_ps (e, f)) abort (); /* movf.ps */ e = __builtin_mips_movf_c_eq_ps (a, b, c, d); f = (v2sf) {8, 78}; if (!__builtin_mips_upper_c_eq_ps (e, f) || !__builtin_mips_lower_c_eq_ps (e, f)) abort (); /* Case 2 {same, diff} */ /* movt.ps */ a = (v2sf) {5, 12}; b = (v2sf) {5, 6}; c = (v2sf) {33, 123}; d = (v2sf) {8, 78}; e = __builtin_mips_movt_c_eq_ps (a, b, c, d); f = (v2sf) {8, 123}; if (!__builtin_mips_upper_c_eq_ps (e, f) || !__builtin_mips_lower_c_eq_ps (e, f)) abort (); /* movf.ps */ e = __builtin_mips_movf_c_eq_ps (a, b, c, d); f = (v2sf) {33, 78}; if (!__builtin_mips_upper_c_eq_ps (e, f) || !__builtin_mips_lower_c_eq_ps (e, f)) abort (); /* Case 3 {diff, same} */ /* movt.ps */ a = (v2sf) {5, 12}; b = (v2sf) {9, 12}; c = (v2sf) {33, 123}; d = (v2sf) {8, 78}; e = __builtin_mips_movt_c_eq_ps (a, b, c, d); f = (v2sf) {33, 78}; if (!__builtin_mips_upper_c_eq_ps (e, f) || !__builtin_mips_lower_c_eq_ps (e, f)) abort (); /* movf.ps */ e = __builtin_mips_movf_c_eq_ps (a, b, c, d); f = (v2sf) {8, 123}; if (!__builtin_mips_upper_c_eq_ps (e, f) || !__builtin_mips_lower_c_eq_ps (e, f)) abort (); /* Case 4 {same, same} */ /* movt.ps */ a = (v2sf) {5, 12}; b = (v2sf) {5, 12}; c = (v2sf) {33, 123}; d = (v2sf) {8, 78}; e = __builtin_mips_movt_c_eq_ps (a, b, c, d); f = (v2sf) {8, 78}; if (!__builtin_mips_upper_c_eq_ps (e, f) || !__builtin_mips_lower_c_eq_ps (e, f)) abort (); /* movf.ps */ e = __builtin_mips_movf_c_eq_ps (a, b, c, d); f = (v2sf) {33, 123}; if (!__builtin_mips_upper_c_eq_ps (e, f) || !__builtin_mips_lower_c_eq_ps (e, f)) abort (); /* Test all 16 operators */ a = (v2sf) {123, 123}; b = (v2sf) {1000, 1000}; c = (v2sf) {33, 123}; d = (v2sf) {8, 78}; e = test0 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test1 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test2 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test3 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test4 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test5 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test6 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test7 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test8 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test9 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test10 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test11 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test12 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test13 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test14 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test15 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test16 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test17 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test18 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test19 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test20 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test21 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test22 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test23 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test24 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test25 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test26 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test27 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test28 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test29 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test30 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test31 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); /* Test all 16 operators with (b, a) */ a = (v2sf) {123, 123}; b = (v2sf) {1000, 1000}; c = (v2sf) {33, 123}; d = (v2sf) {8, 78}; e = test0 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test1 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test2 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test3 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test4 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test5 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test6 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test7 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test8 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test9 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test10 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test11 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test12 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test13 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test14 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test15 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test16 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test17 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test18 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test19 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test20 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test21 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test22 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test23 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test24 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test25 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test26 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test27 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test28 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test29 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test30 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test31 (b, a, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); #ifndef __FAST_MATH__ /* Test with NaN */ a = (v2sf) {qnan, qnan}; b = (v2sf) {1000, 1000}; c = (v2sf) {33, 123}; d = (v2sf) {8, 78}; e = test0 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test1 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test2 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test3 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test4 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test5 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test6 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test7 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test8 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test9 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test10 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test11 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test12 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test13 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test14 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test15 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test16 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test17 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test18 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test19 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test20 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test21 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test22 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test23 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test24 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test25 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test26 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test27 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test28 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); e = test29 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test30 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, d) || !__builtin_mips_lower_c_eq_ps (e, d)) abort (); e = test31 (a, b, c, d); if (!__builtin_mips_upper_c_eq_ps (e, c) || !__builtin_mips_lower_c_eq_ps (e, c)) abort (); #endif printf ("Test Passes\n"); exit (0); }
int main() { { static_assert( ranges::detail::BidirectionalCursor< ranges::detail::reverse_cursor<bidirectional_iterator<const char *>>>{}, ""); static_assert( ranges::detail::BidirectionalCursor< ranges::detail::reverse_cursor<random_access_iterator<const char *>>>{}, ""); static_assert( ranges::detail::RandomAccessCursor< ranges::detail::reverse_cursor<random_access_iterator<const char *>>>{}, ""); static_assert( ranges::BidirectionalIterator< ranges::reverse_iterator<bidirectional_iterator<const char *>>>{}, ""); static_assert( ranges::RandomAccessIterator< ranges::reverse_iterator<random_access_iterator<const char *>>>{}, ""); } { // test test<bidirectional_iterator<const char *>>(); test<random_access_iterator<char *>>(); test<char *>(); test<const char *>(); } { // test 2 const char s[] = "123"; test2(bidirectional_iterator<const char *>(s)); test2(random_access_iterator<const char *>(s)); } { // test3 Derived d; test3<bidirectional_iterator<Base *>>( bidirectional_iterator<Derived *>(&d)); test3<random_access_iterator<const Base *>>( random_access_iterator<Derived *>(&d)); } { // test4 const char *s = "1234567890"; random_access_iterator<const char *> b(s); random_access_iterator<const char *> e(s + 10); while (b != e) test4(b++); } { // test5 const char *s = "1234567890"; test5(bidirectional_iterator<const char *>(s), bidirectional_iterator<const char *>(s), false); test5(bidirectional_iterator<const char *>(s), bidirectional_iterator<const char *>(s + 1), true); test5(random_access_iterator<const char *>(s), random_access_iterator<const char *>(s), false); test5(random_access_iterator<const char *>(s), random_access_iterator<const char *>(s + 1), true); test5(s, s, false); test5(s, s + 1, true); } { const char *s = "123"; test6(bidirectional_iterator<const char *>(s + 1), bidirectional_iterator<const char *>(s)); test6(random_access_iterator<const char *>(s + 1), random_access_iterator<const char *>(s)); test6(s + 1, s); } { const char *s = "123"; test7(bidirectional_iterator<const char *>(s + 1), bidirectional_iterator<const char *>(s)); test7(random_access_iterator<const char *>(s + 1), random_access_iterator<const char *>(s)); test7(s + 1, s); } { const char *s = "1234567890"; test8(random_access_iterator<const char *>(s + 5), 5, random_access_iterator<const char *>(s)); test8(s + 5, 5, s); } { const char *s = "1234567890"; test9(random_access_iterator<const char *>(s + 5), 5, random_access_iterator<const char *>(s)); test9(s + 5, 5, s); } { const char *s = "123"; test10(bidirectional_iterator<const char *>(s + 1), bidirectional_iterator<const char *>(s + 2)); test10(random_access_iterator<const char *>(s + 1), random_access_iterator<const char *>(s + 2)); test10(s + 1, s + 2); } { const char *s = "123"; test11(bidirectional_iterator<const char *>(s + 1), bidirectional_iterator<const char *>(s + 2)); test11(random_access_iterator<const char *>(s + 1), random_access_iterator<const char *>(s + 2)); test11(s + 1, s + 2); } { const char *s = "1234567890"; test12(random_access_iterator<const char *>(s + 5), 5, random_access_iterator<const char *>(s + 10)); test12(s + 5, 5, s + 10); } { const char *s = "1234567890"; test13(random_access_iterator<const char *>(s + 5), 5, random_access_iterator<const char *>(s + 10)); test13(s + 5, 5, s + 10); } { A a; test14(&a + 1, A()); } { Derived d; test15<bidirectional_iterator<Base *>>( bidirectional_iterator<Derived *>(&d)); test15<random_access_iterator<const Base *>>( random_access_iterator<Derived *>(&d)); test15<Base *>(&d); } { const char *s = "1234567890"; test16(bidirectional_iterator<const char *>(s), bidirectional_iterator<const char *>(s), true); test16(bidirectional_iterator<const char *>(s), bidirectional_iterator<const char *>(s + 1), false); test16(random_access_iterator<const char *>(s), random_access_iterator<const char *>(s), true); test16(random_access_iterator<const char *>(s), random_access_iterator<const char *>(s + 1), false); test16(s, s, true); test16(s, s + 1, false); } { char s[3] = {0}; test17(random_access_iterator<const char *>(s), random_access_iterator<char *>(s), 0); random_access_iterator<char *> inp1(s); test17(random_access_iterator<char *>(s), random_access_iterator<const char *>(s + 1), 1); test17(random_access_iterator<const char *>(s + 1), random_access_iterator<char *>(s), -1); test17(s, s, 0); test17(s, s + 1, 1); test17(s + 1, s, -1); } { const char *s = "1234567890"; test18(random_access_iterator<const char *>(s), random_access_iterator<const char *>(s), false); test18(random_access_iterator<const char *>(s), random_access_iterator<const char *>(s + 1), true); test18(random_access_iterator<const char *>(s + 1), random_access_iterator<const char *>(s), false); test18(s, s, false); test18(s, s + 1, true); test18(s + 1, s, false); } { const char *s = "1234567890"; test19(random_access_iterator<const char *>(s), random_access_iterator<const char *>(s), true); test19(random_access_iterator<const char *>(s), random_access_iterator<const char *>(s + 1), true); test19(random_access_iterator<const char *>(s + 1), random_access_iterator<const char *>(s), false); test19(s, s, true); test19(s, s + 1, true); test19(s + 1, s, false); } { const char *s = "1234567890"; test20(random_access_iterator<const char *>(s + 5), 4, '1'); test20(s + 5, 4, '1'); } { const char *s = "1234567890"; test21(random_access_iterator<const char *>(s), random_access_iterator<const char *>(s), false); test21(random_access_iterator<const char *>(s), random_access_iterator<const char *>(s + 1), false); test21(random_access_iterator<const char *>(s + 1), random_access_iterator<const char *>(s), true); test21(s, s, false); test21(s, s + 1, false); test21(s + 1, s, true); } { const char* s = "1234567890"; test22(random_access_iterator<const char*>(s), random_access_iterator<const char*>(s), false); test22(random_access_iterator<const char*>(s), random_access_iterator<const char*>(s+1), false); test22(random_access_iterator<const char*>(s+1), random_access_iterator<const char*>(s), true); test22(s, s, false); test22(s, s+1, false); test22(s+1, s, true); } { const char* s = "1234567890"; test23(random_access_iterator<const char*>(s), random_access_iterator<const char*>(s), true); test23(random_access_iterator<const char*>(s), random_access_iterator<const char*>(s+1), false); test23(random_access_iterator<const char*>(s+1), random_access_iterator<const char*>(s), true); test23(s, s, true); test23(s, s+1, false); test23(s+1, s, true); } { B a; test24(&a+1, B()); } { C l[3] = {C(0), C(1), C(2)}; auto ri = ranges::rbegin(l); CHECK ( (*ri).get() == 2 ); ++ri; CHECK ( (*ri).get() == 1 ); ++ri; CHECK ( (*ri).get() == 0 ); ++ri; CHECK ( ri == ranges::rend(l)); } { const char* s = "1234567890"; test25(random_access_iterator<const char*>(s+5), 5, random_access_iterator<const char*>(s)); test25(s+5, 5, s); } return test_result(); }
int main(int argc, char** argv) { // Execute the tests only if trace calls are included #ifdef PEGASUS_REMOVE_TRACE cout << argv[0] << " +++++ passed all tests" << endl; return 0; #else const char* tmpDir = getenv ("PEGASUS_TMP"); if (tmpDir == NULL) { tmpDir = "."; } String f1 (tmpDir); f1.append("/testtracer1.trace"); FILE1 = f1.getCString(); String f2 (tmpDir); f2.append("/testtracer2.trace"); FILE2 = f2.getCString(); String f3 (tmpDir); f3.append("/testtracer3.trace"); FILE3 = f3.getCString(); String f4 (tmpDir); f4.append("/testtracer4.trace"); FILE4 = f4.getCString(); System::removeFile(FILE1); System::removeFile(FILE2); System::removeFile(FILE3); System::removeFile(FILE4); if (test1() == 0) { cout << "Tracer test (test1) failed" << endl; exit(1); } if (test2() == 0) { cout << "Tracer test (test2) failed" << endl; exit(1); } if (test3() == 0) { cout << "Tracer test (test3) failed" << endl; exit(1); } if (test4() != 0) { cout << "Tracer test (test4) failed" << endl; exit(1); } if (test5() != 0) { cout << "Tracer test (test5) failed" << endl; exit(1); } if (test6() != 0) { cout << "Tracer test (test6) failed" << endl; exit(1); } if (test7() != 0) { cout << "Tracer test (test7) failed" << endl; exit(1); } if (test8() != 0) { cout << "Tracer test (test8) failed" << endl; exit(1); } if (test9() != 0) { cout << "Tracer test (test9) failed" << endl; exit(1); } if (test10() != 0) { cout << "Tracer test (test10) failed" << endl; exit(1); } if (test11() != 0) { cout << "Tracer test (test11) failed" << endl; exit(1); } if (test12() != 0) { cout << "Tracer test (test12) failed" << endl; exit(1); } if (test13() != 0) { cout << "Tracer test (test13) failed" << endl; exit(1); } if (test14() != 0) { cout << "Tracer test (test14) failed" << endl; exit(1); } if (test15() != 0) { cout << "Tracer test (test15) failed" << endl; exit(1); } if (test16() != 0) { cout << "Tracer test (test16) failed" << endl; exit(1); } if (test17() != 0) { cout << "Tracer test (test17) failed" << endl; exit(1); } if (test18() != 0) { cout << "Tracer test (test18) failed" << endl; exit(1); } if (test19() != 0) { cout << "Tracer test (test19) failed" << endl; exit(1); } if (test20() != 0) { cout << "Tracer test (test20) failed" << endl; exit(1); } if (test21() != 0) { cout << "Tracer test (test21) failed" << endl; exit(1); } if (test22() != 0) { cout << "Tracer test (test22) failed" << endl; exit(1); } cout << argv[0] << " +++++ passed all tests" << endl; System::removeFile(FILE1); System::removeFile(FILE2); System::removeFile(FILE3); System::removeFile(FILE4); return 0; #endif }
NOMIPS16 int main () { int little_endian; v2sf a, b, c, d; int i, j, k, l; union { long long ll; int i[2]; } endianness_test; endianness_test.ll = 1; little_endian = endianness_test.i[0]; /* cabs.eq.ps */ a = (v2sf) {12, 34}; b = (v2sf) {-56, -78}; i = 0; j = 0; k = 0; l = 0; if (__builtin_mips_any_cabs_eq_ps(a, b) != i) abort (); if (__builtin_mips_upper_cabs_eq_ps(a, b) != j) abort (); if (__builtin_mips_lower_cabs_eq_ps(a, b) != k) abort (); if (__builtin_mips_all_cabs_eq_ps(a, b) != l) abort (); /* cabs.eq.ps */ a = (v2sf) {12, 34}; b = (v2sf) {-12, -78}; i = 1; if (little_endian) { j = 0; k = 1; } else { j = 1; k = 0; } l = 0; if (__builtin_mips_any_cabs_eq_ps(a, b) != i) abort (); if (__builtin_mips_upper_cabs_eq_ps(a, b) != j) abort (); if (__builtin_mips_lower_cabs_eq_ps(a, b) != k) abort (); if (__builtin_mips_all_cabs_eq_ps(a, b) != l) abort (); /* cabs.eq.ps */ a = (v2sf) {12, 34}; b = (v2sf) {-56, -34}; i = 1; if (little_endian) { j = 1; k = 0; } else { j = 0; k = 1; } l = 0; if (__builtin_mips_any_cabs_eq_ps(a, b) != i) abort (); if (__builtin_mips_upper_cabs_eq_ps(a, b) != j) abort (); if (__builtin_mips_lower_cabs_eq_ps(a, b) != k) abort (); if (__builtin_mips_all_cabs_eq_ps(a, b) != l) abort (); /* cabs.eq.ps */ a = (v2sf) {12, 34}; b = (v2sf) {-12, -34}; i = 1; j = 1; k = 1; l = 1; if (__builtin_mips_any_cabs_eq_ps(a, b) != i) abort (); if (__builtin_mips_upper_cabs_eq_ps(a, b) != j) abort (); if (__builtin_mips_lower_cabs_eq_ps(a, b) != k) abort (); if (__builtin_mips_all_cabs_eq_ps(a, b) != l) abort (); /* Test all comparisons */ if (little_endian) { a = (v2sf) {1984.0, 10.58}; b = (v2sf) {-1984.0, -567.345}; } else { a = (v2sf) {10.58, 1984.0}; b = (v2sf) {-567.345, -1984.0}; } i = test0 (a, b); if (i != 0) abort (); i = test1 (a, b); if (i != 0) abort (); i = test2 (a, b); if (i != 0) abort (); i = test3 (a, b); if (i != 0) abort (); i = test4 (a, b); if (i != 0) abort (); i = test5 (a, b); if (i != 0) abort (); i = test6 (a, b); if (i != 0) abort (); i = test7 (a, b); if (i != 0) abort (); i = test8 (a, b); if (i != 1) abort (); i = test9 (a, b); if (i != 0) abort (); i = test10 (a, b); if (i != 1) abort (); i = test11 (a, b); if (i != 0) abort (); i = test12 (a, b); if (i != 1) abort (); i = test13 (a, b); if (i != 0) abort (); i = test14 (a, b); if (i != 1) abort (); i = test15 (a, b); if (i != 0) abort (); i = test16 (a, b); if (i != 1) abort (); i = test17 (a, b); if (i != 1) abort (); i = test18 (a, b); if (i != 0) abort (); i = test19 (a, b); if (i != 0) abort (); i = test20 (a, b); if (i != 1) abort (); i = test21 (a, b); if (i != 1) abort (); i = test22 (a, b); if (i != 0) abort (); i = test23 (a, b); if (i != 0) abort (); i = test24 (a, b); if (i != 1) abort (); i = test25 (a, b); if (i != 1) abort (); i = test26 (a, b); if (i != 1) abort (); i = test27 (a, b); if (i != 1) abort (); i = test28 (a, b); if (i != 1) abort (); i = test29 (a, b); if (i != 1) abort (); i = test30 (a, b); if (i != 1) abort (); i = test31 (a, b); if (i != 1) abort (); i = test32 (a, b); if (i != 0) abort (); i = test33 (a, b); if (i != 0) abort (); i = test34 (a, b); if (i != 0) abort (); i = test35 (a, b); if (i != 0) abort (); i = test36 (a, b); if (i != 0) abort (); i = test37 (a, b); if (i != 0) abort (); i = test38 (a, b); if (i != 0) abort (); i = test39 (a, b); if (i != 0) abort (); i = test40 (a, b); if (i != 1) abort (); i = test41 (a, b); if (i != 0) abort (); i = test42 (a, b); if (i != 1) abort (); i = test43 (a, b); if (i != 0) abort (); i = test44 (a, b); if (i != 1) abort (); i = test45 (a, b); if (i != 0) abort (); i = test46 (a, b); if (i != 1) abort (); i = test47 (a, b); if (i != 0) abort (); i = test48 (a, b); if (i != 1) abort (); i = test49 (a, b); if (i != 1) abort (); i = test50 (a, b); if (i != 0) abort (); i = test51 (a, b); if (i != 0) abort (); i = test52 (a, b); if (i != 1) abort (); i = test53 (a, b); if (i != 1) abort (); i = test54 (a, b); if (i != 0) abort (); i = test55 (a, b); if (i != 0) abort (); i = test56 (a, b); if (i != 1) abort (); i = test57 (a, b); if (i != 1) abort (); i = test58 (a, b); if (i != 1) abort (); i = test59 (a, b); if (i != 1) abort (); i = test60 (a, b); if (i != 1) abort (); i = test61 (a, b); if (i != 1) abort (); i = test62 (a, b); if (i != 1) abort (); i = test63 (a, b); if (i != 1) abort (); /* Reverse arguments */ i = test0 (b, a); if (i != 0) abort (); i = test1 (b, a); if (i != 0) abort (); i = test2 (b, a); if (i != 0) abort (); i = test3 (b, a); if (i != 0) abort (); i = test4 (b, a); if (i != 0) abort (); i = test5 (b, a); if (i != 0) abort (); i = test6 (b, a); if (i != 0) abort (); i = test7 (b, a); if (i != 0) abort (); i = test8 (b, a); if (i != 1) abort (); i = test9 (b, a); if (i != 0) abort (); i = test10 (b, a); if (i != 1) abort (); i = test11 (b, a); if (i != 0) abort (); i = test12 (b, a); if (i != 1) abort (); i = test13 (b, a); if (i != 0) abort (); i = test14 (b, a); if (i != 1) abort (); i = test15 (b, a); if (i != 0) abort (); i = test16 (b, a); if (i != 0) abort (); i = test17 (b, a); if (i != 0) abort (); i = test18 (b, a); if (i != 0) abort (); i = test19 (b, a); if (i != 0) abort (); i = test20 (b, a); if (i != 0) abort (); i = test21 (b, a); if (i != 0) abort (); i = test22 (b, a); if (i != 0) abort (); i = test23 (b, a); if (i != 0) abort (); i = test24 (b, a); if (i != 1) abort (); i = test25 (b, a); if (i != 0) abort (); i = test26 (b, a); if (i != 1) abort (); i = test27 (b, a); if (i != 0) abort (); i = test28 (b, a); if (i != 1) abort (); i = test29 (b, a); if (i != 0) abort (); i = test30 (b, a); if (i != 1) abort (); i = test31 (b, a); if (i != 0) abort (); i = test32 (b, a); if (i != 0) abort (); i = test33 (b, a); if (i != 0) abort (); i = test34 (b, a); if (i != 0) abort (); i = test35 (b, a); if (i != 0) abort (); i = test36 (b, a); if (i != 0) abort (); i = test37 (b, a); if (i != 0) abort (); i = test38 (b, a); if (i != 0) abort (); i = test39 (b, a); if (i != 0) abort (); i = test40 (b, a); if (i != 1) abort (); i = test41 (b, a); if (i != 0) abort (); i = test42 (b, a); if (i != 1) abort (); i = test43 (b, a); if (i != 0) abort (); i = test44 (b, a); if (i != 1) abort (); i = test45 (b, a); if (i != 0) abort (); i = test46 (b, a); if (i != 1) abort (); i = test47 (b, a); if (i != 0) abort (); i = test48 (b, a); if (i != 0) abort (); i = test49 (b, a); if (i != 0) abort (); i = test50 (b, a); if (i != 0) abort (); i = test51 (b, a); if (i != 0) abort (); i = test52 (b, a); if (i != 0) abort (); i = test53 (b, a); if (i != 0) abort (); i = test54 (b, a); if (i != 0) abort (); i = test55 (b, a); if (i != 0) abort (); i = test56 (b, a); if (i != 1) abort (); i = test57 (b, a); if (i != 0) abort (); i = test58 (b, a); if (i != 1) abort (); i = test59 (b, a); if (i != 0) abort (); i = test60 (b, a); if (i != 1) abort (); i = test61 (b, a); if (i != 0) abort (); i = test62 (b, a); if (i != 1) abort (); i = test63 (b, a); if (i != 0) abort (); #ifndef __FAST_MATH__ /* Test all comparisons */ if (little_endian) { a = (v2sf) {qnan, qnan}; b = (v2sf) {-1984.0, -567.345}; } else { a = (v2sf) {qnan, qnan}; b = (v2sf) {-567.345, -1984.0}; } i = test0 (a, b); if (i != 0) abort (); i = test1 (a, b); if (i != 0) abort (); i = test2 (a, b); if (i != 0) abort (); i = test3 (a, b); if (i != 0) abort (); i = test4 (a, b); if (i != 1) abort (); i = test5 (a, b); if (i != 1) abort (); i = test6 (a, b); if (i != 1) abort (); i = test7 (a, b); if (i != 1) abort (); i = test8 (a, b); if (i != 0) abort (); i = test9 (a, b); if (i != 0) abort (); i = test10 (a, b); if (i != 0) abort (); i = test11 (a, b); if (i != 0) abort (); i = test12 (a, b); if (i != 1) abort (); i = test13 (a, b); if (i != 1) abort (); i = test14 (a, b); if (i != 1) abort (); i = test15 (a, b); if (i != 1) abort (); i = test16 (a, b); if (i != 0) abort (); i = test17 (a, b); if (i != 0) abort (); i = test18 (a, b); if (i != 0) abort (); i = test19 (a, b); if (i != 0) abort (); i = test20 (a, b); if (i != 1) abort (); i = test21 (a, b); if (i != 1) abort (); i = test22 (a, b); if (i != 1) abort (); i = test23 (a, b); if (i != 1) abort (); i = test24 (a, b); if (i != 0) abort (); i = test25 (a, b); if (i != 0) abort (); i = test26 (a, b); if (i != 0) abort (); i = test27 (a, b); if (i != 0) abort (); i = test28 (a, b); if (i != 1) abort (); i = test29 (a, b); if (i != 1) abort (); i = test30 (a, b); if (i != 1) abort (); i = test31 (a, b); if (i != 1) abort (); i = test32 (a, b); if (i != 0) abort (); i = test33 (a, b); if (i != 0) abort (); i = test34 (a, b); if (i != 0) abort (); i = test35 (a, b); if (i != 0) abort (); i = test36 (a, b); if (i != 1) abort (); i = test37 (a, b); if (i != 1) abort (); i = test38 (a, b); if (i != 1) abort (); i = test39 (a, b); if (i != 1) abort (); i = test40 (a, b); if (i != 0) abort (); i = test41 (a, b); if (i != 0) abort (); i = test42 (a, b); if (i != 0) abort (); i = test43 (a, b); if (i != 0) abort (); i = test44 (a, b); if (i != 1) abort (); i = test45 (a, b); if (i != 1) abort (); i = test46 (a, b); if (i != 1) abort (); i = test47 (a, b); if (i != 1) abort (); i = test48 (a, b); if (i != 0) abort (); i = test49 (a, b); if (i != 0) abort (); i = test50 (a, b); if (i != 0) abort (); i = test51 (a, b); if (i != 0) abort (); i = test52 (a, b); if (i != 1) abort (); i = test53 (a, b); if (i != 1) abort (); i = test54 (a, b); if (i != 1) abort (); i = test55 (a, b); if (i != 1) abort (); i = test56 (a, b); if (i != 0) abort (); i = test57 (a, b); if (i != 0) abort (); i = test58 (a, b); if (i != 0) abort (); i = test59 (a, b); if (i != 0) abort (); i = test60 (a, b); if (i != 1) abort (); i = test61 (a, b); if (i != 1) abort (); i = test62 (a, b); if (i != 1) abort (); i = test63 (a, b); if (i != 1) abort (); #endif printf ("Test Passes\n"); exit (0); }
/*!**************************************************************************** @Function main @Input argc Number of arguments @Input argv Command line arguments @Return int result code to OS @Description Main function of the program ******************************************************************************/ int main(int argc, char **argv) { int testID = 0, err; //default char *extensions; unsigned int delta; NATIVE_PIXMAP_STRUCT* pNativePixmap = NULL; /* Initialise all globals */ initialise_globals(&gTest); /* Pre init step - check the arguments */ if(argc < 11) { SGXPERF_ERR_printf("Error: Invalid number of operands \n\n"); SGXPERF_ERR_printf("%s",helpString); exit(-1); } testID = atol(argv[1]); if(testID > MAX_TEST_ID || testID < 0) { SGXPERF_ERR_printf("Error: No test available with this ID %d\n\n", testID); SGXPERF_ERR_printf("%s",helpString); exit(-1); } gTest.inNumberOfObjectsPerSide = atol(argv[7]); gTest.inSurfaceType = atol(argv[8]); if(argc < 4) { if(testID > 2) //1 and 2 do not need textures { SGXPERF_ERR_printf("Error: Invalid number of operands for selected testID %d\n\n", testID); SGXPERF_ERR_printf("%s",helpString); exit(-1); } } else { gTest.inTextureWidth = atol(argv[2]); gTest.inTextureHeight = atol(argv[3]); } gTest.inRotationEnabled = 0; //Rotation is unused in latest version if(argc >= 5) gTest.inRotationEnabled = atol(argv[4]); gTest.inPixelFormat = 0; if(argc >= 6) gTest.inPixelFormat = atol(argv[5]); if(gTest.inPixelFormat != SGXPERF_RGB565 && gTest.inPixelFormat != SGXPERF_ARGB8888 && gTest.inPixelFormat != SGXPERF_BYTE8) { SGXPERF_ERR_printf("Error: Unsupported pixel format for texture %d \n\n", gTest.inPixelFormat); SGXPERF_ERR_printf("%s",helpString); exit(-1); } //read extra params gTest.numTestIterations = atol(argv[9]); gTest.inFPS =atol(argv[10]); gTest.msToSleep = 1000/gTest.inFPS; gTest.cookie = argv[11]; if((gTest.inTextureWidth > 8000) || (gTest.inTextureHeight > 8000)) { SGXPERF_ERR_printf("Error: Width or Height exceeds 8000 \n\n"); SGXPERF_ERR_printf("%s",helpString); exit(-1); } #ifndef _ENABLE_CMEM if(testID == 6 || testID == 7 || gTest.inSurfaceType == SGXPERF_SURFACE_TYPE_PIXMAP_16 || gTest.inSurfaceType == SGXPERF_SURFACE_TYPE_PIXMAP_32) { SGXPERF_ERR_printf("ERROR: Cannot run native pixmap tests without CMEM\n"); exit(-1); } #endif #ifndef _ENABLE_BUFFERCLASS if(testID == 8) { SGXPERF_ERR_printf("ERROR: Cannot run test8 without BUFFERCLASS driver\n"); exit(-1); } #endif //for pixmap related tests, surface cannot be pixmap if(testID == 6 && gTest.inSurfaceType != SGXPERF_SURFACE_TYPE_WINDOW) { SGXPERF_ERR_printf("ERROR: Cannot run native pixmap eglimage test with pixmap surface\n"); goto cleanup; } signal(SIGINT, sgxperf_signal_handler); #ifdef _ENABLE_CMEM //Initialise the CMEM module. //CMEM ko should be inserted before this point SGXPERF_printf("Configuring CMEM\n"); CMEM_init(); #endif //Allocate texture for use in GL texturing modes(can also be done from CMEM if memory permits gTest._textureData = (unsigned int*)malloc(gTest.inTextureWidth*gTest.inTextureHeight*4 + PAGE_SIZE); if(!gTest._textureData) { SGXPERF_ERR_printf("ERROR: No malloc memory for allocating texture!\n"); goto cleanup; } delta =(PAGE_SIZE - ((unsigned int)gTest._textureData & (PAGE_SIZE-1))); gTest.textureData = (unsigned int*)((char*)gTest._textureData + delta); memset(gTest.textureData, 0, gTest.inTextureWidth*gTest.inTextureHeight*4); set_texture(gTest.inTextureWidth, gTest.inTextureHeight, (unsigned char*)gTest.textureData, gTest.inPixelFormat); //initialise egl err = common_eglinit(&gTest, testID, gTest.inSurfaceType, &pNativePixmap); if(err) { SGXPERF_ERR_printf("ERROR: eglinit - err = %d\n", err); goto cleanup; } GLuint uiFragShader, uiVertShader; // Used to hold the fragment and vertex shader handles GLuint uiProgramObject; // Used to hold the program handle (made out of the two previous shaders // Create the fragment shader object uiFragShader = glCreateShader(GL_FRAGMENT_SHADER); // Load the source code into it if((testID == 3) || (testID == 5) || (testID == 6) || (testID == 7) || (testID == 14) || (testID == 17)) glShaderSource(uiFragShader, 1, (const char**)&pszFragTextureShader, NULL); else if(testID == 11) //Edge detect with RGB input glShaderSource(uiFragShader, 1, (const char**)&pszFragEdgeRGBDetectShader, NULL); else if(testID == 12) //Edge detect with YUV input glShaderSource(uiFragShader, 1, (const char**)&pszFragEdgeYUVDetectShader, NULL); else if(testID == 8) //IMG texture stream2 glShaderSource(uiFragShader, 1, (const char**)&pszFragIMGTextureStreamShader, NULL); else if(testID == 16) //EGLImage streaming glShaderSource(uiFragShader, 1, (const char**)&pszFragEGLImageShader, NULL); else glShaderSource(uiFragShader, 1, (const char**)&pszFragNoTextureShader, NULL); // Compile the source code glCompileShader(uiFragShader); // Check if compilation succeeded GLint bShaderCompiled; glGetShaderiv(uiFragShader, GL_COMPILE_STATUS, &bShaderCompiled); if (!bShaderCompiled) { // An error happened, first retrieve the length of the log message int i32InfoLogLength, i32CharsWritten; glGetShaderiv(uiFragShader, GL_INFO_LOG_LENGTH, &i32InfoLogLength); // Allocate enough space for the message and retrieve it char* pszInfoLog = new char[i32InfoLogLength]; glGetShaderInfoLog(uiFragShader, i32InfoLogLength, &i32CharsWritten, pszInfoLog); // Displays the error SGXPERF_ERR_printf("Failed to compile fragment shader: %s\n", pszInfoLog); delete [] pszInfoLog; goto cleanup; } // Loads the vertex shader in the same way uiVertShader = glCreateShader(GL_VERTEX_SHADER); if((testID == 3) || (testID == 5) || (testID == 6) || (testID == 7) || (testID == 8) || (testID == 11) || (testID == 12) || (testID == 14) || (testID == 16) || (testID == 17)) glShaderSource(uiVertShader, 1, (const char**)&pszVertTextureShader, NULL); else { SGXPERF_ERR_printf("INFO: Using no-texture vertex shader\n"); glShaderSource(uiVertShader, 1, (const char**)&pszVertNoTextureShader, NULL); } glCompileShader(uiVertShader); glGetShaderiv(uiVertShader, GL_COMPILE_STATUS, &bShaderCompiled); if (!bShaderCompiled) { int i32InfoLogLength, i32CharsWritten; glGetShaderiv(uiVertShader, GL_INFO_LOG_LENGTH, &i32InfoLogLength); char* pszInfoLog = new char[i32InfoLogLength]; glGetShaderInfoLog(uiVertShader, i32InfoLogLength, &i32CharsWritten, pszInfoLog); SGXPERF_ERR_printf("Failed to compile vertex shader: %s\n", pszInfoLog); delete [] pszInfoLog; goto cleanup; } // Create the shader program uiProgramObject = glCreateProgram(); // Attach the fragment and vertex shaders to it glAttachShader(uiProgramObject, uiFragShader); glAttachShader(uiProgramObject, uiVertShader); // Bind the custom vertex attribute "myVertex" to location VERTEX_ARRAY glBindAttribLocation(uiProgramObject, VERTEX_ARRAY, "inVertex"); glBindAttribLocation(uiProgramObject, TEXCOORD_ARRAY, "inTexCoord"); // Link the program glLinkProgram(uiProgramObject); // Check if linking succeeded in the same way we checked for compilation success GLint bLinked; glGetProgramiv(uiProgramObject, GL_LINK_STATUS, &bLinked); if (!bLinked) { int ui32InfoLogLength, ui32CharsWritten; glGetProgramiv(uiProgramObject, GL_INFO_LOG_LENGTH, &ui32InfoLogLength); char* pszInfoLog = new char[ui32InfoLogLength]; glGetProgramInfoLog(uiProgramObject, ui32InfoLogLength, &ui32CharsWritten, pszInfoLog); SGXPERF_ERR_printf("Failed to link program: %s\n", pszInfoLog); delete [] pszInfoLog; goto cleanup; } // Actually use the created program glUseProgram(uiProgramObject); #ifdef _ENABLE_TEST16 if(testID == 16) { int sampler = glGetUniformLocation(uiProgramObject, "yuvTexSampler"); glUniform1i(sampler, 0); } #endif //set rotation variables to init gTest.matrixLocation = glGetUniformLocation(uiProgramObject, "MVPMatrix"); memset(gTest.mat_final, 0, sizeof(gTest.mat_final)); gTest.mat_final[0] = gTest.mat_final[5] = gTest.mat_final[10] = gTest.mat_final[15] = 1.0; glUniformMatrix4fv( gTest.matrixLocation, 1, GL_FALSE, gTest.mat_final); /* Set rowsize for edge detect */ if(testID == 11) { glUniform1f(glGetUniformLocation(uiProgramObject, "rowSize"), 256.0); glUniform1f(glGetUniformLocation(uiProgramObject, "columnSize"), 256.0); } else if(testID == 12) { glUniform1f(glGetUniformLocation(uiProgramObject, "rowSize"), 128.0); glUniform1f(glGetUniformLocation(uiProgramObject, "columnSize"), 160.0); } /* Set clear */ glClearColor(0.2f, 0.8f, 1.0f, 1.0f); // blueish greenish red :) glClear(GL_COLOR_BUFFER_BIT); /* Do various tests */ switch(testID) { case 0: extensions = (char*)glGetString(GL_EXTENSIONS); SGXPERF_ERR_printf("\nTESTID = 0: GL SUPPORTED EXTENSIONS = \n%s\n", extensions); extensions = (char*)eglQueryString(gTest.eglDisplay, EGL_EXTENSIONS); SGXPERF_ERR_printf("\nTESTID = 0: EGL SUPPORTED EXTENSIONS = \n%s\n", extensions); break; case 1: /* Fill entire screen with single colour, no objects */ test1(&gTest); break; case 2: /* Draw a coloured rectangle filling entire screen */ test2(&gTest); break; case 3: /* Move a coloured rectangle of half screen size to another half with same parameters */ test3(&gTest); break; case 4: /* Alpha blending full surface texture */ test4(&gTest); break; case 5: /* Alpha blending full surface WITHOUT texture */ test5(&gTest); break; case 8: #ifdef _ENABLE_TEST8 /* GL_IMG_texture_stream */ test8(&gTest); #endif break; case 10: /* PVR2D test */ test10(&gTest); break; case 11: /* Edge detection test - test3 with new shader */ test3(&gTest); break; #ifdef _ENABLE_TEST8 case 12: /* Edge detection test - test8 with new shader */ test8(&gTest); break; #endif case 13: /* Line drawing */ test13(&gTest); break; #ifdef _ENABLE_TEST14 case 14: /* Context Switch */ test14(&gTest); break; #endif #ifdef _ENABLE_TEST15 case 15: /* YUV-RGB conversion with PVR2D */ test15(&gTest); break; #endif #ifdef _ENABLE_TEST16 case 16: /* YUV-Streaming with EGLImage */ test16(&gTest); break; #endif #ifdef _ENABLE_TEST17 case 17: /* FBO */ test17(&gTest); break; #endif default: /* Sorry guys, we tried ! */ SGXPERF_ERR_printf("No matching test code\n"); break; } #ifdef _ENABLE_CMEM /* PIXMAP loopback test */ if(gTest.inSurfaceType == SGXPERF_SURFACE_TYPE_PIXMAP_16 || gTest.inSurfaceType == SGXPERF_SURFACE_TYPE_PIXMAP_32) { #if 1 /* Use this for checking out the output in the pixmap */ /* For DEBUGGING ONLY */ FILE *fp = fopen("pixmap.raw", "wb"); int numbytes; if(gTest.inSurfaceType == SGXPERF_SURFACE_TYPE_PIXMAP_32) numbytes = 4; //ARGB8888 if(gTest.inSurfaceType == SGXPERF_SURFACE_TYPE_PIXMAP_16) numbytes = 2; //RGB565 SGXPERF_ERR_printf("Writing pixmap data to file pixmap.raw\n"); fwrite((void*)pNativePixmap->lAddress, 1, gTest.inTextureWidth*gTest.inTextureHeight*numbytes, fp); fclose(fp); #endif } #endif //CMEM needed for pixmap loopback // Frees the OpenGL handles for the program and the 2 shaders glDeleteProgram(uiProgramObject); glDeleteShader(uiFragShader); glDeleteShader(uiVertShader); cleanup: if(gTest._textureData) free(gTest._textureData); common_egldeinit(&gTest, testID, pNativePixmap); #ifdef _ENABLE_CMEM CMEM_exit(); #endif return 0; }
NOMIPS16 int main () { v2sf a, b, c, d, e, f; /* Case 1 {diff, diff} */ /* movt.ps */ a = (v2sf) {5, 12}; b = (v2sf) {-7, -6}; c = (v2sf) {33, 123}; d = (v2sf) {8, 78}; e = __builtin_mips_movt_cabs_eq_ps (a, b, c, d); f = (v2sf) {33, 123}; if (!__builtin_mips_all_c_eq_ps (e, f)) abort (); /* movf.ps */ e = __builtin_mips_movf_cabs_eq_ps (a, b, c, d); f = (v2sf) {8, 78}; if (!__builtin_mips_all_c_eq_ps (e, f)) abort (); /* Case 2 {same, diff} */ /* movt.ps */ a = (v2sf) {5, 12}; b = (v2sf) {-5, -6}; c = (v2sf) {33, 123}; d = (v2sf) {8, 78}; e = __builtin_mips_movt_cabs_eq_ps (a, b, c, d); f = (v2sf) {8, 123}; if (!__builtin_mips_all_c_eq_ps (e, f)) abort (); /* movf.ps */ e = __builtin_mips_movf_cabs_eq_ps (a, b, c, d); f = (v2sf) {33, 78}; if (!__builtin_mips_all_c_eq_ps (e, f)) abort (); /* Case 3 {diff, same} */ /* movt.ps */ a = (v2sf) {5, 12}; b = (v2sf) {-9, -12}; c = (v2sf) {33, 123}; d = (v2sf) {8, 78}; e = __builtin_mips_movt_cabs_eq_ps (a, b, c, d); f = (v2sf) {33, 78}; if (!__builtin_mips_all_c_eq_ps (e, f)) abort (); /* movf.ps */ e = __builtin_mips_movf_cabs_eq_ps (a, b, c, d); f = (v2sf) {8, 123}; if (!__builtin_mips_all_c_eq_ps (e, f)) abort (); /* Case 4 {same, same} */ /* movt.ps */ a = (v2sf) {5, 12}; b = (v2sf) {-5, -12}; c = (v2sf) {33, 123}; d = (v2sf) {8, 78}; e = __builtin_mips_movt_cabs_eq_ps (a, b, c, d); f = (v2sf) {8, 78}; if (!__builtin_mips_all_c_eq_ps (e, f)) abort (); /* movf.ps */ e = __builtin_mips_movf_cabs_eq_ps (a, b, c, d); f = (v2sf) {33, 123}; if (!__builtin_mips_all_c_eq_ps (e, f)) abort (); /* Test all 16 operators */ a = (v2sf) {-123, 123}; b = (v2sf) {1000, -1000}; c = (v2sf) {-33, 123}; d = (v2sf) {8, -78}; e = test0 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test1 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test2 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test3 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test4 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test5 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test6 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test7 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test8 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test9 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test10 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test11 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test12 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test13 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test14 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test15 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test16 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test17 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test18 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test19 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test20 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test21 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test22 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test23 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test24 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test25 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test26 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test27 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test28 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test29 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test30 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test31 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); /* Reversed arguments */ e = test0 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test1 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test2 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test3 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test4 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test5 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test6 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test7 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test8 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test9 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test10 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test11 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test12 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test13 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test14 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test15 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test16 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test17 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test18 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test19 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test20 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test21 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test22 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test23 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test24 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test25 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test26 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test27 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test28 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test29 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test30 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test31 (b, a, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); #ifndef __FAST_MATH__ /* Test all 16 operators */ a = (v2sf) {qnan, qnan}; b = (v2sf) {1000, -1000}; c = (v2sf) {8, -78}; d = (v2sf) {-33, 123}; e = test0 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test1 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test2 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test3 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test4 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test5 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test6 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test7 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test8 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test9 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test10 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test11 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test12 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test13 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test14 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test15 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test16 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test17 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test18 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test19 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test20 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test21 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test22 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test23 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test24 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test25 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test26 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test27 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test28 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); e = test29 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test30 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, d)) abort (); e = test31 (a, b, c, d); if (!__builtin_mips_all_c_eq_ps (e, c)) abort (); #endif printf ("Test Passes\n"); exit (0); }