diff options
author | wschmidt <wschmidt@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-09-02 19:31:47 +0000 |
---|---|---|
committer | wschmidt <wschmidt@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-09-02 19:31:47 +0000 |
commit | c4de79b608465ea31bd920224bd7fdff2deeaecf (patch) | |
tree | 87d4cbb1d8d6767a5af7c52d897c5a7f5bc64527 /gcc/testsuite/gcc.target/powerpc | |
parent | 45293dfdbbd53d3b756c385603bc84f2266f168c (diff) |
[gcc]
2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
built-in definition.
(XVCVUXDDP_SCALE): Likewise.
(XVCVDPSXDS_SCALE): Likewise.
(XVCVDPUXDS_SCALE): Likewise.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
VSX_BUILTIN_XVCVDPUXDS_SCALE.
* config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
prototype.
* config/rs6000/rs6000.c (real.h): New include.
(rs6000_scale_v2df): New function.
* config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
(UNSPEC_VSX_XVCVUXDDP): Likewise.
(UNSPEC_VSX_XVCVDPSXDS): Likewise.
(UNSPEC_VSX_XVCVDPUXDS): Likewise.
(vsx_xvcvsxddp_scale): New define_expand.
(vsx_xvcvsxddp): New define_insn.
(vsx_xvcvuxddp_scale): New define_expand.
(vsx_xvcvuxddp): New define_insn.
(vsx_xvcvdpsxds_scale): New define_expand.
(vsx_xvcvdpsxds): New define_insn.
(vsx_xvcvdpuxds_scale): New define_expand.
(vsx_xvcvdpuxds): New define_insn.
* doc/extend.texi (vec_ctf): Add new prototypes.
(vec_cts): Likewise.
(vec_ctu): Likewise.
(vec_splat): Likewise.
(vec_div): Likewise.
(vec_mul): Likewise.
[gcc/testsuite]
2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/builtins-1.c: Add tests for vec_ctf,
vec_cts, and vec_ctu.
* gcc.target/powerpc/builtins-2.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214831 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.target/powerpc')
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/builtins-1.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/builtins-2.c | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-1.c b/gcc/testsuite/gcc.target/powerpc/builtins-1.c index 0674d9732a5..3da714698d6 100644 --- a/gcc/testsuite/gcc.target/powerpc/builtins-1.c +++ b/gcc/testsuite/gcc.target/powerpc/builtins-1.c @@ -157,5 +157,10 @@ int main () vector long long l8 = vec_mul (l3, l4); vector unsigned long long u6 = vec_mul (u3, u4); + vector double dh = vec_ctf (la, -2); + vector double di = vec_ctf (ua, 2); + vector long long l9 = vec_cts (dh, -2); + vector unsigned long long u7 = vec_ctu (di, 2); + return 0; } diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-2.c b/gcc/testsuite/gcc.target/powerpc/builtins-2.c index 853e2a93d2d..7f4a3924efd 100644 --- a/gcc/testsuite/gcc.target/powerpc/builtins-2.c +++ b/gcc/testsuite/gcc.target/powerpc/builtins-2.c @@ -34,5 +34,14 @@ int main () || ue[0] != 27L || ue[1] != 27L || uf[0] != 14L || uf[1] != 14L) abort (); + vector double da = vec_ctf (sa, -2); + vector double db = vec_ctf (ua, 2); + vector long long sg = vec_cts (da, -2); + vector unsigned long long ug = vec_ctu (db, 2); + + if (da[0] != 108.0 || da[1] != -56.0 || db[0] != 6.75 || db[1] != 3.5 + || sg[0] != 27L || sg[1] != -14L || ug[0] != 27L || ug[1] != 14L) + abort (); + return 0; } |