[llvm] [VPlan] Move call widening decision to VPlan. (NFCI) (PR #195518)
via llvm-commits
llvm-commits at lists.llvm.org
Wed May 6 02:52:41 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 173797 tests passed
* 3297 tests skipped
* 1 test failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.CodeGen/WebAssembly/partial-reduce-accumulate.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -mattr=+simd128 -passes=loop-vectorize /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/partial-reduce-accumulate.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=wasm32 -mattr=+simd128 -verify-machineinstrs -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/partial-reduce-accumulate.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -mattr=+simd128 -passes=loop-vectorize /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/partial-reduce-accumulate.ll
# .---command stderr------------
# | opt: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp:170: Type *llvm::VPTypeAnalysis::inferScalarTypeForRecipe(const VPWidenRecipe *): Assertion `ResTy == inferScalarType(R->getOperand(1)) && "types for both operands must match for binary op"' failed.
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
# | Stack dump:
# | 0. Program arguments: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -mattr=+simd128 -passes=loop-vectorize /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/partial-reduce-accumulate.ll
# | 1. Running pass "function(loop-vectorize<no-interleave-forced-only;no-vectorize-forced-only;>)" on module "/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/partial-reduce-accumulate.ll"
# | 2. Running pass "loop-vectorize<no-interleave-forced-only;no-vectorize-forced-only;>" on function "accumulate_max_u8_u8"
# | #0 0x00000000051a8cc8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:880:13
# | #1 0x00000000051a5b21 llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
# | #2 0x00000000051a9e11 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:448:38
# | #3 0x00007e52bb304330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
# | #4 0x00007e52bb35db2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
# | #5 0x00007e52bb30427e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
# | #6 0x00007e52bb2e78ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
# | #7 0x00007e52bb2e781b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
# | #8 0x00007e52bb2fa517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
# | #9 0x00000000068b62d6 cast<llvm::VPConstantInt, llvm::VPValue> /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Support/Casting.h:572:3
# | #10 0x00000000068b62d6 llvm::VPTypeAnalysis::inferScalarTypeForRecipe(llvm::VPWidenRecipe const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp:186:9
# | #11 0x00000000068b531c operator()<llvm::VPWidenRecipe> /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp:0:46
# | #12 0x00000000068b531c Case<llvm::VPWidenRecipe, (lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp:316:15) &> /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/TypeSwitch.h:104:22
# | #13 0x00000000068b531c llvm::VPTypeAnalysis::inferScalarType(llvm::VPValue const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp:314:12
# | #14 0x0000000006922bb2 getPartialReductionLinkCost /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:6122:33
# | #15 0x0000000006922bb2 operator() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:6385:34
# | #16 0x0000000006922bb2 operator() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:6443:22
# | #17 0x0000000006922bb2 __invoke_impl<bool, (lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:6442:13) &, llvm::ElementCount> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:61:14
# | #18 0x0000000006922bb2 __invoke_r<bool, (lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:6442:13) &, llvm::ElementCount> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:114:9
# | #19 0x0000000006922bb2 std::_Function_handler<bool (llvm::ElementCount), llvm::VPlanTransforms::createPartialReductions(llvm::VPlan&, llvm::VPCostContext&, llvm::VFRange&)::$_0>::_M_invoke(std::_Any_data const&, llvm::ElementCount&&) /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_function.h:290:9
# | #20 0x000000000686c23e operator() /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_function.h:591:9
# | #21 0x000000000686c23e llvm::LoopVectorizationPlanner::getDecisionAndClampRange(std::function<bool (llvm::ElementCount)> const&, llvm::VFRange&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlan.cpp:1659:32
# | #22 0x00000000068f1db5 llvm::VPlanTransforms::createPartialReductions(llvm::VPlan&, llvm::VPCostContext&, llvm::VFRange&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:6441:10
# | #23 0x0000000006821262 runPass<true, void (&)(llvm::VPlan &, llvm::VPCostContext &, llvm::VFRange &), llvm::VPCostContext &, llvm::VFRange &> /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/VPlanTransforms.h:0:12
# | #24 0x0000000006821262 llvm::LoopVectorizationPlanner::tryToBuildVPlanWithVPRecipes(std::unique_ptr<llvm::VPlan, std::default_delete<llvm::VPlan>>, llvm::VFRange&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:7032:5
# | #25 0x00000000068175b2 ~unique_ptr /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:403:6
# | #26 0x00000000068175b2 llvm::LoopVectorizationPlanner::buildVPlansWithVPRecipes(llvm::ElementCount, llvm::ElementCount) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:6812:17
# | #27 0x0000000006816827 llvm::LoopVectorizationPlanner::plan(llvm::ElementCount, unsigned int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:5834:3
# | #28 0x00000000068269c9 llvm::LoopVectorizePass::processLoop(llvm::Loop*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:0:7
# | #29 0x0000000006830d2b llvm::LoopVectorizePass::runImpl(llvm::Function&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:8570:27
# | #30 0x00000000068315d4 llvm::LoopVectorizePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:8608:32
# | #31 0x00000000053cca57 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/IR/PassManagerImpl.h:80:8
# | #32 0x00000000053d11e8 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/IR/PassManager.cpp:132:23
# | #33 0x00000000053cb827 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/IR/PassManagerImpl.h:80:8
# | #34 0x000000000667b352 ~SmallPtrSetImplBase /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallPtrSet.h:89:9
# | #35 0x000000000667b352 ~PreservedAnalyses /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/IR/Analysis.h:112:7
# | #36 0x000000000667b352 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool, bool) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/tools/opt/NewPMDriver.cpp:574:3
# | #37 0x0000000005147a98 optMain /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/tools/opt/optdriver.cpp:0:10
# | #38 0x00007e52bb2e91ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
# | #39 0x00007e52bb2e928b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
# | #40 0x0000000005141565 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt+0x5141565)
# `-----------------------------
# error: command failed with exit status: -6
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=wasm32 -mattr=+simd128 -verify-machineinstrs -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/partial-reduce-accumulate.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/partial-reduce-accumulate.ll:7:16: error: CHECK-LABEL: expected string not found in input
# | ; CHECK-LABEL: accumulate_add_u8_u8:
# | ^
# | <stdin>:1:1: note: scanning from here
# | .file "<stdin>"
# | ^
# | <stdin>:15:6: note: possible intended match here
# | .ascii "multivalue"
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/partial-reduce-accumulate.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: .file "<stdin>"
# | label:7'0 X~~~~~~~~~~~~~~~~ error: no match found
# | 2: .section .custom_section.target_features,"",@
# | label:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3: .int8 9
# | label:7'0 ~~~~~~~~~
# | 4: .int8 43
# | label:7'0 ~~~~~~~~~~
# | 5: .int8 11
# | label:7'0 ~~~~~~~~~~
# | 6: .ascii "bulk-memory"
# | label:7'0 ~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 10: .int8 43
# | label:7'0 ~~~~~~~~~~
# | 11: .int8 22
# | label:7'0 ~~~~~~~~~~
# | 12: .ascii "call-indirect-overlong"
# | label:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 13: .int8 43
# | label:7'0 ~~~~~~~~~~
# | 14: .int8 10
# | label:7'0 ~~~~~~~~~~
# | 15: .ascii "multivalue"
# | label:7'0 ~~~~~~~~~~~~~~~~~~~~~
# | label:7'1 ? possible intended match
# | 16: .int8 43
# | label:7'0 ~~~~~~~~~~
# | 17: .int8 15
# | label:7'0 ~~~~~~~~~~
# | 18: .ascii "mutable-globals"
# | label:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 19: .int8 43
# | label:7'0 ~~~~~~~~~~
# | 20: .int8 19
# | label:7'0 ~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</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/195518
More information about the llvm-commits
mailing list