From fa2faaa80708b671806849a40bcabff3eb5a1a1e Mon Sep 17 00:00:00 2001 From: Carl Love Date: Mon, 12 Feb 2018 17:21:28 +0000 Subject: [PATCH] builtins-4-runnable.c (main): Move int128 and uint128 tests to new testfile. gcc/testsuite/ChangeLog: 2018-02-12 Carl Love * gcc.target/powerpc/builtins-4-runnable.c (main): Move int128 and uint128 tests to new testfile. * gcc.target/powerpc/builtins-4-int128-runnable.c: New testfile for int128 and uint128 tests. * gcc.target/powerpc/powerpc.exp: Add builtins-4-int128-runnable.c to list of torture tests. From-SVN: r257591 --- gcc/testsuite/ChangeLog | 9 ++ .../powerpc/builtins-4-int128-runnable.c | 109 ++++++++++++++++++ .../gcc.target/powerpc/builtins-4-runnable.c | 84 -------------- gcc/testsuite/gcc.target/powerpc/powerpc.exp | 1 + 4 files changed, 119 insertions(+), 84 deletions(-) create mode 100644 gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c4ae3e34ab6..dba0bedb7cf 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2018-02-12 Carl Love + + * gcc.target/powerpc/builtins-4-runnable.c (main): Move int128 and + uint128 tests to new testfile. + * gcc.target/powerpc/builtins-4-int128-runnable.c: New testfile for + int128 and uint128 tests. + * gcc.target/powerpc/powerpc.exp: Add builtins-4-int128-runnable.c to + list of torture tests. + 2018-02-12 Janus Weil PR fortran/84273 diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c b/gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c new file mode 100644 index 00000000000..162e26781a9 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c @@ -0,0 +1,109 @@ +/* { dg-do run } */ +/* { dg-require-effective-target int128 } */ +/* { dg-require-effective-target vsx_hw } */ +/* { dg-options "-maltivec -mvsx" } */ + +#include +#include // vector + +#ifdef DEBUG +#include +#endif + +void abort (void); + +int main() { + int i; + __uint128_t data_u128[100]; + __int128_t data_128[100]; + + vector __int128_t vec_128_expected1, vec_128_result1; + vector __uint128_t vec_u128_expected1, vec_u128_result1; + signed long long zero = (signed long long) 0; + + for (i = 0; i < 100; i++) + { + data_128[i] = i + 12800000; + data_u128[i] = i + 12800001; + } + + /* vec_xl() tests */ + + vec_128_expected1 = (vector __int128_t){12800000}; + vec_128_result1 = vec_xl (zero, data_128); + + if (vec_128_expected1[0] != vec_128_result1[0]) + { +#ifdef DEBUG + printf("Error: vec_xl(), vec_128_result1[0] = %lld %llu; ", + vec_128_result1[0] >> 64, + vec_128_result1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); + printf("vec_128_expected1[0] = %lld %llu\n", + vec_128_expected1[0] >> 64, + vec_128_expected1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); +#else + abort (); +#endif + } + + vec_u128_result1 = vec_xl (zero, data_u128); + vec_u128_expected1 = (vector __uint128_t){12800001}; + if (vec_u128_expected1[0] != vec_u128_result1[0]) + { +#ifdef DEBUG + printf("Error: vec_xl(), vec_u128_result1[0] = %lld; ", + vec_u128_result1[0] >> 64, + vec_u128_result1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); + printf("vec_u128_expected1[0] = %lld\n", + vec_u128_expected1[0] >> 64, + vec_u128_expected1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); +#else + abort (); +#endif + } + + /* vec_xl_be() tests */ + + vec_128_result1 = vec_xl_be (zero, data_128); +#ifdef __BIG_ENDIAN__ + vec_128_expected1 = (vector __int128_t){ (__int128_t)12800000 }; +#else + vec_128_expected1 = (vector __int128_t){ (__int128_t)12800000 }; +#endif + + if (vec_128_expected1[0] != vec_128_result1[0]) + { +#ifdef DEBUG + printf("Error: vec_xl_be(), vec_128_result1[0] = %llu %llu;", + vec_128_result1[0] >> 64, + vec_128_result1[0] & 0xFFFFFFFFFFFFFFFF); + printf(" vec_128_expected1[0] = %llu %llu\n", + vec_128_expected1[0] >> 64, + vec_128_expected1[0] & 0xFFFFFFFFFFFFFFFF); +#else + abort (); +#endif + } + +#ifdef __BIG_ENDIAN__ + vec_u128_expected1 = (vector __uint128_t){ (__uint128_t)12800001 }; +#else + vec_u128_expected1 = (vector __uint128_t){ (__uint128_t)12800001 }; +#endif + + vec_u128_result1 = vec_xl_be (zero, data_u128); + + if (vec_u128_expected1[0] != vec_u128_result1[0]) + { +#ifdef DEBUG + printf("Error: vec_xl_be(), vec_u128_result1[0] = %llu %llu;", + vec_u128_result1[0] >> 64, + vec_u128_result1[0] & 0xFFFFFFFFFFFFFFFF); + printf(" vec_u128_expected1[0] = %llu %llu\n", + vec_u128_expected1[0] >> 64, + vec_u128_expected1[0] & 0xFFFFFFFFFFFFFFFF); +#else + abort (); +#endif + } +} diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-4-runnable.c b/gcc/testsuite/gcc.target/powerpc/builtins-4-runnable.c index de9b916de17..35884b5b848 100644 --- a/gcc/testsuite/gcc.target/powerpc/builtins-4-runnable.c +++ b/gcc/testsuite/gcc.target/powerpc/builtins-4-runnable.c @@ -27,9 +27,6 @@ int main() { float data_f[100]; double data_d[100]; - __uint128_t data_u128[100]; - __int128_t data_128[100]; - signed long long disp; vector signed char vec_c_expected1, vec_c_expected2, vec_c_result1, vec_c_result2; @@ -47,8 +44,6 @@ int main() { vec_sll_result1, vec_sll_result2; vector unsigned long long vec_ull_expected1, vec_ull_expected2, vec_ull_result1, vec_ull_result2; - vector __int128_t vec_128_expected1, vec_128_result1; - vector __uint128_t vec_u128_expected1, vec_u128_result1; vector float vec_f_expected1, vec_f_expected2, vec_f_result1, vec_f_result2; vector double vec_d_expected1, vec_d_expected2, vec_d_result1, vec_d_result2; char buf[20]; @@ -66,8 +61,6 @@ int main() { data_ull[i] = i+1001; data_f[i] = i+100000.0; data_d[i] = i+1000000.0; - data_128[i] = i + 12800000; - data_u128[i] = i + 12800001; } // vec_xl() tests @@ -319,39 +312,6 @@ int main() { #endif } - vec_128_expected1 = (vector __int128_t){12800000}; - vec_128_result1 = vec_xl (zero, data_128); - - if (vec_128_expected1[0] != vec_128_result1[0]) - { -#ifdef DEBUG - printf("Error: vec_xl(), vec_128_result1[0] = %lld %llu; ", - vec_128_result1[0] >> 64, - vec_128_result1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); - printf("vec_128_expected1[0] = %lld %llu\n", - vec_128_expected1[0] >> 64, - vec_128_expected1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); -#else - abort (); -#endif - } - - vec_u128_result1 = vec_xl (zero, data_u128); - vec_u128_expected1 = (vector __uint128_t){12800001}; - if (vec_u128_expected1[0] != vec_u128_result1[0]) - { -#ifdef DEBUG - printf("Error: vec_xl(), vec_u128_result1[0] = %lld; ", - vec_u128_result1[0] >> 64, - vec_u128_result1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); - printf("vec_u128_expected1[0] = %lld\n", - vec_u128_expected1[0] >> 64, - vec_u128_expected1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); -#else - abort (); -#endif - } - // vec_xl_be() tests disp = 1; #ifdef __BIG_ENDIAN__ @@ -708,50 +668,6 @@ int main() { i, vec_d_result2[i], i, vec_d_expected2[i]); #else abort (); -#endif - } - - disp = 0; - vec_128_result1 = vec_xl_be (zero, data_128); -#ifdef __BIG_ENDIAN__ - vec_128_expected1 = (vector __int128_t){ (__int128_t)12800000 }; -#else - vec_128_expected1 = (vector __int128_t){ (__int128_t)12800000 }; -#endif - - if (vec_128_expected1[0] != vec_128_result1[0]) - { -#ifdef DEBUG - printf("Error: vec_xl_be(), vec_128_result1[0] = %llu %llu;", - vec_128_result1[0] >> 64, - vec_128_result1[0] & 0xFFFFFFFFFFFFFFFF); - printf(" vec_128_expected1[0] = %llu %llu\n", - vec_128_expected1[0] >> 64, - vec_128_expected1[0] & 0xFFFFFFFFFFFFFFFF); -#else - abort (); -#endif - } - -#ifdef __BIG_ENDIAN__ - vec_u128_expected1 = (vector __uint128_t){ (__uint128_t)12800001 }; -#else - vec_u128_expected1 = (vector __uint128_t){ (__uint128_t)12800001 }; -#endif - - vec_u128_result1 = vec_xl_be (zero, data_u128); - - if (vec_u128_expected1[0] != vec_u128_result1[0]) - { -#ifdef DEBUG - printf("Error: vec_xl_be(), vec_u128_result1[0] = %llu %llu;", - vec_u128_result1[0] >> 64, - vec_u128_result1[0] & 0xFFFFFFFFFFFFFFFF); - printf(" vec_u128_expected1[0] = %llu %llu\n", - vec_u128_expected1[0] >> 64, - vec_u128_expected1[0] & 0xFFFFFFFFFFFFFFFF); -#else - abort (); #endif } } diff --git a/gcc/testsuite/gcc.target/powerpc/powerpc.exp b/gcc/testsuite/gcc.target/powerpc/powerpc.exp index 148acb1a188..fdb3e931d71 100644 --- a/gcc/testsuite/gcc.target/powerpc/powerpc.exp +++ b/gcc/testsuite/gcc.target/powerpc/powerpc.exp @@ -54,6 +54,7 @@ torture-init # Test load/store builtins at multiple optimizations set-torture-options [list -O0 -Os -O1 -O2 -O3] gcc-dg-runtest [list $srcdir/$subdir/builtins-4-runnable.c \ + $srcdir/$subdir/builtins-4-int128-runnable.c \ $srcdir/$subdir/builtins-6-runnable.c \ $srcdir/$subdir/builtins-5-p9-runnable.c \ $srcdir/$subdir/builtins-6-p9-runnable.c] "" $DEFAULT_CFLAGS -- 2.30.2