[llvm] [VPlan] Only apply forced cost to recipes with underlying values. (PR #168372)

via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 21 02:47:31 PST 2025


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 166214 tests passed
* 2849 tests skipped
* 1 test failed

## Failed Tests
(click on a test name to see its output)

### LLVM
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -p loop-vectorize -force-target-instruction-cost=1 -S /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefixes=COMMON,COST1 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -p loop-vectorize -force-target-instruction-cost=1 -S /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefixes=COMMON,COST1 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll:389:16: error: COMMON-NEXT: expected string not found in input
# | ; COMMON-NEXT: [[SCEVGEP:%.*]] = getelementptr i8, ptr [[DST]], i64 4
# |                ^
# | <stdin>:323:6: note: scanning from here
# | loop: ; preds = %loop.latch, %entry
# |      ^
# | <stdin>:323:6: note: with "DST" equal to "%dst"
# | loop: ; preds = %loop.latch, %entry
# |      ^
# | <stdin>:336:2: note: possible intended match here
# |  store i32 %rem, ptr %dst, align 4
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           318:  
# |           319: define void @loop_with_freeze_and_conditional_srem(ptr %dst, ptr %keyinfo, ptr %invariant.ptr, i32 %divisor) { 
# |           320: entry: 
# |           321:  br label %loop 
# |           322:  
# |           323: loop: ; preds = %loop.latch, %entry 
# | next:389'0          X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | next:389'1                                          with "DST" equal to "%dst"
# |           324:  %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop.latch ] 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           325:  %loaded = load i32, ptr %invariant.ptr, align 4 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           326:  %frozen = freeze i32 %loaded 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           327:  %cmp = icmp eq i32 %frozen, 0 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           328:  br i1 %cmp, label %if.zero, label %if.nonzero 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           331:  store i32 0, ptr %keyinfo, align 4 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           332:  br label %loop.latch 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           333:  
# | next:389'0     ~
# |           334: if.nonzero: ; preds = %loop 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           335:  %rem = srem i32 1, %divisor 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           336:  store i32 %rem, ptr %dst, align 4 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:389'2      ?                                  possible intended match
# |           337:  br label %loop.latch 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           338:  
# | next:389'0     ~
# |           339: loop.latch: ; preds = %if.nonzero, %if.zero 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           340:  %iv.next = add i64 %iv, 1 
# | next:389'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           341:  %exitcond = icmp eq i64 %iv, 32 
# | next:389'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/168372


More information about the llvm-commits mailing list