[llvm] [VectorCombine] Fold permute of intrinsics into intrinsic of permutes: shuffle(intrinsic, poison/undef) -> intrinsic(shuffle) (PR #170052)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 3 09:22:39 PST 2025
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 166687 tests passed
* 2906 tests skipped
* 1 test failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Transforms/VectorCombine/X86/shuffle-of-fma-const.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/VectorCombine/X86/shuffle-of-fma-const.ll -passes=vector-combine -S -mtriple=x86_64-- -mcpu=x86-64 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/VectorCombine/X86/shuffle-of-fma-const.ll --check-prefixes=CHECK,SSE
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=vector-combine -S -mtriple=x86_64-- -mcpu=x86-64
# 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/Transforms/VectorCombine/X86/shuffle-of-fma-const.ll --check-prefixes=CHECK,SSE
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/VectorCombine/X86/shuffle-of-fma-const.ll -passes=vector-combine -S -mtriple=x86_64-- -mcpu=x86-64-v3 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/VectorCombine/X86/shuffle-of-fma-const.ll --check-prefixes=CHECK,AVX
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=vector-combine -S -mtriple=x86_64-- -mcpu=x86-64-v3
# 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/Transforms/VectorCombine/X86/shuffle-of-fma-const.ll --check-prefixes=CHECK,AVX
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/VectorCombine/X86/shuffle-of-fma-const.ll:8:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[F:%.*]] = tail call noundef <4 x float> @llvm.fma.v4f32(<4 x float> [[A0]], <4 x float> splat (float 0x3F8DE8D040000000), <4 x float> splat (float 0xBFB3715EE0000000))
# | ^
# | <stdin>:6:66: note: scanning from here
# | define <4 x float> @shuffle_fma_const_chain(<4 x float> %a0) #0 {
# | ^
# | <stdin>:6:66: note: with "A0" equal to "%a0"
# | define <4 x float> @shuffle_fma_const_chain(<4 x float> %a0) #0 {
# | ^
# | <stdin>:8:2: note: possible intended match here
# | %res = call <4 x float> @llvm.fma.v4f32(<4 x float> %1, <4 x float> splat (float 0x3F8DE8D040000000), <4 x float> splat (float 0xBFB3715EE0000000))
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/VectorCombine/X86/shuffle-of-fma-const.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = '<stdin>'
# | 2: source_filename = "<stdin>"
# | 3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
# | 4: target triple = "x86_64-unknown-unknown"
# | 5:
# | 6: define <4 x float> @shuffle_fma_const_chain(<4 x float> %a0) #0 {
# | next:8'0 X error: no match found
# | next:8'1 with "A0" equal to "%a0"
# | 7: %1 = shufflevector <4 x float> %a0, <4 x float> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
# | next:8'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 8: %res = call <4 x float> @llvm.fma.v4f32(<4 x float> %1, <4 x float> splat (float 0x3F8DE8D040000000), <4 x float> splat (float 0xBFB3715EE0000000))
# | next:8'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:8'2 ? possible intended match
# | 9: ret <4 x float> %res
# | next:8'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 10: }
# | next:8'0 ~~
# | 11:
# | next:8'0 ~
# | 12: define <8 x float> @concat_fma_const_chain(<4 x float> %a0, <4 x float> %a1) #0 {
# | next:8'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 13: %l = tail call noundef <4 x float> @llvm.fma.v4f32(<4 x float> %a0, <4 x float> splat (float 0x3F8DE8D040000000), <4 x float> splat (float 0xBFB3715EE0000000))
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# 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/170052
More information about the llvm-commits
mailing list