re PR target/27282 (ICE in final_scan_insn, at final.c:2448 - could not split insn)
authorDavid Edelsohn <edelsohn@gnu.org>
Wed, 26 Apr 2006 14:33:49 +0000 (14:33 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Wed, 26 Apr 2006 14:33:49 +0000 (10:33 -0400)
2006-04-26  David Edelsohn  <edelsohn@gnu.org>
    Paolo Bonzini  <bonzini@gnu.org>

PR middle-end/27282
* combine.c (simplify_and_const_int_1): Use gen_int_mode.
(simplify_and_const_int): Same.

Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>
From-SVN: r113275

gcc/ChangeLog
gcc/combine.c

index 44cc5b9..b61347d 100644 (file)
@@ -1,3 +1,10 @@
+2006-04-26  David Edelsohn  <edelsohn@gnu.org>
+           Paolo Bonzini  <bonzini@gnu.org>
+
+       PR middle-end/27282
+       * combine.c (simplify_and_const_int_1): Use gen_int_mode.
+       (simplify_and_const_int): Same.
+
 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
 
         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
index 2ff106d..ed9c497 100644 (file)
@@ -8190,8 +8190,7 @@ simplify_and_const_int_1 (enum machine_mode mode, rtx varop,
     return NULL_RTX;
 
   /* Otherwise, return an AND.  */
-  constop = trunc_int_for_mode (constop, mode);
-  return simplify_gen_binary (AND, mode, varop, GEN_INT (constop));
+  return simplify_gen_binary (AND, mode, varop, gen_int_mode (constop, mode));
 }
 
 
@@ -8210,7 +8209,8 @@ simplify_and_const_int (rtx x, enum machine_mode mode, rtx varop,
     return tem;
 
   if (!x)
-    x = simplify_gen_binary (AND, GET_MODE (varop), varop, GEN_INT (constop));
+    x = simplify_gen_binary (AND, GET_MODE (varop), varop,
+                            gen_int_mode (constop, mode));
   if (GET_MODE (x) != mode)
     x = gen_lowpart (mode, x);
   return x;