[llvm] [RISCV][GISel] First mask argument placed in v0 according to RISCV Ve… (PR #79343)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 24 12:25:14 PST 2024


================
@@ -48,10 +51,16 @@ struct RISCVOutgoingValueAssigner : public CallLowering::OutgoingValueAssigner {
     const DataLayout &DL = MF.getDataLayout();
     const RISCVSubtarget &Subtarget = MF.getSubtarget<RISCVSubtarget>();
 
+    std::optional<unsigned> FirstMaskArgument;
+    if (Subtarget.hasVInstructions() && !AssignedFirstMaskArg &&
+        ValVT.isVector() && ValVT.getVectorElementType() == MVT::i1) {
+      FirstMaskArgument = std::make_optional(ValNo);
----------------
topperc wrote:

Why do we need std::make_optional? Can't we do `FirstMaskArgument = ValNo`?

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


More information about the llvm-commits mailing list