https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103194

--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> ---
This avoids the crash:

diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index 0f79e9f05bd..14c5ecdf119 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -3443,7 +3443,7 @@ optimize_atomic_bit_test_and (gimple_stmt_iterator *gsip,
     ibit = 0;
   }
       else if (TYPE_PRECISION (TREE_TYPE (use_lhs))
-         == TYPE_PRECISION (TREE_TYPE (use_rhs)))
+         <= TYPE_PRECISION (TREE_TYPE (use_rhs)))
   {
     gimple *use_nop_stmt;
     if (!single_imm_use (use_lhs, &use_p, &use_nop_stmt)

But nop_atomic_bit_test_and_p should handle cast.  Hongtao, please take a look.

Reply via email to