[llvm] [RISCV][llvm] Preliminary P extension codegen support (PR #162668)
Brandon Wu via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 30 10:28:41 PDT 2025
================
@@ -1034,6 +1034,14 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) {
if (!isInt<32>(Imm) && isUInt<32>(Imm) && hasAllWUsers(Node))
Imm = SignExtend64<32>(Imm);
+ if (hasAllWUsers(Node) && Subtarget->hasStdExtP() &&
+ Subtarget->enablePExtCodeGen()) {
+ // If its 4 packed 8 bit integer or 2 packed signed integer, we can simply
+ // copy lower 32 bits to higher 32 bits to make it able to rematerialize
+ // to PLI_B or PLI_H
+ Imm = (Imm << 32) | (Imm & 0xFFFFFFFF);
----------------
4vtomat wrote:
yeah, I think I need to check if its applicable to `PLI`, thanks for pointing out
https://github.com/llvm/llvm-project/pull/162668
More information about the llvm-commits
mailing list