[llvm] [InstCombine][RISCV] Convert VPIntrinsics with splat operands to splats (PR #65706)
Michael Maitland via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 11 10:38:33 PDT 2023
================
@@ -729,6 +730,172 @@ bool VectorCombine::foldBitcastShuf(Instruction &I) {
return true;
}
+/// VP Intrinsics whose vector operands are both splat values may be simplified
+/// into the scalar version of the operation and the result is splatted. This
+/// can lead to scalarization down the line.
+bool VectorCombine::scalarizeVPIntrinsic(VPIntrinsic &VPI) {
+ Value *Op0 = VPI.getArgOperand(0);
+ Value *Op1 = VPI.getArgOperand(1);
+
+ if (!isSplatValue(Op0) || !isSplatValue(Op1))
----------------
michaelmaitland wrote:
> matches additional types of splats like binary ops of two splats
Would it be wrong to match binary ops of two splats?
https://github.com/llvm/llvm-project/pull/65706
More information about the llvm-commits
mailing list