diff options
author | Carl Love <cel@us.ibm.com> | 2018-06-28 19:45:07 +0000 |
---|---|---|
committer | Carl Love <carll@gcc.gnu.org> | 2018-06-28 19:45:07 +0000 |
commit | 02fa47a905c1e06a5490032cc4bd4f733f4a0453 (patch) | |
tree | 11b4a5baf84587b2de21fa211474b5b9df3d38b9 | |
parent | 81c8283fb6fe366ce6b1615cf3d05427e2f91d14 (diff) | |
download | gcc-02fa47a905c1e06a5490032cc4bd4f733f4a0453.zip gcc-02fa47a905c1e06a5490032cc4bd4f733f4a0453.tar.gz gcc-02fa47a905c1e06a5490032cc4bd4f733f4a0453.tar.bz2 |
p9-extract-1.c: Add test case.
gcc/testsuite/ChangeLog:
2018-06-28 Carl Love <cel@us.ibm.com>
* gcc.target/p9-extract-1.c: Add test case.
* gcc.target/builtins-3-p9-runnable.c: Add test case to match
name in ABI.
From-SVN: r262230
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c | 42 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/p9-extract-1.c | 8 |
3 files changed, 56 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 197a468..58860c7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2018-06-28 Carl Love <cel@us.ibm.com> + + * gcc.target/p9-extract-1.c: Add test case. + * gcc.target/builtins-3-p9-runnable.c: Add test case to match + name in ABI. + 2018-06-28 Uros Bizjak <ubizjak@gmail.com> PR target/86348 diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c b/gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c index 3197a50..35a81a7 100644 --- a/gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c +++ b/gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c @@ -30,6 +30,48 @@ int main() { printf (" 0B011110100000000, 0B1011010000000000};\n\n"); #endif + /* The ABI lists the builtins as: + + vec_extract_fp32_from_shorth() + vec_extract_fp32_from_shortl() + + GCC will also accept and map the builtin names + + vec_extract_fp_from_shorth() + vec_extract_fp_from_shortl() + + to the same builtins internally. For completeness, + test both builtin function names. */ + + vfexpt = (vector float){1.0, -2.0, 0.0, 8.5}; + vfr = vec_extract_fp32_from_shorth(vusha); + +#ifdef DEBUG + printf ("vec_extract_fp32_from_shorth\n"); + for (i=0; i<4; i++) + printf("result[%d] = %f; expected[%d] = %f\n", + i, vfr[i], i, vfexpt[i]); +#endif + + for (i=0; i<4; i++) { + if (vfr[i] != vfexpt[i]) + abort(); + } + + vfexpt = (vector float){1.5, 0.5, 1.25, -0.25}; + vfr = vec_extract_fp32_from_shortl(vusha); + +#ifdef DEBUG + printf ("\nvec_extract_fp32_from_shortl\n"); + for (i=0; i<4; i++) + printf("result[%d] = %f; expected[%d] = %f\n", + i, vfr[i], i, vfexpt[i]); +#endif + + for (i=0; i<4; i++) { + if (vfr[i] != vfexpt[i]) + abort(); + } vfexpt = (vector float){1.0, -2.0, 0.0, 8.5}; vfr = vec_extract_fp_from_shorth(vusha); diff --git a/gcc/testsuite/gcc.target/powerpc/p9-extract-1.c b/gcc/testsuite/gcc.target/powerpc/p9-extract-1.c index ab9e766..203f5bf 100644 --- a/gcc/testsuite/gcc.target/powerpc/p9-extract-1.c +++ b/gcc/testsuite/gcc.target/powerpc/p9-extract-1.c @@ -122,6 +122,14 @@ extract_bool_int_0 (vector bool int a) return b; } +unsigned short int +extract_bool_short_int_0 (vector bool short int a) +{ + int c = 0; + unsigned short int b = vec_extract (a, c); + return b; +} + /* { dg-final { scan-assembler "vextub\[lr\]x " } } */ /* { dg-final { scan-assembler "vextuh\[lr\]x " } } */ /* { dg-final { scan-assembler "vextuw\[lr\]x " } } */ |