llvm-project/clang/test/OpenMP/spirv_locstr.cpp
Nick Sarnie c7acd0796c
[clang][OMPIRBuilder] Use default target AS to create types (#158152)
Currently we assume that `0` is the default AS, which is usually true,
but it isn't for `SPIR-V`.

Pass down the AS from `clang` and use it to create types.

After this change, we finally generate fully valid SPIR-V for a basic
OpenMP Offloading example.

Signed-off-by: Sarnie, Nick <nick.sarnie@intel.com>
2025-09-15 15:11:38 +00:00

16 lines
774 B
C++

// RUN: %clang_cc1 -verify -fopenmp -x c++ -triple x86_64-unknown-linux -fopenmp-targets=spirv64-intel -emit-llvm-bc %s -o %t-host.bc
// RUN: %clang_cc1 -verify -fopenmp -x c++ -triple spirv64-intel -fopenmp-targets=spirv64-intel -emit-llvm %s -fopenmp-is-target-device -fopenmp-host-ir-file-path %t-host.bc -o - | FileCheck %s
// expected-no-diagnostics
// CHECK: @[[#LOC:]] = private unnamed_addr addrspace(1) constant [23 x i8] c";unknown;unknown;0;0;;\00", align 1
// CHECK: = private unnamed_addr addrspace(1) constant %struct.ident_t { i32 0, i32 2, i32 0, i32 {{.*}}, ptr addrspace(4) addrspacecast (ptr addrspace(1) @[[#LOC]] to ptr addrspace(4)) }, align 8
int main() {
int ret = 0;
#pragma omp target
for(int i = 0; i < 5; i++)
ret++;
return ret;
}