On Sat, Jul 22, 2023 at 5:37 PM Roger Sayle <ro...@nextmovesoftware.com> wrote:
>
>
> As suggested by Uros, this patch changes the ZERO_EXTRACTs and SIGN_EXTRACTs
> in i386.md to consistently use QImode for bit offsets (i.e. third and fourth
> operands), matching the use of QImode for bit counts in shifts and rotates.
>
> There's no change in functionality, and the new patterns simply ensure that
> we continue to generate the same code (match revised patterns) as before.
>
> This patch has been tested on x86_64-pc-linux-gnu with make bootstrap
> and make -k check, both with and without --target_board=unix{-m32}
> with no new failures.  Ok for mainline?
>
>
> 2023-07-22  Roger Sayle  <ro...@nextmovesoftware.com>
>
> gcc/ChangeLog
>         * config/i386/i386.md (extv<mode>): Use QImode for offsets.
>         (extzv<mode>): Likewise.
>         (insv<mode>): Likewise.
>         (*testqi_ext_3): Likewise.
>         (*btr<mode>_2): Likewise.
>         (define_split): Likewise.
>         (*btsq_imm): Likewise.
>         (*btrq_imm): Likewise.
>         (*btcq_imm): Likewise.
>         (define_peephole2 x3): Likewise.
>         (*bt<mode>): Likewise
>         (*bt<mode>_mask): New define_insn_and_split.
>         (*jcc_bt<mode>): Use QImode for offsets.
>         (*jcc_bt<mode>_1): Delete obsolete pattern.
>         (*jcc_bt<mode>_mask): Use QImode offsets.
>         (*jcc_bt<mode>_mask_1): Likewise.
>         (define_split): Likewise.
>         (*bt<mode>_setcqi): Likewise.
>         (*bt<mode>_setncqi): Likewise.
>         (*bt<mode>_setnc<mode>): Likewise.
>         (*bt<mode>_setncqi_2): Likewise.
>         (*bt<mode>_setc<mode>_mask): New define_insn_and_split.
>         (bmi2_bzhi_<mode>3): Use QImode offsets.
>         (*bmi2_bzhi_<mode>3): Likewise.
>         (*bmi2_bzhi_<mode>3_1): Likewise.
>         (*bmi2_bzhi_<mode>3_1_ccz): Likewise.
>         (@tbm_bextri_<mode>): Likewise.

OK.

Thanks,
Uros.

>
>
> Thanks,
> Roger
> --
>

Reply via email to