On 7/7/25 06:19, Kyrylo Tkachov wrote:
> External email: Use caution opening links or attachments
>
>
> Hi all,
>
> Similar to other patches in this series, this patch adds a splitter
> for DImode BSL1N operations, taking care to generate the right code
> in the GP regs case.
>
> Thus for the testcase we generate:
> bsl1n_gp:
> eon x0, x0, x1
> and x0, x0, x2
> eor x0, x0, x1
> ret
>
> bsl1n_d:
> bsl1n z0.d, z0.d, z1.d, z2.d
> ret
>
> instead of the previous:
> bsl1n_gp: // The same, avoid moves to FP regs.
> eon x0, x0, x1
> and x0, x0, x2
> eor x0, x0, x1
> ret
>
> bsl1n_d:
> fmov x0, d0
> fmov x1, d1
> eon x0, x1, x0
> fmov d31, x0
> and v2.8b, v31.8b, v2.8b
> eor v0.8b, v2.8b, v1.8b
> ret
>
> Bootstrapped and tested on aarch64-none-linux-gnu.
> Ok for trunk?

Looks good to me,

Remi

> Thanks,
> Kyrill
>
> Signed-off-by: Kyrylo Tkachov <ktkac...@nvidia.com>
>
> gcc/
>
>          * config/aarch64/aarch64-sve2.md (*aarch64_sve2_bsl1n_unpreddi): New
>          define_insn_and_split.
>
> gcc/testsuite/
>
>          * gcc.target/aarch64/sve2/bsl1n_d.c: New test.
>

Reply via email to