[llvm] [VPlan] Add initial anlysis to infer scalar type of VPValues. (PR #69013)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 27 03:39:35 PDT 2023


================
@@ -738,7 +739,19 @@ void VPWidenRecipe::execute(VPTransformState &State) {
                       << Instruction::getOpcodeName(Opcode));
     llvm_unreachable("Unhandled instruction!");
   } // end of switch.
+
+#if !defined(NDEBUG)
+  // Verify that VPlan type inference results agree with the type of the
+  // generated values.
+  VPTypeAnalysis A(State.Builder.GetInsertBlock()->getContext());
+  for (unsigned Part = 0; Part < State.UF; ++Part) {
+    assert(VectorType::get(A.inferScalarType(getVPSingleValue()), State.VF) ==
----------------
fhahn wrote:

Issue was that overloaded function resolution was picking the more specific call `inferScalarType(VPWidenRecipe *)`, not the more general VPValue one. Renamed the recipe specific ones to `inferScalarTypeForRecipe to resolve this

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


More information about the llvm-commits mailing list