[llvm] [SPIRV] Use OpCopyMemory for logical SPIRV memcpy (PR #169348)

Steven Perron via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 26 06:22:31 PST 2025


================
@@ -1435,50 +1438,76 @@ bool SPIRVInstructionSelector::selectStackRestore(MachineInstr &I) const {
       .constrainAllUses(TII, TRI, RBI);
 }
 
-bool SPIRVInstructionSelector::selectMemOperation(Register ResVReg,
-                                                  MachineInstr &I) const {
+Register
+SPIRVInstructionSelector::getOrCreateMemSetGlobal(MachineInstr &I) const {
+  MachineIRBuilder MIRBuilder(I);
+  assert(I.getOperand(1).isReg() && I.getOperand(2).isReg());
+  unsigned Val = getIConstVal(I.getOperand(1).getReg(), MRI);
+  unsigned Num = getIConstVal(I.getOperand(2).getReg(), MRI);
+  Type *ValTy = Type::getInt8Ty(I.getMF()->getFunction().getContext());
+  Type *ArrTy = ArrayType::get(ValTy, Num);
+  SPIRVType *VarTy = GR.getOrCreateSPIRVPointerType(
----------------
s-perron wrote:

Done.

https://github.com/llvm/llvm-project/pull/169348


More information about the llvm-commits mailing list