[llvm-branch-commits] [llvm] [LV] NFCI: Create VPExpressions in transformToPartialReductions. (PR #182863)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Thu Mar 12 07:04:30 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 3104 tests passed
* 29 tests skipped

All executed tests passed, but another part of the build **failed**. Click on a failure below to see the details.

<details>
<summary>[code=1] lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/VPlanTransforms.cpp.obj</summary>

```
FAILED: [code=1] lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/VPlanTransforms.cpp.obj
sccache C:\clang\clang-msvc\bin\clang-cl.exe  /nologo -TP -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\_work\llvm-project\llvm-project\build\lib\Transforms\Vectorize -IC:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize -IC:\_work\llvm-project\llvm-project\build\include -IC:\_work\llvm-project\llvm-project\llvm\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- -Werror=unguarded-availability-new /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /O2 /Ob2  -std:c++17 -MD -UNDEBUG /EHs-c- /GR- /showIncludes /Folib\Transforms\Vectorize\CMakeFiles\LLVMVectorize.dir\VPlanTransforms.cpp.obj /Fdlib\Transforms\Vectorize\CMakeFiles\LLVMVectorize.dir\LLVMVectorize.pdb -c -- C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp
C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp(4463,45): warning: lambda capture 'Red' is not used [-Wunused-lambda-capture]
4463 |   auto ExtendAndReplaceConstantOp = [&Ctx, &Red](VPWidenCastRecipe *ExtA,
|                                          ~~~^~~
C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp(6241,29): error: no matching constructor for initialization of 'VPPartialReductionChain'
6241 |     VPPartialReductionChain Link(
|                             ^
6242 |         {UpdateR, *ExtendedOp,
|         ~~~~~~~~~~~~~~~~~~~~~~
6243 |          static_cast<unsigned>(PHISize.getKnownScalarFactor(ExtSrcSize)), RK});
|          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp(5815,8): note: candidate constructor (the implicit copy constructor) not viable: cannot convert initializer list argument to 'const VPPartialReductionChain'
5815 | struct VPPartialReductionChain {
|        ^~~~~~~~~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp(5815,8): note: candidate constructor (the implicit move constructor) not viable: cannot convert initializer list argument to 'VPPartialReductionChain'
5815 | struct VPPartialReductionChain {
|        ^~~~~~~~~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp(5815,8): note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 1 was provided
C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp(6245,13): error: no viable conversion from '(lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp:6245:13)' to 'const std::function<bool (ElementCount)>'
6245 |             [&](ElementCount VF) {
|             ^~~~~~~~~~~~~~~~~~~~~~
6246 |               InstructionCost Cost =
|               ~~~~~~~~~~~~~~~~~~~~~~
6247 |                   getPartialReductionLinkCost(CostCtx, Link, VF);
|                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6248 |               Link.PartialReductionCost[VF] = Cost;
|               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6249 |               return Cost.isValid();
|               ~~~~~~~~~~~~~~~~~~~~~~
6250 |             },
|             ~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\functional(1096,5): note: candidate constructor not viable: no known conversion from '(lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp:6245:13)' to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
1096 |     function(nullptr_t) noexcept {}
|     ^        ~~~~~~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\functional(1098,5): note: candidate constructor not viable: no known conversion from '(lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp:6245:13)' to 'const function<bool (llvm::ElementCount)> &' for 1st argument
1098 |     function(const function& _Right) {
|     ^        ~~~~~~~~~~~~~~~~~~~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\functional(1149,5): note: candidate constructor not viable: no known conversion from '(lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp:6245:13)' to 'function<bool (llvm::ElementCount)> &&' for 1st argument
1149 |     function(function&& _Right) noexcept {
|     ^        ~~~~~~~~~~~~~~~~~
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\functional(1103,5): note: candidate template ignored: requirement 'conjunction_v<std::negation<std::is_same<(lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp:6245:13), std::function<bool (llvm::ElementCount)>>>, std::_Is_invocable_r<bool, (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp:6245:13) &, llvm::ElementCount>>' was not satisfied [with _Fx = (lambda at C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\VPlanTransforms.cpp:6245:13)]
1103 |     function(_Fx&& _Func) {
|     ^
C:\_work\llvm-project\llvm-project\llvm\lib\Transforms\Vectorize\LoopVectorizationPlanner.h(605,69): note: passing argument to parameter 'Predicate' here
605 |   getDecisionAndClampRange(const std::function<bool(ElementCount)> &Predicate,
|                                                                     ^
1 warning and 2 errors generated.
```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

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


More information about the llvm-branch-commits mailing list