[llvm] [LV] Add initial support for vectorizing literal struct return values (PR #109833)
David Sherwood via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 14 03:42:20 PST 2025
================
@@ -1341,6 +1341,15 @@ void VPWidenRecipe::execute(VPTransformState &State) {
State.addMetadata(V, dyn_cast_or_null<Instruction>(getUnderlyingValue()));
break;
}
+ case Instruction::ExtractValue: {
+ assert(getNumOperands() == 2 && "expected single level extractvalue");
+ Value *Op = State.get(getOperand(0));
+ auto *CI = cast<ConstantInt>(getOperand(1)->getLiveInIRValue());
+ unsigned Idx = CI->getZExtValue();
+ Value *Extract = Builder.CreateExtractValue(Op, Idx);
----------------
david-arm wrote:
Perhaps just write as:
```
Value *Extract = Builder.CreateExtractValue(Op, CI->getZExtValue());
```
https://github.com/llvm/llvm-project/pull/109833
More information about the llvm-commits
mailing list