[llvm-branch-commits] [llvm] [IR] Autoupgrade trivial VP intrinsics to their non-VP counterparts (PR #212490)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue Jul 28 07:32:04 PDT 2026


github-actions[bot] wrote:

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

* 139049 tests passed
* 3590 tests skipped
* 5 tests failed

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

### MLIR
<details>
<summary>MLIR.Target/LLVMIR/Import/intrinsic.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\mlir-translate.exe -import-llvm C:\_work\llvm-project\llvm-project\mlir\test\Target\LLVMIR\Import\intrinsic.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\mlir\test\Target\LLVMIR\Import\intrinsic.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\mlir-translate.exe' -import-llvm 'C:\_work\llvm-project\llvm-project\mlir\test\Target\LLVMIR\Import\intrinsic.ll'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\mlir\test\Target\LLVMIR\Import\intrinsic.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\mlir\test\Target\LLVMIR\Import\intrinsic.ll:962:11: error: CHECK: expected string not found in input
# |  ; CHECK: "llvm.intr.vp.add"(%{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) : (vector<8xi32>, vector<8xi32>, vector<8xi1>, i32) -> vector<8xi32>
# |           ^
# | <stdin>:542:42: note: scanning from here
# |  llvm.func @vector_predication_intrinsics(%arg0: vector<8xi32>, %arg1: vector<8xi32>, %arg2: vector<8xf32>, %arg3: vector<8xf32>, %arg4: vector<8xi64>, %arg5: vector<8xf64>, %arg6: vector<8x!llvm.ptr>, %arg7: i32, %arg8: f32, %arg9: !llvm.ptr, %arg10: !llvm.ptr, %arg11: vector<8xi1>, %arg12: i32) {
# |                                          ^
# | <stdin>:546:7: note: possible intended match here
# |  %3 = "llvm.intr.vp.sdiv"(%arg0, %arg1, %arg11, %arg12) : (vector<8xi32>, vector<8xi32>, vector<8xi1>, i32) -> vector<8xi32>
# |       ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\mlir\test\Target\LLVMIR\Import\intrinsic.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            537:  llvm.func @vector_deinterleave2(%arg0: vector<4xf64>, %arg1: vector<[8]xi32>) { 
# |            538:  %0 = "llvm.intr.vector.deinterleave2"(%arg0) : (vector<4xf64>) -> !llvm.struct<(vector<2xf64>, vector<2xf64>)> 
# |            539:  %1 = "llvm.intr.vector.deinterleave2"(%arg1) : (vector<[8]xi32>) -> !llvm.struct<(vector<[4]xi32>, vector<[4]xi32>)> 
# |            540:  llvm.return 
# |            541:  } 
# |            542:  llvm.func @vector_predication_intrinsics(%arg0: vector<8xi32>, %arg1: vector<8xi32>, %arg2: vector<8xf32>, %arg3: vector<8xf32>, %arg4: vector<8xi64>, %arg5: vector<8xf64>, %arg6: vector<8x!llvm.ptr>, %arg7: i32, %arg8: f32, %arg9: !llvm.ptr, %arg10: !llvm.ptr, %arg11: vector<8xi1>, %arg12: i32) { 
# | check:962'0                                             {                                                                                                                                                                                                                                                                     search range start (exclusive)
# | check:962'1                                                                                                                                                                                                                                                                                                                   error: no match found in search range
# |            543:  %0 = llvm.add %arg0, %arg1 : vector<8xi32> 
# |            544:  %1 = llvm.sub %arg0, %arg1 : vector<8xi32> 
# |            545:  %2 = llvm.mul %arg0, %arg1 : vector<8xi32> 
# |            546:  %3 = "llvm.intr.vp.sdiv"(%arg0, %arg1, %arg11, %arg12) : (vector<8xi32>, vector<8xi32>, vector<8xi1>, i32) -> vector<8xi32> 
# | check:962'2           ?                                                                                                                        possible intended match
# |            547:  %4 = "llvm.intr.vp.udiv"(%arg0, %arg1, %arg11, %arg12) : (vector<8xi32>, vector<8xi32>, vector<8xi1>, i32) -> vector<8xi32> 
# |            548:  %5 = "llvm.intr.vp.srem"(%arg0, %arg1, %arg11, %arg12) : (vector<8xi32>, vector<8xi32>, vector<8xi1>, i32) -> vector<8xi32> 
# |            549:  %6 = "llvm.intr.vp.urem"(%arg0, %arg1, %arg11, %arg12) : (vector<8xi32>, vector<8xi32>, vector<8xi1>, i32) -> vector<8xi32> 
# |            550:  %7 = llvm.ashr %arg0, %arg1 : vector<8xi32> 
# |            551:  %8 = llvm.lshr %arg0, %arg1 : vector<8xi32> 
# |              .
# |              .
# |              .
# |            593:  %48 = llvm.intr.smin(%arg0, %arg1) : (vector<8xi32>, vector<8xi32>) -> vector<8xi32> 
# |            594:  %49 = llvm.intr.umax(%arg0, %arg1) : (vector<8xi32>, vector<8xi32>) -> vector<8xi32> 
# |            595:  %50 = llvm.intr.umin(%arg0, %arg1) : (vector<8xi32>, vector<8xi32>) -> vector<8xi32> 
# |            596:  llvm.return 
# |            597:  } 
# |            598:  llvm.func @ssa_copy(%arg0: f32) -> f32 { 
# | check:962'3                         }                       search range end (exclusive)
# |            599:  %0 = llvm.intr.ssa.copy %arg0 : f32 
# |            600:  llvm.return %0 : f32 
# |            601:  } 
# |            602:  llvm.func @ptrmask(%arg0: !llvm.ptr, %arg1: i64) -> !llvm.ptr { 
# |            603:  %0 = llvm.intr.ptrmask %arg0, %arg1 : (!llvm.ptr, i64) -> !llvm.ptr 
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

### LLVM
<details>
<summary>LLVM.Verifier/invalid-vp-intrinsics.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
not c:\_work\llvm-project\llvm-project\build\bin\llvm-as.exe < C:\_work\llvm-project\llvm-project\llvm\test\Verifier\invalid-vp-intrinsics.ll -disable-output 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Verifier\invalid-vp-intrinsics.ll
# executed command: not 'c:\_work\llvm-project\llvm-project\build\bin\llvm-as.exe' -disable-output
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Verifier\invalid-vp-intrinsics.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Verifier\invalid-vp-intrinsics.ll:7:10: error: CHECK: expected string not found in input
# | ; CHECK: VP cast intrinsic first argument and result vector lengths must be equal
# |          ^
# | <stdin>:1:1: note: scanning from here
# | Assertion failed: castIsValid(op, S, Ty) && "Invalid cast!", file C:\_work\llvm-project\llvm-project\llvm\lib\IR\Instructions.cpp, line 3105
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Verifier\invalid-vp-intrinsics.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            1: Assertion failed: castIsValid(op, S, Ty) && "Invalid cast!", file C:\_work\llvm-project\llvm-project\llvm\lib\IR\Instructions.cpp, line 3105 
# | check:7'0    {                                                                                                                                               search range start (exclusive)
# | check:7'1                                                                                                                                                    error: no match found in search range
# |            2: PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. 
# |            3: Stack dump: 
# |            4: 0. Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\llvm-as.exe -disable-output 
# |            5: Exception Code: 0xC000001D 
# |            6:  #0 0x00007ff672b36bd6 (c:\_work\llvm-project\llvm-project\build\bin\llvm-as.exe+0x266bd6) 
# |            .
# |            .
# |            .
# |           20: #14 0x00007ff6728d50f1 (c:\_work\llvm-project\llvm-project\build\bin\llvm-as.exe+0x50f1) 
# |           21: #15 0x00007ff6728d4f28 (c:\_work\llvm-project\llvm-project\build\bin\llvm-as.exe+0x4f28) 
# |           22: #16 0x00007ff6728d17f9 (c:\_work\llvm-project\llvm-project\build\bin\llvm-as.exe+0x17f9) 
# |           23: #17 0x00007ff672c50f90 (c:\_work\llvm-project\llvm-project\build\bin\llvm-as.exe+0x380f90) 
# |           24: #18 0x00007ffc66fa4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) 
# |           25: #19 0x00007ffc7393edcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) 
# | check:7'2                                                                    } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Verifier/llvm.vp.is.fpclass.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
not c:\_work\llvm-project\llvm-project\build\bin\llvm-as.exe < C:\_work\llvm-project\llvm-project\llvm\test\Verifier\llvm.vp.is.fpclass.ll 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Verifier\llvm.vp.is.fpclass.ll
# executed command: not 'c:\_work\llvm-project\llvm-project\build\bin\llvm-as.exe'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Verifier\llvm.vp.is.fpclass.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Verifier\llvm.vp.is.fpclass.ll:5:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: %ret = call <8 x i1> @llvm.vp.is.fpclass.v8f64(<8 x double> %x, i32 %variable, <8 x i1> %m, i32 %evl)
# |               ^
# | <stdin>:3:14: note: scanning from here
# | i32 %variable
# |              ^
# | <stdin>:4:2: note: possible intended match here
# |  %ret = call <8 x i1> @llvm.is.fpclass.v8f64(<8 x double> %x, i32 %variable)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Verifier\llvm.vp.is.fpclass.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |           1: c:\_work\llvm-project\llvm-project\build\bin\llvm-as.exe: assembly parsed, but does not verify as correct! 
# |           2: immarg operand has non-immediate parameter 
# |           3: i32 %variable 
# | next:5'0                 {   search range start (exclusive)
# | next:5'1                     error: no match found in search range
# |           4:  %ret = call <8 x i1> @llvm.is.fpclass.v8f64(<8 x double> %x, i32 %variable) 
# | next:5'2      ?                                                                             possible intended match
# |           5: unsupported bits for llvm.is.fpclass test mask 
# |           6: unsupported bits for llvm.is.fpclass test mask 
# | next:5'3                                                    } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Verifier/vp-intrinsics-bad.ll</summary>

```
Exit Code: 2

Command Output (stdout):
--
# RUN: at line 1
not c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=verify --disable-output C:\_work\llvm-project\llvm-project\llvm\test\Verifier\vp-intrinsics-bad.ll 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Verifier\vp-intrinsics-bad.ll
# executed command: not 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=verify --disable-output 'C:\_work\llvm-project\llvm-project\llvm\test\Verifier\vp-intrinsics-bad.ll'
# note: command had no output on stdout or stderr
# error: command failed with exit status: 1
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Verifier\vp-intrinsics-bad.ll'
# .---command stderr------------
# | FileCheck error: '<stdin>' is empty.
# | FileCheck command line:  c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Verifier\vp-intrinsics-bad.ll
# `-----------------------------
# error: command failed with exit status: 2

--

```
</details>

### LLVM-Unit
<details>
<summary>LLVM-Unit.IR/_/IRTests_exe/VPIntrinsicTest/VPModuleComplete</summary>

```
Script:
--
C:\_work\llvm-project\llvm-project\build\unittests\IR\.\IRTests.exe --gtest_filter=VPIntrinsicTest.VPModuleComplete
--
C:\_work\llvm-project\llvm-project\llvm\include\llvm/IR/VPIntrinsics.def:143
Value of: SeenIDs.count(Intrinsic::vp_add)
  Actual: false
Expected: true


```
</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/212490


More information about the llvm-branch-commits mailing list