diff options
author | Kewen Lin <linkw@gcc.gnu.org> | 2019-11-08 07:37:07 +0000 |
---|---|---|
committer | Kewen Lin <linkw@gcc.gnu.org> | 2019-11-08 07:37:07 +0000 |
commit | bc5b2b688150f96bd2b75aa1b7fc4d9d53712955 (patch) | |
tree | 72c6939503d3634fa7879b4050366ec2b89ce287 /gcc/fortran/trans-expr.c | |
parent | 1aeecaf58fa1fb33a08fba9b62f007740e9cb843 (diff) | |
download | gcc-bc5b2b688150f96bd2b75aa1b7fc4d9d53712955.zip gcc-bc5b2b688150f96bd2b75aa1b7fc4d9d53712955.tar.gz gcc-bc5b2b688150f96bd2b75aa1b7fc4d9d53712955.tar.bz2 |
[rs6000]Fix PR92132 by adding vec_cmp and vcond_mask supports
To support full condition reduction vectorization, we have to define
vec_cmp* and vcond_mask_*. This patch is to add related expands.
Also add the missing vector fp comparison RTL pattern supports
like: ungt, unge, unlt, unle, ne, lt and le.
gcc/ChangeLog
2019-11-08 Kewen Lin <linkw@gcc.gnu.org>
PR target/92132
* config/rs6000/predicates.md
(signed_or_equality_comparison_operator): New predicate.
(unsigned_or_equality_comparison_operator): Likewise.
* config/rs6000/rs6000.md (one_cmpl<mode>2): Remove expand.
(one_cmpl<mode>3_internal): Rename to one_cmpl<mode>2.
* config/rs6000/vector.md
(vcond_mask_<mode><mode> for VEC_I and VEC_I): New expand.
(vec_cmp<mode><mode> for VEC_I and VEC_I): Likewise.
(vec_cmpu<mode><mode> for VEC_I and VEC_I): Likewise.
(vcond_mask_<mode><VEC_int> for VEC_F): New expand for float
vector modes and same-size integer vector modes.
(vec_cmp<mode><VEC_int> for VEC_F): Likewise.
(vector_lt<mode> for VEC_F): New expand.
(vector_le<mode> for VEC_F): Likewise.
(vector_ne<mode> for VEC_F): Likewise.
(vector_unge<mode> for VEC_F): Likewise.
(vector_ungt<mode> for VEC_F): Likewise.
(vector_unle<mode> for VEC_F): Likewise.
(vector_unlt<mode> for VEC_F): Likewise.
(vector_uneq<mode>): Expose name.
(vector_ltgt<mode>): Likewise.
(vector_unordered<mode>): Likewise.
(vector_ordered<mode>): Likewise.
gcc/testsuite/ChangeLog
2019-11-08 Kewen Lin <linkw@gcc.gnu.org>
PR target/92132
* gcc.target/powerpc/pr92132-fp-1.c: New test.
* gcc.target/powerpc/pr92132-fp-2.c: New test.
* gcc.target/powerpc/pr92132-int-1.c: New test.
* gcc.target/powerpc/pr92132-int-2.c: New test.
From-SVN: r277947
Diffstat (limited to 'gcc/fortran/trans-expr.c')
0 files changed, 0 insertions, 0 deletions