From: Roger Sayle Date: Mon, 23 Aug 2021 14:35:05 +0000 (+0100) Subject: [Committed] Restore build on !TARGET_TRULY_NOOP_TRUNCATION targets X-Git-Tag: basepoints/gcc-13~5227 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=89ff4f027b5c92e96a8527920b8ccc3b94aec672;p=thirdparty%2Fgcc.git [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 gcc/ChangeLog * simplify-rtx.c (simplify_unary_operation_1): [TRUNCATE]: Handle case where the operand is already the desired mode. --- diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index f3df6140766f..8eea9fb7e0a6 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: