diff options
author | Jingu Kang <jingu.kang@arm.com> | 2021-09-22 17:01:21 +0100 |
---|---|---|
committer | Jingu Kang <jingu.kang@arm.com> | 2021-09-28 11:57:43 +0100 |
commit | 864b206796ae8aa7f35f830655337751dbd9176c (patch) | |
tree | 6e5bc4c871b2f7a9ac4741fa45bdd213e3705cbd /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | 4f01a02d738b033c10bfed5b47014fc197509a4f (diff) | |
download | llvm-864b206796ae8aa7f35f830655337751dbd9176c.zip llvm-864b206796ae8aa7f35f830655337751dbd9176c.tar.gz llvm-864b206796ae8aa7f35f830655337751dbd9176c.tar.bz2 |
[AArch64] Split bitmask immediate of bitwise AND operation
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
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions