diff options
author | Carl Love <cel@us.ibm.com> | 2016-12-13 16:18:36 +0000 |
---|---|---|
committer | Carl Love <carll@gcc.gnu.org> | 2016-12-13 16:18:36 +0000 |
commit | b37a5b979a275375322787973b7d6fb620a71ccf (patch) | |
tree | 3881e42ade1d1dc193d8fc5fc77126ddc6c27b97 /gcc/config | |
parent | 2f75d6ebf81833cac96596108c2d56d0c6cdb2a0 (diff) | |
download | gcc-b37a5b979a275375322787973b7d6fb620a71ccf.zip gcc-b37a5b979a275375322787973b7d6fb620a71ccf.tar.gz gcc-b37a5b979a275375322787973b7d6fb620a71ccf.tar.bz2 |
rs6000-c.c: Add built-in support for vector float vec_pack (vector double...
gcc/ChangeLog:
2016-12-13 Carl Love <cel@us.ibm.com>
* config/rs6000/rs6000-c.c: Add built-in support for
vector float vec_pack (vector double, vector double)
vector double vec_sld (vector double, vector double)
* config/rs6000/rs6000.c: Add icode check for vsldoi_v2df to allow
4-bit unsigned literal.
* config/rs6000/rs6000-builtin.def: Add definition for VSLDOI_2DF
* doc/extend.texi: Update the built-in documentation file for the
new powerpc vec_pack and vec_sld built-ins.
gcc/testsuite/ChangeLog:
2016-12-13 Carl Love <cel@us.ibm.com>
* gcc.target/powerpc/builtins-3.c: Add new test of the test suite
file.
* gcc.target/powerpc/builtins-3-p8.c: Add new test of the test suite
file.
From-SVN: r243612
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/rs6000/rs6000-builtin.def | 1 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000-c.c | 4 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 1 |
3 files changed, 6 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000-builtin.def b/gcc/config/rs6000/rs6000-builtin.def index d21f275..68f0936 100644 --- a/gcc/config/rs6000/rs6000-builtin.def +++ b/gcc/config/rs6000/rs6000-builtin.def @@ -958,6 +958,7 @@ BU_ALTIVEC_3 (VSLDOI_16QI, "vsldoi_16qi", CONST, altivec_vsldoi_v16qi) BU_ALTIVEC_3 (VSLDOI_8HI, "vsldoi_8hi", CONST, altivec_vsldoi_v8hi) BU_ALTIVEC_3 (VSLDOI_4SI, "vsldoi_4si", CONST, altivec_vsldoi_v4si) BU_ALTIVEC_3 (VSLDOI_4SF, "vsldoi_4sf", CONST, altivec_vsldoi_v4sf) +BU_ALTIVEC_3 (VSLDOI_2DF, "vsldoi_2df", CONST, altivec_vsldoi_v2df) /* Altivec DST builtins. */ BU_ALTIVEC_D (DST, "dst", MISC, altivec_dst) diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c index 4f332d7..bf01a11 100644 --- a/gcc/config/rs6000/rs6000-c.c +++ b/gcc/config/rs6000/rs6000-c.c @@ -2118,6 +2118,8 @@ const struct altivec_builtin_types altivec_overloaded_builtins[] = { RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V2DI, 0 }, { ALTIVEC_BUILTIN_VEC_PACK, P8V_BUILTIN_VPKUDUM, RS6000_BTI_bool_V4SI, RS6000_BTI_bool_V2DI, RS6000_BTI_bool_V2DI, 0 }, + { ALTIVEC_BUILTIN_VEC_PACK, P8V_BUILTIN_VPKUDUM, + RS6000_BTI_V4SF, RS6000_BTI_V2DF, RS6000_BTI_V2DF, 0 }, { ALTIVEC_BUILTIN_VEC_VPKUWUM, ALTIVEC_BUILTIN_VPKUWUM, RS6000_BTI_V8HI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 }, { ALTIVEC_BUILTIN_VEC_VPKUWUM, ALTIVEC_BUILTIN_VPKUWUM, @@ -3193,6 +3195,8 @@ const struct altivec_builtin_types altivec_overloaded_builtins[] = { RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_NOT_OPAQUE }, { ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VSLDOI_16QI, RS6000_BTI_bool_V16QI, RS6000_BTI_bool_V16QI, RS6000_BTI_bool_V16QI, RS6000_BTI_NOT_OPAQUE }, + { ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VSLDOI_2DF, + RS6000_BTI_V2DF, RS6000_BTI_V2DF, RS6000_BTI_V2DF, RS6000_BTI_NOT_OPAQUE }, { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V2DF, RS6000_BTI_void, RS6000_BTI_V2DF, RS6000_BTI_INTSI, ~RS6000_BTI_V2DF }, { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V2DI, diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 6aa8436..27bae71 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -15105,6 +15105,7 @@ rs6000_expand_ternop_builtin (enum insn_code icode, tree exp, rtx target) with identical values. We'd never reach here at runtime in this case. */ if (icode == CODE_FOR_altivec_vsldoi_v4sf + || icode == CODE_FOR_altivec_vsldoi_v2df || icode == CODE_FOR_altivec_vsldoi_v4si || icode == CODE_FOR_altivec_vsldoi_v8hi || icode == CODE_FOR_altivec_vsldoi_v16qi) |