aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRoger Sayle <roger@nextmovesoftware.com>2021-08-23 15:35:05 +0100
committerRoger Sayle <roger@nextmovesoftware.com>2021-08-23 15:35:05 +0100
commit89ff4f027b5c92e96a8527920b8ccc3b94aec672 (patch)
treea32960adb57fec330b545e56be32c1dcafafdf35 /gcc
parent0230e69a3fabe6ad1d80cdf308ad1bf1934c4381 (diff)
downloadgcc-89ff4f027b5c92e96a8527920b8ccc3b94aec672.zip
gcc-89ff4f027b5c92e96a8527920b8ccc3b94aec672.tar.gz
gcc-89ff4f027b5c92e96a8527920b8ccc3b94aec672.tar.bz2
[Committed] Restore build on !TARGET_TRULY_NOOP_TRUNCATION targets
My sincere apologies to everyone, but especially Andrew Pinski who warned me in advance that TRULY_NOOP_TRUNCATION results in different code paths/optimizations on some targets. This restores the build on nvptx-none (and presumably others) where mysteriously (truncate:QI (reg:QI)) fails to be simplified to (reg:QI), which is expected (everywhere) in my recently added self-tests. 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> gcc/ChangeLog * simplify-rtx.c (simplify_unary_operation_1): [TRUNCATE]: Handle case where the operand is already the desired mode.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/simplify-rtx.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index f3df614..8eea9fb 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -1268,6 +1268,9 @@ simplify_context::simplify_unary_operation_1 (rtx_code code, machine_mode mode,
return temp;
}
+ /* Check for useless truncation. */
+ if (GET_MODE (op) == mode)
+ return op;
break;
case FLOAT_TRUNCATE: