[llvm] [SPIR-V] Fold same type conversions into a copy (PR #223365)
Dmitry Sidorov via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 15 05:49:49 PDT 2026
================
@@ -3291,6 +3291,20 @@ static bool generateAsyncCopy(const SPIRV::IncomingCall *Call,
}
}
+// Same type S/U/FConvert are invalid. OpSatConvert* are valid and must stay.
+static bool foldNoOpConvert(unsigned Opcode, const SPIRV::IncomingCall *Call,
+ MachineIRBuilder &MIRBuilder,
+ SPIRVGlobalRegistry *GR) {
+ if (Opcode != SPIRV::OpSConvert && Opcode != SPIRV::OpUConvert &&
+ Opcode != SPIRV::OpFConvert)
+ return false;
+ if (Call->Arguments.size() != 1 ||
+ GR->getSPIRVTypeForVReg(Call->Arguments[0]) != Call->ReturnType)
+ return false;
+ MIRBuilder.buildCopy(Call->ReturnRegister, Call->Arguments[0]);
----------------
MrSidims wrote:
Does it copy debug info and other metadata?
https://github.com/llvm/llvm-project/pull/223365
More information about the llvm-commits
mailing list