fix subreg optimization bug introduced 2002-05-25
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 19 Sep 2002 23:39:34 +0000 (23:39 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 19 Sep 2002 23:39:34 +0000 (23:39 +0000)
* combine.c (simplify_set): When optimizing a subreg src with a
cc0 dest, use GET_MODE (src) for mask instead of inner_mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57323 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/combine.c

index 9da276c..0b22646 100644 (file)
@@ -1,3 +1,8 @@
+2002-09-19  Jim Wilson  <wilson@redhat.com>
+
+       * combine.c (simplify_set): When optimizing a subreg src with a
+       cc0 dest, use GET_MODE (src) for mask instead of inner_mode.
+
 2002-09-19  Dale Johannesen <dalej@apple.com>
        * combine.c (make_extraction): Don't create
        invalid subreg.
index c72d81e..2313619 100644 (file)
@@ -5229,7 +5229,7 @@ simplify_set (x)
       if (GET_MODE_BITSIZE (inner_mode) <= HOST_BITS_PER_WIDE_INT
          && (nonzero_bits (inner, inner_mode)
              < ((unsigned HOST_WIDE_INT) 1
-                << (GET_MODE_BITSIZE (inner_mode) - 1))))
+                << (GET_MODE_BITSIZE (GET_MODE (src)) - 1))))
        {
          SUBST (SET_SRC (x), inner);
          src = SET_SRC (x);