[all-commits] [llvm/llvm-project] 72901f: [AArch64] Fold UBFMXri to UBFMWri when it's an LSR...

Csanád Hajdú via All-commits all-commits at lists.llvm.org
Tue Sep 17 03:21:44 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 72901fe19eb1e55d0ee1c380ab7a9f57d2f187c5
      https://github.com/llvm/llvm-project/commit/72901fe19eb1e55d0ee1c380ab7a9f57d2f187c5
  Author: Csanád Hajdú <csanad.hajdu at arm.com>
  Date:   2024-09-17 (Tue, 17 Sep 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
    M llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
    M llvm/test/CodeGen/AArch64/addsub-24bit-imm.mir
    M llvm/test/CodeGen/AArch64/arm64-bitfield-extract.ll
    M llvm/test/CodeGen/AArch64/arm64-ld-from-st.ll
    M llvm/test/CodeGen/AArch64/arm64_32.ll
    M llvm/test/CodeGen/AArch64/bitfield-extract.ll
    M llvm/test/CodeGen/AArch64/fast-isel-int-ext3.ll
    M llvm/test/CodeGen/AArch64/fast-isel-shift.ll
    M llvm/test/CodeGen/AArch64/machine_cse_impdef_killflags.ll
    M llvm/test/CodeGen/AArch64/trunc-to-tbl.ll
    M llvm/test/CodeGen/AArch64/xbfiz.ll
    M llvm/test/CodeGen/AArch64/zext-to-tbl.ll

  Log Message:
  -----------
  [AArch64] Fold UBFMXri to UBFMWri when it's an LSR or LSL alias (#106968)

Using the LSR or LSL aliases of UBFM can be faster on some CPUs, so it
is worth changing 64 bit UBFM instructions, that are equivalent to 32
bit LSR/LSL operations, to 32 bit variants.

This change folds the following patterns:
* If `Imms == 31` and `Immr <= Imms`:
   `UBFMXri %0, Immr, Imms`  ->  `UBFMWri %0.sub_32, Immr, Imms`
* If `Immr == Imms + 33`:
   `UBFMXri %0, Immr, Imms`  ->  `UBFMWri %0.sub_32, Immr - 32, Imms`



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list