[all-commits] [llvm/llvm-project] 73a196: Recommit "[AArch64] Split bitmask immediate of bit...
JinGu Kang via All-commits
all-commits at lists.llvm.org
Tue Sep 28 07:27:50 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 73a196a11c0e6fe7bbf33055cc2c96ce3c61ff0d
https://github.com/llvm/llvm-project/commit/73a196a11c0e6fe7bbf33055cc2c96ce3c61ff0d
Author: Jingu Kang <jingu.kang at arm.com>
Date: 2021-09-28 (Tue, 28 Sep 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.h
A llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AArch64/CMakeLists.txt
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
A llvm/test/CodeGen/AArch64/aarch64-split-and-bitmask-immediate.ll
M llvm/test/CodeGen/AArch64/unfold-masked-merge-scalar-constmask-innerouter.ll
Log Message:
-----------
Recommit "[AArch64] Split bitmask immediate of bitwise AND operation"
This reverts the revert commit f85d8a5bed95cc17a452b6b63b9866fbf181d94d
with bug fixes.
Original message:
MOVi32imm + ANDWrr ==> ANDWri + ANDWri
MOVi64imm + ANDXrr ==> ANDXri + ANDXri
The mov pseudo instruction could be expanded to multiple mov instructions later.
In this case, try to split the constant operand of mov instruction into two
bitmask immediates. It makes only two AND instructions intead of multiple
mov + and instructions.
Added a peephole optimization pass on MIR level to implement it.
Differential Revision: https://reviews.llvm.org/D109963
More information about the All-commits
mailing list