llvm-project/clang/test/CodeGenOpenCL
Yaxun Liu 39195062c2 Add OpenCL 2.0 atomic builtin functions as Clang builtin
OpenCL 2.0 atomic builtin functions have a scope argument which is ideally
represented as synchronization scope argument in LLVM atomic instructions.

Clang supports translating Clang atomic builtin functions to LLVM atomic
instructions. However it currently does not support synchronization scope
of LLVM atomic instructions. Without this, users have to use LLVM assembly
code to implement OpenCL atomic builtin functions.

This patch adds OpenCL 2.0 atomic builtin functions as Clang builtin
functions, which supports generating LLVM atomic instructions with
synchronization scope operand.

Currently only constant memory scope argument is supported. Support of
non-constant memory scope argument will be added later.

Differential Revision: https://reviews.llvm.org/D28691

llvm-svn: 310082
2017-08-04 18:16:31 +00:00
..
2011-04-15-vec-init-from-vec.cl
addr-space-struct-arg.cl CodeGen: Fix invalid bitcast for coerced function argument 2017-06-29 18:47:45 +00:00
address-space-constant-initializers.cl [AMDGPU] Temporarily change constant address space from 4 to 2 for the new address space mapping 2017-04-06 19:18:36 +00:00
address-spaces-conversions.cl [OpenCL] Fix bug in mergeTypes which causes equivalent types treated as different. 2016-04-28 17:34:57 +00:00
address-spaces-mangling.cl [OpenCL] Align fake address space map with the SPIR target maps. 2016-12-23 16:11:25 +00:00
address-spaces.cl [AMDGPU] Fix regressions on mesa/clover with libclc due to address space 2017-07-04 19:57:18 +00:00
amdgcn-automatic-variable.cl [AMDGPU] Fix size and alignment of size_t and pointer types 2017-07-05 04:58:24 +00:00
amdgcn-flat-scratch-name.cl AMDGPU: Fix inconsistent register name for flat_scratch 2016-02-27 09:06:22 +00:00
amdgcn-large-globals.cl Fix array sizes where address space is not yet known 2017-03-21 18:55:39 +00:00
amdgpu-abi-struct-coerce.cl [OpenCL] r600 needs OpenCL kernel calling convention 2017-02-22 15:01:42 +00:00
amdgpu-alignment.cl [AMDGPU] Do not require opencl triple environment for OpenCL 2017-05-23 16:15:53 +00:00
amdgpu-attrs.cl IRGen: Add optnone attribute on function during O0 2017-05-29 05:38:20 +00:00
amdgpu-call-kernel.cl AMDGPU: Set amdgpu_kernel calling convention for OpenCL kernels. 2016-06-30 09:06:33 +00:00
amdgpu-calling-conv.cl AMDGPU: Set amdgpu_kernel calling convention for OpenCL kernels. 2016-06-30 09:06:33 +00:00
amdgpu-debug-info-pointer-address-space.cl [AMDGPU] Do not require opencl triple environment for OpenCL 2017-05-23 16:15:53 +00:00
amdgpu-debug-info-variable-expression.cl [AMDGPU] Do not require opencl triple environment for OpenCL 2017-05-23 16:15:53 +00:00
amdgpu-env-amdgiz.cl [OpenCL] Map default address space to alloca address space 2017-04-11 17:24:23 +00:00
amdgpu-nullptr.cl [AMDGPU] Fix size and alignment of size_t and pointer types 2017-07-05 04:58:24 +00:00
amdgpu-sizeof-alignof.cl [AMDGPU] Fix size and alignment of size_t and pointer types 2017-07-05 04:58:24 +00:00
as_type.cl [OpenCL] Fix bug in __builtin_astype causing invalid LLVM cast instructions 2016-10-03 14:41:50 +00:00
atomic-ops-libcall.cl Add OpenCL 2.0 atomic builtin functions as Clang builtin 2017-08-04 18:16:31 +00:00
atomic-ops.cl Add OpenCL 2.0 atomic builtin functions as Clang builtin 2017-08-04 18:16:31 +00:00
blocks.cl AMDGPU: Make 0 the private nullptr value 2017-03-13 19:47:53 +00:00
bool_cast.cl [OpenCL] spir_kern by defaul: fix old test cases 2017-06-01 08:19:43 +00:00
builtins-amdgcn-gfx9.cl AMDGPU: Add fmed3 half builtin 2017-02-22 20:55:59 +00:00
builtins-amdgcn-vi.cl [AMDGPU] Add builtin functions readlane ds_permute mov_dpp 2017-03-10 01:30:46 +00:00
builtins-amdgcn.cl Resubmit r303861. 2017-05-26 21:08:20 +00:00
builtins-generic-amdgcn.cl AMDGPU: Add test for generic builtin behavior 2016-04-14 22:34:39 +00:00
builtins-r600.cl AMDGPU: Remove legacy ldexp builtin 2016-07-15 21:33:06 +00:00
byval.cl [AMDGPU] Do not require opencl triple environment for OpenCL 2017-05-23 16:15:53 +00:00
cast_image.cl [OpenCL] Add the lit test for image size which was omitted by r277647. 2016-08-04 19:35:17 +00:00
cl-strict-aliasing.cl
cl20-device-side-enqueue.cl [OpenCL] Add missing subgroup builtins 2017-08-01 13:27:09 +00:00
const-str-array-decay.cl [OpenCL] Align fake address space map with the SPIR target maps. 2016-12-23 16:11:25 +00:00
constant-addr-space-globals.cl [OpenCL] Emit function-scope variable in constant address space as static variable 2017-05-15 14:47:47 +00:00
convergent.cl clang/test/CodeGenOpenCL/convergent.cl: Satisfy -Asserts with "opt -instnamer". 2016-11-01 20:08:17 +00:00
denorms-are-zero.cl AMDGPU: Update for changed subtarget feature name 2017-01-23 22:31:14 +00:00
event_t.cl [OpenCL] Allow explicit cast of 0 to event_t. 2016-05-20 17:18:16 +00:00
ext-vector-shuffle.cl
extension-begin.cl Recommit r289979 [OpenCL] Allow disabling types and declarations associated with extensions 2016-12-18 05:18:55 +00:00
fpmath.cl Fixing build failure by adding triple option to new test condition. 2016-12-13 17:04:33 +00:00
gfx9-fp32-denorms.cl [AMDGPU][GFX9] Set +fp32-denormals for >=gfx900 unless -cl-denorms-are-zero is set 2017-04-14 05:33:57 +00:00
half.cl [OpenCL] Test on half immediate support. 2017-05-29 07:44:22 +00:00
images.cl [OpenCL] Complete image types support. 2016-04-08 13:40:33 +00:00
kernel-arg-info-single-as.cl Fix r286819 (accidentally patched multiple times. 2016-11-14 13:14:38 +00:00
kernel-arg-info.cl [OpenCL] Fix access qualifiers metadata for kernel arguments with typedef 2017-07-26 18:49:54 +00:00
kernel-attributes.cl [OpenCL] spir_kern by defaul: fix old test cases 2017-06-01 08:19:43 +00:00
kernel-metadata.cl [OpenCL] spir_kern by defaul: fix old test cases 2017-06-01 08:19:43 +00:00
kernels-have-spir-cc-by-default.cl [OpenCL] Makes kernels use the SPIR_KERNEL CC by default. 2017-06-01 07:18:49 +00:00
lifetime.cl CodeGen: Let lifetime intrinsic use alloca address space 2017-04-17 20:03:11 +00:00
local-initializer-undef.cl [OpenCL] Align fake address space map with the SPIR target maps. 2016-12-23 16:11:25 +00:00
local.cl [OpenCL] Align fake address space map with the SPIR target maps. 2016-12-23 16:11:25 +00:00
logical-ops.cl
memcpy.cl [OpenCL] Align fake address space map with the SPIR target maps. 2016-12-23 16:11:25 +00:00
no-signed-zeros.cl [OpenCL] Add missing -cl-no-signed-zeros option into driver 2016-07-08 20:28:29 +00:00
null_queue.cl Fix problems in "[OpenCL] Enabling the usage of CLK_NULL_QUEUE as compare operand." 2016-12-23 14:55:49 +00:00
opencl_types.cl [OpenCL] Generate opaque type for sampler_t and function call for the initializer 2016-07-28 19:26:30 +00:00
overload.cl [OpenCL] Added implicit conversion rank for overloading functions with vector data type in OpenCL 2017-03-21 12:55:55 +00:00
partial_initializer.cl [OpenCL] Setting constant address space for array initializers 2016-10-31 10:26:31 +00:00
pipe_builtin.cl [OpenCL] Enable subgroup extension in tests 2017-07-31 15:50:27 +00:00
pipe_types.cl [OpenCL] spir_kern by defaul: fix old test cases 2017-06-01 08:19:43 +00:00
preserve_vec3.cl Preserve vec3 type. 2017-04-04 16:40:25 +00:00
private-array-initialization.cl [OpenCL] Setting constant address space for array initializers 2016-10-31 10:26:31 +00:00
ptx-calls.cl [OpenCL] spir_kern by defaul: fix old test cases 2017-06-01 08:19:43 +00:00
ptx-kernels.cl [OpenCL] spir_kern by defaul: fix old test cases 2017-06-01 08:19:43 +00:00
relaxed-fpmath.cl [OpenCL] Extended mapping of parcing CodeGen arguments 2017-03-27 10:38:01 +00:00
sampler.cl [OpenCL] Enables passing sampler initializer to function argument 2017-04-05 09:02:56 +00:00
shifts.cl Update clang for D20348 2016-06-14 21:02:05 +00:00
single-precision-constant.cl
size_t.cl [AMDGPU] Do not require opencl triple environment for OpenCL 2017-05-23 16:15:53 +00:00
spir-calling-conv.cl
spir32_target.cl
spir64_target.cl
spir_version.cl [OpenCL] Fix OpenCL and SPIR version metadata generation. 2017-06-20 14:30:18 +00:00
str_literals.cl [OpenCL] Align fake address space map with the SPIR target maps. 2016-12-23 16:11:25 +00:00
to_addr_builtin.cl [OpenCL] Added underscores to the names of 'to_addr' OpenCL built-ins. 2016-08-04 18:06:27 +00:00
unroll-hint.cl [OpenCL] Enable unroll hint for OpenCL 1.x. 2016-12-13 14:02:35 +00:00
vectorLoadStore.cl
vector_literals_nested.cl
vector_literals_valid.cl
vector_logops.cl
vector_odd.cl
vector_shufflevector_valid.cl Fix invalid shufflevector operands 2015-08-02 15:28:10 +00:00
vla.cl [OpenCL] Map default address space to alloca address space 2017-04-11 17:24:23 +00:00