[clang] [llvm] [HLSL][SPIRV][DXIL] Implement `dot4add_i8packed` intrinsic (PR #113623)
Steven Perron via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 5 07:40:00 PST 2024
================
@@ -1694,6 +1701,112 @@ bool SPIRVInstructionSelector::selectIntegerDot(Register ResVReg,
return Result;
}
+template <bool Signed>
+bool SPIRVInstructionSelector::selectDot4AddPacked(Register ResVReg,
+ const SPIRVType *ResType,
+ MachineInstr &I) const {
+ assert(I.getNumOperands() == 5);
+ assert(I.getOperand(2).isReg());
+ assert(I.getOperand(3).isReg());
+ assert(I.getOperand(4).isReg());
+ MachineBasicBlock &BB = *I.getParent();
+
+ auto DotOp = Signed ? SPIRV::OpSDot : SPIRV::OpUDot;
+ Register Dot = MRI->createVirtualRegister(&SPIRV::IDRegClass);
----------------
s-perron wrote:
That is good to know. I had not learned about the different register classes yet. Thanks for catching that.
https://github.com/llvm/llvm-project/pull/113623
More information about the cfe-commits
mailing list