[all-commits] [llvm/llvm-project] 91bbb9: [AArch64][GlobalISel] Regbankselect + select @llvm...
Jessica Paquette via All-commits
all-commits at lists.llvm.org
Mon Apr 19 10:48:29 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 91bbb914e01715b4b16d49c399b05310aa916cfe
https://github.com/llvm/llvm-project/commit/91bbb914e01715b4b16d49c399b05310aa916cfe
Author: Jessica Paquette <jpaquette at apple.com>
Date: 2021-04-19 (Mon, 19 Apr 2021)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/Utils.h
M llvm/lib/CodeGen/GlobalISel/Utils.cpp
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/regbank-intrinsic.mir
A llvm/test/CodeGen/AArch64/GlobalISel/select-intrinsic-uaddlv.mir
Log Message:
-----------
[AArch64][GlobalISel] Regbankselect + select @llvm.aarch64.neon.uaddlv
It turns out we actually import a bunch of selection code for intrinsics. The
imported code checks that the register banks on the G_INTRINSIC instruction
are correct. If so, it goes ahead and selects it.
This adds code to AArch64RegisterBankInfo to allow us to correctly determine
register banks on intrinsics which have known register bank constraints.
For now, this only handles @llvm.aarch64.neon.uaddlv. This is necessary for
porting AArch64TargetLowering::LowerCTPOP.
Also add a utility for getting the intrinsic ID from a G_INTRINSIC instruction.
This seems a little nicer than having to know about how intrinsic instructions
are structured.
Differential Revision: https://reviews.llvm.org/D100398
More information about the All-commits
mailing list