[Openmp-commits] [llvm] [openmp] [OpenMP][offload] Fix single-thread SPMD cross-team reductions (PR #231843)
via Openmp-commits
openmp-commits at lists.llvm.org
Wed Oct 14 05:16:39 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 144109 tests passed
* 3566 tests skipped
* 1 test failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Transforms/OpenMP/spmdization_guarding_two_reaching_kernels.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -mtriple=nvptx64 -passes=openmp-opt < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\OpenMP\spmdization_guarding_two_reaching_kernels.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\OpenMP\spmdization_guarding_two_reaching_kernels.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -mtriple=nvptx64 -passes=openmp-opt
# 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\Transforms\OpenMP\spmdization_guarding_two_reaching_kernels.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\OpenMP\spmdization_guarding_two_reaching_kernels.ll:48:10: error: CHECK: expected string not found in input
# | ; CHECK: @__omp_offloading_2b_10393b5_generic_l20_kernel_environment = local_unnamed_addr constant %struct.KernelEnvironmentTy { %struct.ConfigurationEnvironmentTy { i8 0, i8 0, i8 3, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 }, ptr @[[GLOB1]], ptr null }
# | ^
# | <stdin>:14:235: note: scanning from here
# | @__omp_offloading_2b_10393b5_spmd_l12_kernel_environment = local_unnamed_addr constant %struct.KernelEnvironmentTy { %struct.ConfigurationEnvironmentTy { i8 0, i8 1, i8 3, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 }, ptr @1, ptr null }
# | ^
# | <stdin>:14:235: note: with "GLOB1" equal to "1"
# | @__omp_offloading_2b_10393b5_spmd_l12_kernel_environment = local_unnamed_addr constant %struct.KernelEnvironmentTy { %struct.ConfigurationEnvironmentTy { i8 0, i8 1, i8 3, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 }, ptr @1, ptr null }
# | ^
# | <stdin>:15:1: note: possible intended match here
# | @__omp_offloading_2b_10393b5_generic_l20_kernel_environment = local_unnamed_addr constant %struct.KernelEnvironmentTy { %struct.ConfigurationEnvironmentTy { i8 0, i8 0, i8 3, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0 }, ptr @1, ptr null }
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\OpenMP\spmdization_guarding_two_reaching_kernels.ll:288:60: error: undefined variable: GLOB3
# | ; CHECK-NEXT: call void @__kmpc_barrier_simple_spmd(ptr @[[GLOB3]], i32 [[TMP0]])
# | ^
# | <stdin>:124:16: note: with "TMP0" equal to "%0"
# | region.barrier: ; preds = %region.check.tid, %region.guarded.end
# | ^
# | <stdin>:125:2: note: possible intended match here
# | call void @__kmpc_barrier_simple_spmd(ptr @3, i32 %0)
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\OpenMP\spmdization_guarding_two_reaching_kernels.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 9:
# | 10: @0 = private unnamed_addr constant [23 x i8] c";unknown;unknown;0;0;;\00", align 1
# | 11: @1 = private unnamed_addr constant %struct.ident_t { i32 0, i32 2, i32 0, i32 0, ptr @0 }, align 8
# | 12: @2 = private unnamed_addr constant %struct.ident_t { i32 0, i32 2, i32 2, i32 0, ptr @0 }, align 8
# | 13: @G = external global i32, align 4
# | 14: @__omp_offloading_2b_10393b5_spmd_l12_kernel_environment = local_unnamed_addr constant %struct.KernelEnvironmentTy { %struct.ConfigurationEnvironmentTy { i8 0, i8 1, i8 3, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 }, ptr @1, ptr null }
# | check:48'0 { search range start (exclusive)
# | check:48'1 error: no match found in search range
# | check:48'2 with "GLOB1" equal to "1"
# | 15: @__omp_offloading_2b_10393b5_generic_l20_kernel_environment = local_unnamed_addr constant %struct.KernelEnvironmentTy { %struct.ConfigurationEnvironmentTy { i8 0, i8 0, i8 3, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0 }, ptr @1, ptr null }
# | check:48'3 ? possible intended match
# | 16: @3 = private unnamed_addr constant %struct.ident_t { i32 0, i32 2, i32 0, i32 22, ptr @0 }, align 8
# | 17:
# | 18: ; Function Attrs: convergent noinline norecurse nounwind
# | 19: define weak ptx_kernel void @__omp_offloading_2b_10393b5_spmd_l12(ptr %dyn) #0 {
# | check:48'4 } search range end (exclusive)
# | 20: entry:
# | 21: %0 = call i32 @__kmpc_target_init(ptr @__omp_offloading_2b_10393b5_spmd_l12_kernel_environment, ptr %dyn)
# | 22: %exec_user_code = icmp eq i32 %0, -1
# | 23: br i1 %exec_user_code, label %user_code.entry, label %worker.exit
# | 24:
# | .
# | .
# | .
# | 119: br label %region.guarded.end
# | 120:
# | 121: region.guarded.end: ; preds = %region.guarded
# | 122: br label %region.barrier
# | 123:
# | 124: region.barrier: ; preds = %region.check.tid, %region.guarded.end
# | next:288'0 { search range start (exclusive)
# | next:288'1 error: match failed for invalid pattern
# | next:288'2 undefined variable: GLOB3
# | next:288'3 with "TMP0" equal to "%0"
# | 125: call void @__kmpc_barrier_simple_spmd(ptr @3, i32 %0)
# | next:288'4 ? possible intended match
# | 126: br label %region.exit
# | 127:
# | 128: region.exit: ; preds = %region.barrier
# | 129: ret void
# | 130: }
# | 131:
# | 132: ; Function Attrs: noinline nosync nounwind memory(write)
# | 133: define internal void @generic_helper() #5 {
# | next:288'5 } search range end (exclusive)
# | 134: entry:
# | 135: call void @leaf() #7
# | 136: ret void
# | 137: }
# | 138:
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# 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/231843
More information about the Openmp-commits
mailing list