1
- // TODO: previously code generation and ESIMD lowering was
2
- // a part of the same %clang_cc1 invocation, but now it is
3
- // separate. So, we can split this test into 2, where one
4
- // will be testing code generation and the second ESIMD lowering.
5
- //
6
1
// RUN: %clang_cc1 -fsycl-is-device \
7
2
// RUN: -internal-isystem %S/Inputs -triple spir64-unknown-unknown-sycldevice \
8
- // RUN: -disable-llvm-passes -emit-llvm %s -o %t
9
- // RUN: sycl-post-link -split-esimd -lower-esimd -O0 -S %t -o %t.table
10
- // RUN: FileCheck %s -input-file=%t_esimd_0.ll
3
+ // RUN: -disable-llvm-passes -emit-llvm %s -o - | FileCheck %s
11
4
12
5
// This test checks
13
- // 1) proper metadata generation for accessors used in ESIMD
14
- // kernels:
15
- // - Proper 'kernel_arg_accessor_ptr' metadata is generated by the FE for
16
- // ESIMD kernels
17
- // - Pointers originating from accessors are marked with 'buffer_t' and proper
18
- // argument kind.
6
+ // 1) Proper 'kernel_arg_accessor_ptr' metadata is generated by the FE for
7
+ // ESIMD kernels.
19
8
// 2) __init_esimd function is used to initialize the accessor rather than
20
9
// __init.
21
10
@@ -38,10 +27,6 @@ void test(int val) {
38
27
39
28
// --- Name
40
29
// CHECK-LABEL: define {{.*}}spir_kernel void @"_ZTSZZ4testiENK3$_0clERN2cl4sycl7handlerEE12esimd_kernel"(
41
- // --- Signature
42
- // CHECK: i32 addrspace(1)* "VCArgumentDesc"="buffer_t" "VCArgumentIOKind"="0" "VCArgumentKind"="2" %_arg_,
43
- // CHECK: i32 "VCArgumentDesc" "VCArgumentIOKind"="0" "VCArgumentKind"="0" %_arg_1,
44
- // CHECK: i32 addrspace(1)* "VCArgumentDesc"="buffer_t" "VCArgumentIOKind"="0" "VCArgumentKind"="2" %_arg_3)
45
30
// --- Attributes
46
31
// CHECK: {{.*}} !kernel_arg_accessor_ptr ![[ACC_PTR_ATTR:[0-9]+]] !sycl_explicit_simd !{{[0-9]+}} {{.*}}{
47
32
// --- init_esimd call is expected instead of __init:
0 commit comments