[clang] [llvm] [OpenMP] Fix convention of SPIRV outline functions (PR #192450)

via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 16 06:53:49 PDT 2026


github-actions[bot] wrote:

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

* 53662 tests passed
* 1115 tests skipped
* 1 test failed

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

### Clang
<details>
<summary>Clang.OpenMP/metadirective_device_arch_codegen.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -fopenmp -x c++ -w -std=c++11 -triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm-bc C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp -o C:\_work\llvm-project\llvm-project\build\tools\clang\test\OpenMP\Output\metadirective_device_arch_codegen.cpp.tmp-ppc-host.bc
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -fopenmp -x c++ -w -std=c++11 -triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm-bc 'C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp' -o 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\OpenMP\Output\metadirective_device_arch_codegen.cpp.tmp-ppc-host.bc'
# note: command had no output on stdout or stderr
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -fopenmp -x c++ -w -std=c++11 -triple amdgcn-amd-amdhsa -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp -fopenmp-is-target-device -fopenmp-host-ir-file-path C:\_work\llvm-project\llvm-project\build\tools\clang\test\OpenMP\Output\metadirective_device_arch_codegen.cpp.tmp-ppc-host.bc -target-cpu gfx906 -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe --allow-unused-prefixes C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -fopenmp -x c++ -w -std=c++11 -triple amdgcn-amd-amdhsa -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm 'C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp' -fopenmp-is-target-device -fopenmp-host-ir-file-path 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\OpenMP\Output\metadirective_device_arch_codegen.cpp.tmp-ppc-host.bc' -target-cpu gfx906 -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' --allow-unused-prefixes 'C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp'
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -fopenmp -x c++ -w -std=c++11 -triple x86_64-unknown-unknown -fopenmp-targets=spirv64-intel -emit-llvm-bc C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp -o C:\_work\llvm-project\llvm-project\build\tools\clang\test\OpenMP\Output\metadirective_device_arch_codegen.cpp.tmp-ppc-spirv-host.bc
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -fopenmp -x c++ -w -std=c++11 -triple x86_64-unknown-unknown -fopenmp-targets=spirv64-intel -emit-llvm-bc 'C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp' -o 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\OpenMP\Output\metadirective_device_arch_codegen.cpp.tmp-ppc-spirv-host.bc'
# note: command had no output on stdout or stderr
# RUN: at line 4
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -fopenmp -x c++ -w -std=c++11 -triple spirv64-intel -fopenmp-targets=spirv64-intel -emit-llvm C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp -fopenmp-is-target-device -fopenmp-host-ir-file-path C:\_work\llvm-project\llvm-project\build\tools\clang\test\OpenMP\Output\metadirective_device_arch_codegen.cpp.tmp-ppc-spirv-host.bc  -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe --allow-unused-prefixes C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -fopenmp -x c++ -w -std=c++11 -triple spirv64-intel -fopenmp-targets=spirv64-intel -emit-llvm 'C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp' -fopenmp-is-target-device -fopenmp-host-ir-file-path 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\OpenMP\Output\metadirective_device_arch_codegen.cpp.tmp-ppc-spirv-host.bc' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' --allow-unused-prefixes 'C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp:56:11: error: CHECK: expected string not found in input
# | // CHECK: define internal void @[[METADIRECTIVE]]_omp_outlined
# |           ^
# | <stdin>:72:10: note: scanning from here
# |  ret void
# |          ^
# | <stdin>:72:10: note: with "METADIRECTIVE" equal to "__omp_offloading_7e4838ac_e069fe57__Z14metadirective1v_l32"
# |  ret void
# |          ^
# | <stdin>:81:1: note: possible intended match here
# | define internal spir_func void @__omp_offloading_7e4838ac_e069fe57__Z14metadirective1v_l32_omp_outlined(ptr addrspace(4) noalias noundef %.global_tid., ptr addrspace(4) noalias noundef %.bound_tid., ptr addrspace(4) noundef align 4 dereferenceable(4096) %v3, ptr addrspace(4) noundef align 4 dereferenceable(4096) %v1, ptr addrspace(4) noundef align 4 dereferenceable(4096) %v2) addrspace(9) #1 {
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\OpenMP\metadirective_device_arch_codegen.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            67:  %5 = call spir_func addrspace(9) i32 @__kmpc_global_thread_num(ptr addrspace(4) addrspacecast (ptr addrspace(1) @1 to ptr addrspace(4))) 
# |            68:  store i32 0, ptr addrspace(4) %.zero.addr.ascast, align 4 
# |            69:  store i32 %5, ptr addrspace(4) %.threadid_temp..ascast, align 4 
# |            70:  call spir_func addrspace(9) void @__omp_offloading_7e4838ac_e069fe57__Z14metadirective1v_l32_omp_outlined(ptr addrspace(4) %.threadid_temp..ascast, ptr addrspace(4) %.zero.addr.ascast, ptr addrspace(4) %0, ptr addrspace(4) %1, ptr addrspace(4) %2) #2 
# |            71:  call spir_func addrspace(9) void @__kmpc_target_deinit() 
# |            72:  ret void 
# | check:56'0              X error: no match found
# | check:56'1                with "METADIRECTIVE" equal to "__omp_offloading_7e4838ac_e069fe57__Z14metadirective1v_l32"
# |            73:  
# | check:56'0     ~
# |            74: worker.exit: ; preds = %entry 
# | check:56'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            75:  ret void 
# | check:56'0     ~~~~~~~~~~
# |            76: } 
# | check:56'0     ~~
# |            77:  
# | check:56'0     ~
# |            78: declare spir_func i32 @__kmpc_target_init(ptr addrspace(4), ptr addrspace(4)) addrspace(9) 
# | check:56'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            79:  
# | check:56'0     ~
# |            80: ; Function Attrs: noinline norecurse nounwind optnone 
# | check:56'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            81: define internal spir_func void @__omp_offloading_7e4838ac_e069fe57__Z14metadirective1v_l32_omp_outlined(ptr addrspace(4) noalias noundef %.global_tid., ptr addrspace(4) noalias noundef %.bound_tid., ptr addrspace(4) noundef align 4 dereferenceable(4096) %v3, ptr addrspace(4) noundef align 4 dereferenceable(4096) %v1, ptr addrspace(4) noundef align 4 dereferenceable(4096) %v2) addrspace(9) #1 { 
# | check:56'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:56'2     ?                                                                                                                                                                                                                                                                                                                                                                                                             possible intended match
# |            82: entry: 
# | check:56'0     ~~~~~~~
# |            83:  %.global_tid..addr = alloca ptr addrspace(4), align 8 
# | check:56'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            84:  %.bound_tid..addr = alloca ptr addrspace(4), align 8 
# | check:56'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            85:  %v3.addr = alloca ptr addrspace(4), align 8 
# | check:56'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            86:  %v1.addr = alloca ptr addrspace(4), align 8 
# | check:56'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/192450


More information about the cfe-commits mailing list