r360783 - Test commit
Author: kpet Date: Wed May 15 09:39:28 2019 New Revision: 360783 URL: http://llvm.org/viewvc/llvm-project?rev=360783&view=rev Log: Test commit Remove stray space. Signed-off-by: Kevin Petit Modified: cfe/trunk/lib/Sema/SemaType.cpp Modified: cfe/trunk/lib/Sema/SemaType.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaType.cpp?rev=360783&r1=360782&r2=360783&view=diff == --- cfe/trunk/lib/Sema/SemaType.cpp (original) +++ cfe/trunk/lib/Sema/SemaType.cpp Wed May 15 09:39:28 2019 @@ -7561,7 +7561,7 @@ static void processTypeAttrs(TypeProcess state.getDeclarator().isPrototypeContext() && !hasOuterPointerLikeChunk(state.getDeclarator(), endIndex); if (checkNullabilityTypeSpecifier( - state, + state, type, attr, allowOnArrayType)) { ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r361641 - [OpenCL] Add support for the cl_arm_integer_dot_product extensions
Author: kpet Date: Fri May 24 07:53:52 2019 New Revision: 361641 URL: http://llvm.org/viewvc/llvm-project?rev=361641&view=rev Log: [OpenCL] Add support for the cl_arm_integer_dot_product extensions The specification is available in the Khronos OpenCL registry: https://www.khronos.org/registry/OpenCL/extensions/arm/cl_arm_integer_dot_product.txt Signed-off-by: Kevin Petit Added: cfe/trunk/test/CodeGenOpenCL/arm-integer-dot-product.cl cfe/trunk/test/SemaOpenCL/arm-integer-dot-product.cl Modified: cfe/trunk/include/clang/Basic/OpenCLExtensions.def cfe/trunk/lib/Headers/opencl-c.h Modified: cfe/trunk/include/clang/Basic/OpenCLExtensions.def URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/OpenCLExtensions.def?rev=361641&r1=361640&r2=361641&view=diff == --- cfe/trunk/include/clang/Basic/OpenCLExtensions.def (original) +++ cfe/trunk/include/clang/Basic/OpenCLExtensions.def Fri May 24 07:53:52 2019 @@ -81,6 +81,12 @@ OPENCLEXT_INTERNAL(cl_clang_storage_clas OPENCLEXT_INTERNAL(cl_amd_media_ops, 100, ~0U) OPENCLEXT_INTERNAL(cl_amd_media_ops2, 100, ~0U) +// ARM OpenCL extensions +OPENCLEXT_INTERNAL(cl_arm_integer_dot_product_int8, 120, ~0U) +OPENCLEXT_INTERNAL(cl_arm_integer_dot_product_accumulate_int8, 120, ~0U) +OPENCLEXT_INTERNAL(cl_arm_integer_dot_product_accumulate_int16, 120, ~0U) +OPENCLEXT_INTERNAL(cl_arm_integer_dot_product_accumulate_saturate_int8, 120, ~0U) + // Intel OpenCL extensions OPENCLEXT_INTERNAL(cl_intel_subgroups, 120, ~0U) OPENCLEXT_INTERNAL(cl_intel_subgroups_short, 120, ~0U) Modified: cfe/trunk/lib/Headers/opencl-c.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/opencl-c.h?rev=361641&r1=361640&r2=361641&view=diff == --- cfe/trunk/lib/Headers/opencl-c.h (original) +++ cfe/trunk/lib/Headers/opencl-c.h Fri May 24 07:53:52 2019 @@ -17033,6 +17033,34 @@ uint8 __ovld amd_sadw(uint8 src0, uint8 uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2); #endif // cl_amd_media_ops2 +#if defined(cl_arm_integer_dot_product_int8) +#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : begin +uint __ovld arm_dot(uchar4 a, uchar4 b); +int __ovld arm_dot(char4 a, char4 b); +#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : end +#endif // defined(cl_arm_integer_dot_product_int8) + +#if defined(cl_arm_integer_dot_product_accumulate_int8) +#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : begin +uint __ovld arm_dot_acc(uchar4 a, uchar4 b, uint c); +int __ovld arm_dot_acc(char4 a, char4 b, int c); +#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : end +#endif // defined(cl_arm_integer_dot_product_accumulate_int8) + +#if defined(cl_arm_integer_dot_product_accumulate_int16) +#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : begin +uint __ovld arm_dot_acc(ushort2 a, ushort2 b, uint c); +int __ovld arm_dot_acc(short2 a, short2 b, int c); +#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : end +#endif // defined(cl_arm_integer_dot_product_accumulate_int16) + +#if defined(cl_arm_integer_dot_product_accumulate_saturate_int8) +#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : begin +uint __ovld arm_dot_acc_sat(uchar4 a, uchar4 b, uint c); +int __ovld arm_dot_acc_sat(char4 a, char4 b, int c); +#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : end +#endif // defined(cl_arm_integer_dot_product_accumulate_saturate_int8) + // Disable any extensions we may have enabled previously. #pragma OPENCL EXTENSION all : disable Added: cfe/trunk/test/CodeGenOpenCL/arm-integer-dot-product.cl URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenOpenCL/arm-integer-dot-product.cl?rev=361641&view=auto == --- cfe/trunk/test/CodeGenOpenCL/arm-integer-dot-product.cl (added) +++ cfe/trunk/test/CodeGenOpenCL/arm-integer-dot-product.cl Fri May 24 07:53:52 2019 @@ -0,0 +1,38 @@ +// RUN: %clang_cc1 %s -triple spir-unknown-unknown -finclude-default-header -cl-std=CL1.2 -emit-llvm -o - -O0 | FileCheck %s + +#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : enable +void test_int8(uchar4 ua, uchar4 ub, char4 sa, char4 sb) { +uint ur = arm_dot(ua, ub); +// CHECK: call spir_func i32 @_Z7arm_dotDv4_hS_ +int sr = arm_dot(sa, sb); +// CHECK: call spir_func i32 @_Z7arm_dotDv4_cS_ +} +#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : disable + +#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : enable +void test_accumulate_int8(uchar4 ua, uchar4 ub, uint uc, char4 sa, char4 sb, int c) { +uint ur = arm_dot_acc(ua, ub, uc); +// CHECK: call spir_func i32 @_Z11arm_dot_accDv4_hS_j +int sr = arm_dot_acc(sa, sb, c); +// CHEC
[clang] b8b6a5b - [OpenCL] Fix parsing of opencl-c.h as CL 3.0 with device-scope atomics enabled
Author: Kevin Petit Date: 2021-11-04T14:17:45Z New Revision: b8b6a5bc86f570a6fb94b88b8c9d634c3af71eca URL: https://github.com/llvm/llvm-project/commit/b8b6a5bc86f570a6fb94b88b8c9d634c3af71eca DIFF: https://github.com/llvm/llvm-project/commit/b8b6a5bc86f570a6fb94b88b8c9d634c3af71eca.diff LOG: [OpenCL] Fix parsing of opencl-c.h as CL 3.0 with device-scope atomics enabled https://reviews.llvm.org/D108392 Signed-off-by: Kevin Petit Added: Modified: clang/lib/Headers/opencl-c.h Removed: diff --git a/clang/lib/Headers/opencl-c.h b/clang/lib/Headers/opencl-c.h index 562e0551ffdc6..f3a9ecdec65c1 100644 --- a/clang/lib/Headers/opencl-c.h +++ b/clang/lib/Headers/opencl-c.h @@ -1,7 +1,7 @@ uint __ovld atomic_fetch_or(volatile __local atomic_uint *object, uint operand); int __ovld atomic_fetch_xor(volatile __global atomic_int *object, int operand); int __ovld atomic_fetch_xor(volatile __local atomic_int *object, int operand); uint __ovld atomic_fetch_xor(volatile __global atomic_uint *object, uint operand); -uint __ovld atomic_fetch_xor(volatile __local atomic_uint *object, uint operand);i +uint __ovld atomic_fetch_xor(volatile __local atomic_uint *object, uint operand); int __ovld atomic_fetch_and(volatile __global atomic_int *object, int operand); int __ovld atomic_fetch_and(volatile __local atomic_int *object, int operand); uint __ovld atomic_fetch_and(volatile __global atomic_uint *object, uint operand); ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 9d25ce7 - [OpenCL] Fix parsing of opencl-c.h in CL 3.0
Author: Kevin Petit Date: 2021-03-30T16:17:46+01:00 New Revision: 9d25ce743a95a9ad03c0a4b3a705f85c2de52398 URL: https://github.com/llvm/llvm-project/commit/9d25ce743a95a9ad03c0a4b3a705f85c2de52398 DIFF: https://github.com/llvm/llvm-project/commit/9d25ce743a95a9ad03c0a4b3a705f85c2de52398.diff LOG: [OpenCL] Fix parsing of opencl-c.h in CL 3.0 Ensure that the cl_khr_3d_image_writes pragma is enabled by making cl_khr_3d_image_writes an optional core feature in CL 3.0 in addition to being an available extension in 1.0 onwards and a core feature in CL 2.0. https://reviews.llvm.org/D99425 Signed-off-by: Kevin Petit Added: Modified: clang/include/clang/Basic/OpenCLExtensions.def clang/test/Headers/opencl-c-header.cl clang/test/SemaOpenCL/extension-version.cl Removed: diff --git a/clang/include/clang/Basic/OpenCLExtensions.def b/clang/include/clang/Basic/OpenCLExtensions.def index c5352dadc0de..5e2977f478f3 100644 --- a/clang/include/clang/Basic/OpenCLExtensions.def +++ b/clang/include/clang/Basic/OpenCLExtensions.def @@ -68,7 +68,7 @@ OPENCL_OPTIONALCOREFEATURE(cl_khr_fp64, true, 100, OCL_C_12P) OPENCL_EXTENSION(cl_khr_fp16, true, 100) OPENCL_EXTENSION(cl_khr_int64_base_atomics, true, 100) OPENCL_EXTENSION(cl_khr_int64_extended_atomics, true, 100) -OPENCL_COREFEATURE(cl_khr_3d_image_writes, true, 100, OCL_C_20) +OPENCL_GENERIC_EXTENSION(cl_khr_3d_image_writes, true, 100, OCL_C_20, OCL_C_30) // EMBEDDED_PROFILE OPENCL_EXTENSION(cles_khr_int64, true, 110) diff --git a/clang/test/Headers/opencl-c-header.cl b/clang/test/Headers/opencl-c-header.cl index 432c5e461d55..f72cea61fcd9 100644 --- a/clang/test/Headers/opencl-c-header.cl +++ b/clang/test/Headers/opencl-c-header.cl @@ -2,6 +2,7 @@ // RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=CL1.1 | FileCheck %s // RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=CL1.2 | FileCheck %s // RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=clc++ | FileCheck %s --check-prefix=CHECK20 +// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=CL3.0 | FileCheck %s // Test including the default header as a module. // The module should be compiled only once and loaded from cache afterwards. @@ -81,7 +82,7 @@ void test_atomics(__generic volatile unsigned int* a) { #endif // Verify that ATOMIC_VAR_INIT is defined. -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ == CL_VERSION_2_0) global atomic_int z = ATOMIC_VAR_INIT(99); #endif //__OPENCL_C_VERSION__ // CHECK-MOD: Reading modules diff --git a/clang/test/SemaOpenCL/extension-version.cl b/clang/test/SemaOpenCL/extension-version.cl index 64c8590d9b20..d135970b8b02 100644 --- a/clang/test/SemaOpenCL/extension-version.cl +++ b/clang/test/SemaOpenCL/extension-version.cl @@ -93,12 +93,12 @@ // expected-warning@-2{{OpenCL extension 'cl_khr_fp64' is core feature or supported optional core feature - ignoring}} #endif -//Core feature in CL 2.0 +//Core feature in CL 2.0, optional core feature in CL 3.0 #ifndef cl_khr_3d_image_writes #error "Missing cl_khr_3d_image_writes define" #endif #pragma OPENCL EXTENSION cl_khr_3d_image_writes : enable -#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ == 200) && defined TEST_CORE_FEATURES +#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ == 200 || __OPENCL_C_VERSION__ == 300) && defined TEST_CORE_FEATURES // expected-warning@-2{{OpenCL extension 'cl_khr_3d_image_writes' is core feature or supported optional core feature - ignoring}} #endif ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits