aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRoger Sayle <roger@nextmovesoftware.com>2021-08-24 22:07:41 +0100
committerRoger Sayle <roger@nextmovesoftware.com>2021-08-24 22:07:41 +0100
commit81e1894456bc6214c0c42148ff2b1bed142a3545 (patch)
treebdea0686960d9771e9106b1c98d306367b18ab8d /gcc
parentf95946afd160e2a1f4beac4ee5e6d5633307f39a (diff)
downloadgcc-81e1894456bc6214c0c42148ff2b1bed142a3545.zip
gcc-81e1894456bc6214c0c42148ff2b1bed142a3545.tar.gz
gcc-81e1894456bc6214c0c42148ff2b1bed142a3545.tar.bz2
[Committed] PR middle-end/102031: Fix typo/mistake in simplify_truncation patch.
My apologies again. My patch to simplify truncations of SUBREGs in simplify-rtx.c contained an error where I'd accidentally compared against a mode instead of the precision of that mode. Grr! It even survived regression testing on two platforms. Fixed below, and committed as obvious, after a full "make bootstrap" and "make -k check" on x86_64-pc-linux-gnu with no new regressions. 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> gcc/ChangeLog PR middle-end/102031 * simplify-rtx.c (simplify_truncation): When comparing precisions use "subreg_prec" variable, not "subreg_mode".
Diffstat (limited to 'gcc')
-rw-r--r--gcc/simplify-rtx.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index 8eea9fb..c81e27e 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -841,7 +841,7 @@ simplify_context::simplify_truncation (machine_mode mode, rtx op,
{
unsigned int int_op_prec = GET_MODE_PRECISION (int_op_mode);
unsigned int subreg_prec = GET_MODE_PRECISION (subreg_mode);
- if (int_op_prec > subreg_mode)
+ if (int_op_prec > subreg_prec)
{
if (int_mode == subreg_mode)
return SUBREG_REG (op);
@@ -851,7 +851,7 @@ simplify_context::simplify_truncation (machine_mode mode, rtx op,
}
/* Simplification of (truncate:A (subreg:B X:C 0)) where
A is narrower than B and B is narrower than C. */
- else if (int_op_prec < subreg_mode
+ else if (int_op_prec < subreg_prec
&& GET_MODE_PRECISION (int_mode) < int_op_prec)
return simplify_gen_unary (TRUNCATE, int_mode,
SUBREG_REG (op), subreg_mode);