From fd64a8a1e0a80947225b67d5bd10b426cab558d7 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 22 Jun 2018 23:18:32 +0200 Subject: [PATCH] backport: re PR tree-optimization/85446 (wrong-code on riscv64) Backported from mainline 2018-04-19 Jakub Jelinek PR tree-optimization/85446 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require the integral and pointer types to have the same precision. From-SVN: r261958 --- gcc/ChangeLog | 9 ++++++--- gcc/match.pd | 11 +++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9381393fe812..957bf2021f90 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,12 @@ 2018-06-22 Jakub Jelinek Backported from mainline + 2018-04-19 Jakub Jelinek + + PR tree-optimization/85446 + * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require + the integral and pointer types to have the same precision. + 2018-04-18 David Malcolm PR jit/85384 @@ -9,9 +15,6 @@ it when generating GCC_DRIVER_NAME. * configure: Regenerate. -2018-06-22 Jakub Jelinek - - Backported from mainline 2018-04-17 Jakub Jelinek PR rtl-optimization/85431 diff --git a/gcc/match.pd b/gcc/match.pd index 3a44ea7f628a..e405d9e84e90 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -2929,10 +2929,13 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (for cmp (ne eq) (simplify (cmp (convert @0) INTEGER_CST@1) - (if ((POINTER_TYPE_P (TREE_TYPE (@0)) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@0))) - && INTEGRAL_TYPE_P (TREE_TYPE (@1))) - || (INTEGRAL_TYPE_P (TREE_TYPE (@0)) && POINTER_TYPE_P (TREE_TYPE (@1)) - && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@1))))) + (if (((POINTER_TYPE_P (TREE_TYPE (@0)) + && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@0))) + && INTEGRAL_TYPE_P (TREE_TYPE (@1))) + || (INTEGRAL_TYPE_P (TREE_TYPE (@0)) + && POINTER_TYPE_P (TREE_TYPE (@1)) + && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@1))))) + && TYPE_PRECISION (TREE_TYPE (@0)) == TYPE_PRECISION (TREE_TYPE (@1))) (cmp @0 (convert @1))))) /* Non-equality compare simplifications from fold_binary */ -- 2.47.2