aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2002-03-09 12:26:57 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2002-03-09 07:26:57 -0500
commit0a7ec76355b0e53a3f48727f7ae8e3c5f812458b (patch)
tree12440dc89b9e1de4bda2fdbf9fa3d3df9e47b7d5 /gcc/combine.c
parentabfabb9850c06baa1514ea9306f0ae95c2a71783 (diff)
downloadgcc-0a7ec76355b0e53a3f48727f7ae8e3c5f812458b.zip
gcc-0a7ec76355b0e53a3f48727f7ae8e3c5f812458b.tar.gz
gcc-0a7ec76355b0e53a3f48727f7ae8e3c5f812458b.tar.bz2
* combine.c (make_extraction): Don't make extension of CONST_INT.
From-SVN: r50491
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index b734231..fb344ca 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -6032,6 +6032,9 @@ make_extraction (mode, inner, pos, pos_rtx, len,
if (mode == tmode)
return new;
+ if (GET_CODE (new) == CONST_INT)
+ return trunc_int_for_mode (INTVAL (new), mode);
+
/* If we know that no extraneous bits are set, and that the high
bit is not set, convert the extraction to the cheaper of
sign and zero extension, that are equivalent in these cases. */