28 lines · plain
1; Ensure that the backend satisfies the requirement of the verifier2; that disallows uses of intrinsic global variables.3 4; int *ptr_0 = nullptr;5; void *ptr_1 = ptr_0;6; clang -S -emit-llvm --target=spir example.cpp7 8; Test passes if use of "-verify-machineinstrs" doesn't lead to crash.9; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s10; CHECK: OpFunction11 12@ptr_0 = dso_local global ptr null, align 413@ptr_1 = dso_local global ptr null, align 414@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_example.cpp, ptr null }]15 16define internal spir_func void @__cxx_global_var_init() {17entry:18 %0 = load ptr, ptr @ptr_0, align 419 store ptr %0, ptr @ptr_1, align 420 ret void21}22 23define internal spir_func void @_GLOBAL__sub_I_example.cpp() {24entry:25 call spir_func void @__cxx_global_var_init()26 ret void27}28