Optimize duplicate zero_extend operations.
* combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt. (force_to_mode, case ASHIFTRT): Add shiftrt label. From-SVN: r28424
This commit is contained in:
parent
a47f48d8fc
commit
fae2db4744
|
@ -1,3 +1,8 @@
|
|||
Mon Aug 2 16:27:42 1999 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
|
||||
(force_to_mode, case ASHIFTRT): Add shiftrt label.
|
||||
|
||||
Tue Aug 3 00:45:02 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
|
||||
* loop.c (strength_reduce): When doing biv->giv conversion, update
|
||||
|
|
|
@ -6574,7 +6574,8 @@ force_to_mode (x, mode, mask, reg, just_select)
|
|||
x = gen_binary (LSHIFTRT, GET_MODE (x), XEXP (x, 0),
|
||||
GEN_INT (GET_MODE_BITSIZE (GET_MODE (x))
|
||||
- exact_log2 (mask + 1)));
|
||||
break;
|
||||
|
||||
goto shiftrt;
|
||||
|
||||
case ASHIFTRT:
|
||||
/* If we are just looking for the sign bit, we don't need this shift at
|
||||
|
@ -6639,7 +6640,9 @@ force_to_mode (x, mode, mask, reg, just_select)
|
|||
if (mask == 1)
|
||||
x = gen_binary (LSHIFTRT, GET_MODE (x), XEXP (x, 0), XEXP (x, 1));
|
||||
|
||||
/* If this is a sign-extension operation that just affects bits
|
||||
shiftrt:
|
||||
|
||||
/* If this is a zero- or sign-extension operation that just affects bits
|
||||
we don't care about, remove it. Be sure the call above returned
|
||||
something that is still a shift. */
|
||||
|
||||
|
|
Loading…
Reference in New Issue