builtins-4-runnable.c (main): Move int128 and uint128 tests to new testfile.
gcc/testsuite/ChangeLog: 2018-02-12 Carl Love <cel@us.ibm.com> * 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
This commit is contained in:
parent
24abcc441a
commit
fa2faaa807
4 changed files with 119 additions and 84 deletions
|
@ -1,3 +1,12 @@
|
|||
2018-02-12 Carl Love <cel@us.ibm.com>
|
||||
|
||||
* 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 <janus@gcc.gnu.org>
|
||||
|
||||
PR fortran/84273
|
||||
|
|
109
gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c
Normal file
109
gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c
Normal file
|
@ -0,0 +1,109 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target int128 } */
|
||||
/* { dg-require-effective-target vsx_hw } */
|
||||
/* { dg-options "-maltivec -mvsx" } */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <altivec.h> // vector
|
||||
|
||||
#ifdef DEBUG
|
||||
#include <stdio.h>
|
||||
#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
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue