[llvm] [LV] Add initial support for vectorizing literal struct return values (PR #109833)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 10 07:52:22 PDT 2024


================
@@ -1277,6 +1277,13 @@ void VPWidenRecipe::execute(VPTransformState &State) {
     State.addMetadata(V, dyn_cast_or_null<Instruction>(getUnderlyingValue()));
     break;
   }
+  case Instruction::ExtractValue: {
+    Value *Op = State.get(getOperand(0));
+    Value *Extract = Builder.CreateExtractValue(
+        Op, cast<ExtractValueInst>(getUnderlyingValue())->getIndices());
----------------
MacDue wrote:

The operand of the recipe is the return value of the call (the struct), to build the widened extract I need the original extract indices, and I'm not sure how else to access them.  

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


More information about the llvm-commits mailing list