summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/rs6000-c.c
diff options
context:
space:
mode:
authorcarll <carll@138bc75d-0d04-0410-961f-82ee72b054a4>2017-06-29 15:39:57 +0000
committercarll <carll@138bc75d-0d04-0410-961f-82ee72b054a4>2017-06-29 15:39:57 +0000
commitee9f137292520469165dd7a62fe60c03d15b482d (patch)
tree82cba1c196681466f4224a133e283111b09c4090 /gcc/config/rs6000/rs6000-c.c
parentb56115acaa9e5911e4dc2cb6689839685e8e1d21 (diff)
downloadgcc-ee9f137292520469165dd7a62fe60c03d15b482d.tar.gz
gcc/ChangeLog:
2017-06-29 Carl Love <cel@us.ibm.com> * config/rs6000/rs6000-c.c: Add support for built-in functions vector signed int vec_signed (vector float); vector signed long long vec_signed (vector double); vector signed int vec_signed2 (vector double, vector double); vector signed int vec_signede (vector double); vector signed int vec_signedo (vector double); * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add instruction generator. * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS, UNSPEC_VSX_VSIGNED2): Add UNSPECS. (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df): Add define_insn. (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands. * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED, VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO, VEC_UNSIGNEDO): Add definitions. * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS, UNSPEC_VSX_VSIGNED2): Add UNSPECs. (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn. (vsigned2_v2df, vsigendo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands. * config/rs6000/altivec.h (vec_signed, vec_signed2, vec_signede and vec_signedo, vec_unsigned, vec_unsigned2, vec_unsignede, vec_unsignedo): Add builtin defines. * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern declaration. * doc/extend.texi: Update the built-in documentation file for the new built-in functions. gcc/testsuite/ChangeLog: 2017-06-29 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/builtins-3-runnable.c (test_int_result, test_unsigned_int_result, test_ll_int_result, test_ll_unsigned_int_result): Add result checking functions, add debug support. (main): Add builtin function tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@249798 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/rs6000-c.c')
-rw-r--r--gcc/config/rs6000/rs6000-c.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c
index fdf18fda553..6293308ede0 100644
--- a/gcc/config/rs6000/rs6000-c.c
+++ b/gcc/config/rs6000/rs6000-c.c
@@ -5550,6 +5550,29 @@ const struct altivec_builtin_types altivec_overloaded_builtins[] = {
{ ALTIVEC_BUILTIN_VEC_VREVE, ALTIVEC_BUILTIN_VREVE_V16QI,
RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, 0, 0 },
+ { VSX_BUILTIN_VEC_VSIGNED, VSX_BUILTIN_VEC_VSIGNED_V4SF,
+ RS6000_BTI_V4SI, RS6000_BTI_V4SF, 0, 0 },
+ { VSX_BUILTIN_VEC_VSIGNED, VSX_BUILTIN_VEC_VSIGNED_V2DF,
+ RS6000_BTI_V2DI, RS6000_BTI_V2DF, 0, 0 },
+ { VSX_BUILTIN_VEC_VSIGNEDE, VSX_BUILTIN_VEC_VSIGNEDE_V2DF,
+ RS6000_BTI_V4SI, RS6000_BTI_V2DF, 0, 0 },
+ { VSX_BUILTIN_VEC_VSIGNEDO, VSX_BUILTIN_VEC_VSIGNEDO_V2DF,
+ RS6000_BTI_V4SI, RS6000_BTI_V2DF, 0, 0 },
+ { VSX_BUILTIN_VEC_VSIGNED2, VSX_BUILTIN_VEC_VSIGNED2_V2DF,
+ RS6000_BTI_V4SI, RS6000_BTI_V2DF, RS6000_BTI_V2DF, 0 },
+
+ { VSX_BUILTIN_VEC_VUNSIGNED, VSX_BUILTIN_VEC_VUNSIGNED_V4SF,
+ RS6000_BTI_unsigned_V4SI, RS6000_BTI_V4SF, 0, 0 },
+ { VSX_BUILTIN_VEC_VUNSIGNED, VSX_BUILTIN_VEC_VUNSIGNED_V2DF,
+ RS6000_BTI_unsigned_V2DI, RS6000_BTI_V2DF, 0, 0 },
+ { VSX_BUILTIN_VEC_VUNSIGNEDE, VSX_BUILTIN_VEC_VUNSIGNEDE_V2DF,
+ RS6000_BTI_unsigned_V4SI, RS6000_BTI_V2DF, 0, 0 },
+ { VSX_BUILTIN_VEC_VUNSIGNEDO, VSX_BUILTIN_VEC_VUNSIGNEDO_V2DF,
+ RS6000_BTI_unsigned_V4SI, RS6000_BTI_V2DF, 0, 0 },
+ { VSX_BUILTIN_VEC_VUNSIGNED2, VSX_BUILTIN_VEC_VUNSIGNED2_V2DF,
+ RS6000_BTI_unsigned_V4SI, RS6000_BTI_V2DF,
+ RS6000_BTI_V2DF, 0 },
+
/* Crypto builtins. */
{ CRYPTO_BUILTIN_VPERMXOR, CRYPTO_BUILTIN_VPERMXOR_V16QI,
RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI,