diff options
author | Ilya Enkovich <enkovich.gnu@gmail.com> | 2016-03-17 10:58:26 +0000 |
---|---|---|
committer | Ilya Enkovich <ienkovich@gcc.gnu.org> | 2016-03-17 10:58:26 +0000 |
commit | 0c8b64cb587dbe83a0660878c69d7ff96589673c (patch) | |
tree | df813d10b32fa201cc0b67533f0f01f5bee67085 /gcc/match.pd | |
parent | a7ceba7d02ca7eb946aa99b6f97195cc5a4e5123 (diff) | |
download | gcc-0c8b64cb587dbe83a0660878c69d7ff96589673c.zip gcc-0c8b64cb587dbe83a0660878c69d7ff96589673c.tar.gz gcc-0c8b64cb587dbe83a0660878c69d7ff96589673c.tar.bz2 |
match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply for boolean vector with vector mode only.
gcc/
* match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
for boolean vector with vector mode only.
(A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
gcc/testsuite/
* gcc.target/i386/pr70251.c: New test.
From-SVN: r234283
Diffstat (limited to 'gcc/match.pd')
-rw-r--r-- | gcc/match.pd | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/match.pd b/gcc/match.pd index 112deb3..7245ff4 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -1759,6 +1759,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (simplify (plus:c @3 (view_convert? (vec_cond @0 integer_each_onep@1 integer_zerop@2))) (if (VECTOR_TYPE_P (type) + && VECTOR_MODE_P (TYPE_MODE (TREE_TYPE (@0))) && TYPE_VECTOR_SUBPARTS (type) == TYPE_VECTOR_SUBPARTS (TREE_TYPE (@0)) && (TYPE_MODE (TREE_TYPE (type)) == TYPE_MODE (TREE_TYPE (TREE_TYPE (@0))))) @@ -1768,6 +1769,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (simplify (minus @3 (view_convert? (vec_cond @0 integer_each_onep@1 integer_zerop@2))) (if (VECTOR_TYPE_P (type) + && VECTOR_MODE_P (TYPE_MODE (TREE_TYPE (@0))) && TYPE_VECTOR_SUBPARTS (type) == TYPE_VECTOR_SUBPARTS (TREE_TYPE (@0)) && (TYPE_MODE (TREE_TYPE (type)) == TYPE_MODE (TREE_TYPE (TREE_TYPE (@0))))) |