Starting with Power 10 the instruction paddi is available to use.
The instruction allows for immediates that are 34 bits.
This patch adds exploitation of the paddi instruction to allow us
to materialize constants.
Paths
| Differential D93300
[PowerPC] Exploit paddi instruction on Power 10 for constant materialization ClosedPublic Authored by stefanp on Dec 15 2020, 7:33 AM.
Details
Summary Starting with Power 10 the instruction paddi is available to use. This patch adds exploitation of the paddi instruction to allow us
Diff Detail
Event Timelinestefanp added a parent revision: D92879: [PowerPC] Materialize 34 bit constants with pli on Power 10..Dec 15 2020, 7:34 AM steven.zhang added inline comments.
Comment Actions Rebased the patch to the top of main. Tried to merge three of the cases but it looks like that won't work as one of Comment Actions Just a few minor nit comments.
This revision is now accepted and ready to land.Mar 9 2021, 7:06 AM Comment Actions Sorry for the delay and thank you for addressing my previous comments. I think this LGTM. This revision was landed with ongoing or failed builds.Mar 11 2021, 6:38 AM Closed by commit rGe021de0aab22: [PowerPC] Exploit paddi instruction on Power 10 for constant materialization (authored by stefanp). · Explain Why This revision was automatically updated to reflect the committed changes. Comment Actions hi @stefanp, this patch caused an asan error when running on ninja check-llvm-codegen-powerpc. llvm-project/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:1046:48: runtime error: shift exponent 64 is too large for 64-bit type 'uint64_t' (aka 'unsigned long') Comment Actions
ok, looks like @RKSimon fixed them in https://github.com/llvm/llvm-project/commit/f6524b4ada823a9766f7cbdfc16e052971e005f6, Thanks!
Revision Contents
Diff 311900 llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
llvm/test/CodeGen/PowerPC/fast-isel-pcrel.ll
llvm/test/CodeGen/PowerPC/p10-constants.ll
|
why do we name it as FO instead of LO here? can you please explain what FO stands for?