aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1997-03-03 13:12:07 -0700
committerJeff Law <law@gcc.gnu.org>1997-03-03 13:12:07 -0700
commite30fb98f9be427c8c6f3f857cd306246dd36d9cb (patch)
tree61d818d56da0b0bccbd0e433b32a73eef56fa30b
parenta52a564cd740419e5bb5d63010ca81156a0ac44c (diff)
downloadgcc-e30fb98f9be427c8c6f3f857cd306246dd36d9cb.zip
gcc-e30fb98f9be427c8c6f3f857cd306246dd36d9cb.tar.gz
gcc-e30fb98f9be427c8c6f3f857cd306246dd36d9cb.tar.bz2
combine.c (simplify_rtx): Do nothing with (truncate:mode) if mode is a partial integer mode.
* combine.c (simplify_rtx): Do nothing with (truncate:mode) if mode is a partial integer mode. From-SVN: r13686
-rw-r--r--gcc/combine.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 6a6ebb4..2300ce9 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -3590,6 +3590,12 @@ simplify_rtx (x, op0_mode, last, in_dest)
break;
case TRUNCATE:
+ /* We can't handle truncation to a partial integer mode here
+ because we don't know the real bitsize of the partial
+ integer mode. */
+ if (GET_MODE_CLASS (mode) == MODE_PARTIAL_INT)
+ break;
+
if (GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT)
SUBST (XEXP (x, 0),
force_to_mode (XEXP (x, 0), GET_MODE (XEXP (x, 0)),