brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 81f8936 Raw
46 lines · cpp
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals --version 32// RUN: %clang_cc1 -fsycl-is-device -disable-llvm-passes \3// RUN:  -triple spir64 -fexceptions -emit-llvm -fno-ident %s -o - | FileCheck %s4 5int foo();6 7// CHECK-LABEL: define dso_local spir_func void @_Z3barv(8// CHECK-SAME: ) #[[ATTR2:[0-9]+]] {9// CHECK-NEXT:  entry:10// CHECK-NEXT:    [[A:%.*]] = alloca i32, align 411// CHECK-NEXT:    [[A_ASCAST:%.*]] = addrspacecast ptr [[A]] to ptr addrspace(4)12// CHECK-NEXT:    [[CALL:%.*]] = call spir_func noundef i32 @_Z3foov() #[[ATTR3:[0-9]+]]13// CHECK-NEXT:    store i32 [[CALL]], ptr addrspace(4) [[A_ASCAST]], align 414// CHECK-NEXT:    ret void15//16void bar() {17  int a = foo();18}19 20// CHECK-LABEL: define dso_local spir_func noundef i32 @_Z3foov(21// CHECK-SAME: ) #[[ATTR2]] {22// CHECK-NEXT:  entry:23// CHECK-NEXT:    [[RETVAL:%.*]] = alloca i32, align 424// CHECK-NEXT:    [[RETVAL_ASCAST:%.*]] = addrspacecast ptr [[RETVAL]] to ptr addrspace(4)25// CHECK-NEXT:    ret i32 126//27int foo() {28  return 1;29}30 31template <typename Name, typename Func>32[[clang::sycl_kernel_entry_point(Name)]] void kernel_single_task(const Func &kernelFunc) {33  kernelFunc();34}35 36int main() {37  kernel_single_task<class fake_kernel>([] { bar(); });38  return 0;39}40//.41// CHECK: attributes #0 = { convergent mustprogress noinline norecurse nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" }42// CHECK: attributes #1 = { convergent nounwind }43//.44// CHECK: !{{[0-9]+}} = !{i32 1, !"wchar_size", i32 4}45//.46