On Thu, 17 Nov 2022 at 19:56, Andrew Waterman wrote:
>
> On Thu, Nov 17, 2022 at 10:52 AM Philipp Tomsich
> wrote:
> >
> > On Thu, 17 Nov 2022 at 19:33, Andrew Waterman wrote:
> > >
> > > Am I wrong to worry that this will increase dynamic instruction count
> > > when used in a loop? The
On Thu, 17 Nov 2022 at 19:28, Andrew Pinski wrote:
>
> On Thu, Nov 17, 2022 at 10:25 AM Andrew Pinski wrote:
> >
> > On Sun, Nov 13, 2022 at 12:51 PM Philipp Tomsich
> > wrote:
> > >
> > > Use Zbs when generating a sequence for "if ((a & twobits) == singlebit)
> > > ..."
> > > that can be
On Thu, Nov 17, 2022 at 10:52 AM Philipp Tomsich
wrote:
>
> On Thu, 17 Nov 2022 at 19:33, Andrew Waterman wrote:
> >
> > Am I wrong to worry that this will increase dynamic instruction count
> > when used in a loop? The obvious code is more efficient when the
> > constant loads can be hoisted
On Thu, 17 Nov 2022 at 19:33, Andrew Waterman wrote:
>
> Am I wrong to worry that this will increase dynamic instruction count
> when used in a loop? The obvious code is more efficient when the
> constant loads can be hoisted out of a loop. Or does the cost model
> account for this somehow?
Am I wrong to worry that this will increase dynamic instruction count
when used in a loop? The obvious code is more efficient when the
constant loads can be hoisted out of a loop. Or does the cost model
account for this somehow?
On Sun, Nov 13, 2022 at 12:50 PM Philipp Tomsich
wrote:
>
> Use
On Thu, Nov 17, 2022 at 10:25 AM Andrew Pinski wrote:
>
> On Sun, Nov 13, 2022 at 12:51 PM Philipp Tomsich
> wrote:
> >
> > Use Zbs when generating a sequence for "if ((a & twobits) == singlebit) ..."
> > that can be expressed as bexti + bexti + andn.
>
> Can't you also handle if ((a & twobits)
On Sun, Nov 13, 2022 at 12:51 PM Philipp Tomsich
wrote:
>
> Use Zbs when generating a sequence for "if ((a & twobits) == singlebit) ..."
> that can be expressed as bexti + bexti + andn.
Can't you also handle if ((a & twobits) == 0) case doing a similar thing.
That is:
two bexti + and and then
On Thu, 17 Nov 2022 at 17:39, Jeff Law wrote:
>
>
> On 11/17/22 08:12, Philipp Tomsich wrote:
> >
> > This serves as an assertion only, as that case is non-sensical and
> > will be optimized away by earlier passes (as "a & C == T" with C and T
> > sharing no bits will always be false).
> > IFAIK
On 11/17/22 08:12, Philipp Tomsich wrote:
This serves as an assertion only, as that case is non-sensical and
will be optimized away by earlier passes (as "a & C == T" with C and T
sharing no bits will always be false).
IFAIK the preceding transforms should always clean such a check up,
but we
On Thu, 17 Nov 2022 at 15:58, Jeff Law wrote:
>
>
> On 11/13/22 13:48, Philipp Tomsich wrote:
> > Use Zbs when generating a sequence for "if ((a & twobits) == singlebit) ..."
> > that can be expressed as bexti + bexti + andn.
> >
> > gcc/ChangeLog:
> >
> > * config/riscv/bitmanip.md
> >
On 11/13/22 13:48, Philipp Tomsich wrote:
Use Zbs when generating a sequence for "if ((a & twobits) == singlebit) ..."
that can be expressed as bexti + bexti + andn.
gcc/ChangeLog:
* config/riscv/bitmanip.md
(*branch_mask_twobits_equals_singlebit):
Handle "if ((a & T) == C)"
Use Zbs when generating a sequence for "if ((a & twobits) == singlebit) ..."
that can be expressed as bexti + bexti + andn.
gcc/ChangeLog:
* config/riscv/bitmanip.md
(*branch_mask_twobits_equals_singlebit):
Handle "if ((a & T) == C)" using Zbs, when T has 2 bits set and C has
12 matches
Mail list logo