[all-commits] [llvm/llvm-project] f045f2: [AArch64][SME] Fix generating incorrect TBZ when l...

Amara Emerson via All-commits all-commits at lists.llvm.org
Fri Oct 6 13:30:42 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f045f2c26d0b31db0d1c61babf7b65351287a8d9
      https://github.com/llvm/llvm-project/commit/f045f2c26d0b31db0d1c61babf7b65351287a8d9
  Author: Amara Emerson <amara at apple.com>
  Date:   2023-10-06 (Fri, 06 Oct 2023)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
    M llvm/test/CodeGen/AArch64/sme-call-streaming-compatible-to-normal-fn-wihout-sme-attr.ll
    M llvm/test/CodeGen/AArch64/sme-disable-gisel-fisel.ll
    M llvm/test/CodeGen/AArch64/sme-lazy-save-call.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-compatible-interface.ll

  Log Message:
  -----------
  [AArch64][SME] Fix generating incorrect TBZ when lowering lazy save. (#68429)

After calling arm_sme_state, the -S assembly would show clang generating
a “tbz xN, #0, Lbb”. However, disassembling it showed that it was
actually encoded as “tbz xN, #32, Lbb”. The issue is that for TBZ, if
you want a bit offset <32 you need to use the W variant, since the
instruction overloads the top bit of the immediate.




More information about the All-commits mailing list