diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fold-const.cc | 2 | ||||
-rw-r--r-- | gcc/match.pd | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/gcc/fold-const.cc b/gcc/fold-const.cc index 585c509..385e4a6 100644 --- a/gcc/fold-const.cc +++ b/gcc/fold-const.cc @@ -12901,7 +12901,7 @@ fold_binary_loc (location_t loc, enum tree_code code, tree type, newtype = TREE_TYPE (targ1); if (element_precision (newtype) < element_precision (TREE_TYPE (arg0)) - && is_truth_type_for (newtype, type)) + && (!VECTOR_TYPE_P (type) || is_truth_type_for (newtype, type))) return fold_build2_loc (loc, code, type, fold_convert_loc (loc, newtype, targ0), fold_convert_loc (loc, newtype, targ1)); diff --git a/gcc/match.pd b/gcc/match.pd index 0bcf315..e42ecaf 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -6799,7 +6799,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) ? TREE_TYPE (@00) : type1); } (if (element_precision (TREE_TYPE (@0)) > element_precision (newtype) - && is_truth_type_for (newtype, type)) + && (!VECTOR_TYPE_P (type) || is_truth_type_for (newtype, type))) (cmp (convert:newtype @00) (convert:newtype @10)))))))) |