[prev in list] [next in list] [prev in thread] [next in thread]
List: gcc-patches
Subject: Ping^3: [PATCH, rs6000 V2] rotate and mask constants [PR94393]
From: Pat Haugen via Gcc-patches <gcc-patches () gcc ! gnu ! org>
Date: 2021-12-30 17:06:02
Message-ID: d8b4de81-ffe4-dae5-8a07-fc32e11a36c1 () linux ! ibm ! com
[Download RAW message or body]
Ping.
On 11/22/21 1:38 PM, Pat Haugen via Gcc-patches wrote:
> Updated version of the patch. Changes made from original are updated commentary to \
> hopefully aid readability, no functional changes.
>
> Implement more two insn constants. rotate_and_mask_constant covers
> 64-bit constants that can be formed by rotating a 16-bit signed
> constant, rotating a 16-bit signed constant masked on left or right
> (rldicl and rldicr), rotating a 16-bit signed constant masked by
> rldic, and unusual "lis; rldicl" and "lis; rldicr" patterns. All the
> values possible for DImode rs6000_is_valid_and_mask are covered.
>
> Bootstrapped and regression tested on powerpc64(32/64) and powerpc64le.
> Ok for master?
>
> -Pat
>
>
> 2021-11-22 Alan Modra <amodra@gmail.com>
> Pat Haugen <pthaugen@linux.ibm.com>
>
> PR 94393
> gcc/
> * config/rs6000/rs6000.c (rotate_di, is_rotate_positive_constant,
> is_rotate_negative_constant, rotate_and_mask_constant): New functions.
> (num_insns_constant_multi, rs6000_emit_set_long_const): Use it here.
> * config/rs6000/rs6000.md (*movdi_internal64+1 splitter): Delete.
> gcc/testsuite/
> * gcc.target/powerpc/rot_cst.h,
> * gcc.target/powerpc/rot_cst1.c,
> * gcc.target/powerpc/rot_cst2.c: New tests.
>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic