Hi,

Gental ping these patches:
https://gcc.gnu.org/pipermail/gcc-patches/2023-February/611286.html

BR,
Jeff (Jiufu)


Jiufu Guo <guoji...@linux.ibm.com> writes:

> Hi,
>
> For a given constant, it would be profitable if we can use 2 insns to build.
> This patch enables more constants building through 2 insns: one is "li or 
> lis",
> another is 'rldicl, rldicr or rldic'.
> Through checking and analyzing the characters of the insns "li/lis;rldicX",
> all the possible constant values are considered by this patch.
>
> Previously, a patch is posted, but it is too large.
> https://gcc.gnu.org/pipermail/gcc-patches/2022-September/601276.html
> As suggested, I split it into this series.
>
> Considering the functionality and size, 4 patches are split as below:
> 1. Support the constants which can be built by "li;rotldi"
>    Both positive and negative values from insn "li" are analyzed.
> 2. Support the constants which can be built by "lis;rotldi"
>    We only need to analyze the negative value from "lis".
>    And this patch uses more code to check leading 1s and tailing 0s from 
> "lis".
> 3. Support the constants which can be built by "li/lis;rldicl/rldicr":
>    Leverage the APIs defined/analyzed in patches 1 and 2,
>    this patch checks the characters for the mask of "rldicl/rldicr"
>    to support more constants.
> 4. Support the constants which can be built by "li/lis;rldic":
>    The mask of "rldic" is relatively complicated, it is analyzed in this
>    patch to support more constants.
>
> BR,
> Jeff (Jiufu)

Reply via email to