From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1005) id 651233853822; Thu, 27 May 2021 21:35:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 651233853822 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Michael Meissner To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/meissner/heads/pr96762)] Do not call LXVL/STXVL on 32-bit. X-Act-Checkin: gcc X-Git-Author: Michael Meissner X-Git-Refname: refs/users/meissner/heads/pr96762 X-Git-Oldrev: c33ec196aa713c62d73907dc8f9e57d7ab2e4e4b X-Git-Newrev: 7de3d25501fcc04758fb62aea46c2539a4421876 Message-Id: <20210527213514.651233853822@sourceware.org> Date: Thu, 27 May 2021 21:35:14 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2021 21:35:14 -0000 https://gcc.gnu.org/g:7de3d25501fcc04758fb62aea46c2539a4421876 commit 7de3d25501fcc04758fb62aea46c2539a4421876 Author: Michael Meissner Date: Thu May 27 17:27:26 2021 -0400 Do not call LXVL/STXVL on 32-bit. In bug PR target/96767, the code wants to do a block move of a 17 byte string literal in -m32 mode. This involves a shift of the DImode length by 56 bits, which is not available in 32-bit. gcc/ 2021-05-27 Michael Meissner PR target/96767 * config/rs6000/rs6000-string.c (expand_block_move): Do not try to do LXVL and STXVL on 32-bit. Diff: --- gcc/config/rs6000/rs6000-string.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/rs6000/rs6000-string.c b/gcc/config/rs6000/rs6000-string.c index cc75ca5848e..f3226e25327 100644 --- a/gcc/config/rs6000/rs6000-string.c +++ b/gcc/config/rs6000/rs6000-string.c @@ -2811,7 +2811,7 @@ expand_block_move (rtx operands[], bool might_overlap) gen_func.mov = gen_vsx_movv2di_64bit; } else if (TARGET_BLOCK_OPS_UNALIGNED_VSX - && TARGET_POWER10 && bytes < 16 + && TARGET_POWER10 && bytes < 16 && TARGET_POWERPC64 && orig_bytes > 16 && !(bytes == 1 || bytes == 2 || bytes == 4 || bytes == 8)