annotate clang/test/CodeGenOpenCL/fdeclare-opencl-builtins.cl @ 236:c4bab56944e8 llvm-original

LLVM 16
author kono
date Wed, 09 Nov 2022 17:45:10 +0900
parents 79ff65ed7e25
children 1f2b6ac9f198
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
1 // RUN: %clang_cc1 -emit-llvm -o - -O0 -triple spir-unknown-unknown -cl-std=CL1.2 -finclude-default-header %s \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
2 // RUN: | FileCheck %s --check-prefixes CHECK,CHECK-NOGAS
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
3 // RUN: %clang_cc1 -emit-llvm -o - -O0 -triple spir-unknown-unknown -cl-std=CL1.2 -fdeclare-opencl-builtins -finclude-default-header %s \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
4 // RUN: | FileCheck %s --check-prefixes CHECK,CHECK-NOGAS
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
5 // RUN: %clang_cc1 -emit-llvm -o - -O0 -triple spir-unknown-unknown -cl-std=CL3.0 -fdeclare-opencl-builtins -finclude-default-header %s \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
6 // RUN: | FileCheck %s --check-prefixes CHECK,CHECK-GAS
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
7 // RUN: %clang_cc1 -emit-llvm -o - -O0 -triple spir-unknown-unknown -cl-std=CL3.0 -fdeclare-opencl-builtins -finclude-default-header \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
8 // RUN: -cl-ext=-__opencl_c_generic_address_space,-__opencl_c_pipes,-__opencl_c_device_enqueue %s \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
9 // RUN: | FileCheck %s --check-prefixes CHECK,CHECK-NOGAS
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
10
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
11 // Test that mix is correctly defined.
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
12 // CHECK-LABEL: @test_float
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
13 // CHECK: call spir_func <4 x float> @_Z3mixDv4_fS_f
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
14 // CHECK: ret
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
15 void test_float(float4 x, float a) {
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
16 float4 ret = mix(x, x, a);
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
17 }
150
anatofuz
parents:
diff changeset
18
anatofuz
parents:
diff changeset
19 // Test that Attr.Const from OpenCLBuiltins.td is lowered to a readnone attribute.
anatofuz
parents:
diff changeset
20 // CHECK-LABEL: @test_const_attr
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
21 // CHECK: call spir_func i32 @_Z3maxii({{.*}}) [[ATTR_CONST:#[0-9]]]
150
anatofuz
parents:
diff changeset
22 // CHECK: ret
anatofuz
parents:
diff changeset
23 int test_const_attr(int a) {
anatofuz
parents:
diff changeset
24 return max(a, 2);
anatofuz
parents:
diff changeset
25 }
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 // Test that Attr.Pure from OpenCLBuiltins.td is lowered to a readonly attribute.
anatofuz
parents:
diff changeset
28 // CHECK-LABEL: @test_pure_attr
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
29 // CHECK: call spir_func <4 x float> @_Z11read_imagef{{.*}} [[ATTR_PURE:#[0-9]]]
150
anatofuz
parents:
diff changeset
30 // CHECK: ret
anatofuz
parents:
diff changeset
31 kernel void test_pure_attr(read_only image1d_t img) {
anatofuz
parents:
diff changeset
32 float4 resf = read_imagef(img, 42);
anatofuz
parents:
diff changeset
33 }
anatofuz
parents:
diff changeset
34
anatofuz
parents:
diff changeset
35 // Test that builtins with only one prototype are mangled.
anatofuz
parents:
diff changeset
36 // CHECK-LABEL: @test_mangling
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
37 // CHECK: call spir_func i32 @_Z12get_local_idj
150
anatofuz
parents:
diff changeset
38 kernel void test_mangling() {
anatofuz
parents:
diff changeset
39 size_t lid = get_local_id(0);
anatofuz
parents:
diff changeset
40 }
anatofuz
parents:
diff changeset
41
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
42 // Test that the correct builtin is called depending on the generic address
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
43 // space feature availability.
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
44 // CHECK-LABEL: @test_generic_optionality
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
45 // CHECK-GAS: call spir_func float @_Z5fractfPU3AS4f
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
46 // CHECK-NOGAS: call spir_func float @_Z5fractfPf
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
47 void test_generic_optionality(float a, float *b) {
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
48 float res = fract(a, b);
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
49 }
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
50
150
anatofuz
parents:
diff changeset
51 // CHECK: attributes [[ATTR_CONST]] =
anatofuz
parents:
diff changeset
52 // CHECK-SAME: readnone
anatofuz
parents:
diff changeset
53 // CHECK: attributes [[ATTR_PURE]] =
anatofuz
parents:
diff changeset
54 // CHECK-SAME: readonly