[PATCH] D100985: [OpenCL] Remove pragma requirement for functions from Arm dot extension
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG58d18dde5cca: [OpenCL] Remove pragma requirement from Arm dot extension. (authored by Anastasia). Herald added a subscriber: ldrumm. Herald added a project: clang. Changed prior to commit: https://reviews.llvm.org/D100985?vs=339336&id=344834#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100985/new/ https://reviews.llvm.org/D100985 Files: clang/lib/Headers/opencl-c.h clang/test/CodeGenOpenCL/arm-integer-dot-product.cl clang/test/SemaOpenCL/arm-integer-dot-product.cl Index: clang/test/SemaOpenCL/arm-integer-dot-product.cl === --- clang/test/SemaOpenCL/arm-integer-dot-product.cl +++ clang/test/SemaOpenCL/arm-integer-dot-product.cl @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 %s -triple spir-unknown-unknown -finclude-default-header -verify -cl-std=CL1.2 -emit-llvm -o - -O0 +// RUN: %clang_cc1 %s -triple spir-unknown-unknown -finclude-default-header -fdeclare-opencl-builtins -verify -cl-std=CL1.2 -emit-llvm -o - -cl-ext=-all void test_negative() { uchar4 ua8, ub8; @@ -7,37 +7,13 @@ short2 sa16, sb16; uint ur; int sr; -ur = arm_dot(ua8, ub8); // expected-error{{no matching function for call to 'arm_dot'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_int8' to be enabled}} -sr = arm_dot(sa8, sb8); // expected-error{{no matching function for call to 'arm_dot'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_int8' to be enabled}} -ur = arm_dot_acc(ua8, ub8, ur); // expected-error{{no matching function for call to 'arm_dot_acc'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_accumulate_int8' to be enabled}} -sr = arm_dot_acc(sa8, sb8, sr); // expected-error{{no matching function for call to 'arm_dot_acc'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_accumulate_int8' to be enabled}} -ur = arm_dot_acc(ua16, ub16, ur); // expected-error{{no matching function for call to 'arm_dot_acc'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_accumulate_int16' to be enabled}} -sr = arm_dot_acc(sa16, sb16, sr); // expected-error{{no matching function for call to 'arm_dot_acc'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_accumulate_int16' to be enabled}} -ur = arm_dot_acc_sat(ua8, ub8, ur); // expected-error{{no matching function for call to 'arm_dot_acc_sat'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_accumulate_saturate_int8' to be enabled}} -sr = arm_dot_acc_sat(sa8, sb8, sr); // expected-error{{no matching function for call to 'arm_dot_acc_sat'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_accumulate_saturate_int8' to be enabled}} +ur = arm_dot(ua8, ub8); // expected-error{{implicit declaration of function 'arm_dot' is invalid in OpenCL}} +sr = arm_dot(sa8, sb8); +ur = arm_dot_acc(ua8, ub8, ur); // expected-error{{implicit declaration of function 'arm_dot_acc' is invalid in OpenCL}} //expected-note{{'arm_dot_acc' declared here}} +sr = arm_dot_acc(sa8, sb8, sr); +ur = arm_dot_acc(ua16, ub16, ur); +sr = arm_dot_acc(sa16, sb16, sr); +ur = arm_dot_acc_sat(ua8, ub8, ur); // expected-error{{implicit declaration of function
[PATCH] D100985: [OpenCL] Remove pragma requirement for functions from Arm dot extension
mantognini accepted this revision. mantognini added a comment. Feels appropriate to remove this indeed. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100985/new/ https://reviews.llvm.org/D100985 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D100985: [OpenCL] Remove pragma requirement for functions from Arm dot extension
svenvh accepted this revision. svenvh added a comment. This revision is now accepted and ready to land. LGTM, thanks! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100985/new/ https://reviews.llvm.org/D100985 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D100985: [OpenCL] Remove pragma requirement for functions from Arm dot extension
Anastasia created this revision. Anastasia added reviewers: svenvh, mantognini. Herald added subscribers: ebevhan, kristof.beyls, yaxunl. Anastasia requested review of this revision. This removed the pointless need for extension pragma since it doesn't disable anything properly and it doesn't need to enable anything that is not possible to disable. The change doesn't break existing kernels since it allows to compile more cases i.e. without pragma statements but the pragma continues to be accepted. https://reviews.llvm.org/D100985 Files: clang/lib/Headers/opencl-c.h clang/test/CodeGenOpenCL/arm-integer-dot-product.cl clang/test/SemaOpenCL/arm-integer-dot-product.cl Index: clang/test/SemaOpenCL/arm-integer-dot-product.cl === --- clang/test/SemaOpenCL/arm-integer-dot-product.cl +++ clang/test/SemaOpenCL/arm-integer-dot-product.cl @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 %s -triple spir-unknown-unknown -finclude-default-header -verify -cl-std=CL1.2 -emit-llvm -o - -O0 +// RUN: %clang_cc1 %s -triple spir-unknown-unknown -finclude-default-header -verify -cl-std=CL1.2 -emit-llvm -o - -cl-ext=-all void test_negative() { uchar4 ua8, ub8; @@ -7,37 +7,13 @@ short2 sa16, sb16; uint ur; int sr; -ur = arm_dot(ua8, ub8); // expected-error{{no matching function for call to 'arm_dot'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_int8' to be enabled}} -sr = arm_dot(sa8, sb8); // expected-error{{no matching function for call to 'arm_dot'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_int8' to be enabled}} -ur = arm_dot_acc(ua8, ub8, ur); // expected-error{{no matching function for call to 'arm_dot_acc'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_accumulate_int8' to be enabled}} -sr = arm_dot_acc(sa8, sb8, sr); // expected-error{{no matching function for call to 'arm_dot_acc'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_accumulate_int8' to be enabled}} -ur = arm_dot_acc(ua16, ub16, ur); // expected-error{{no matching function for call to 'arm_dot_acc'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_accumulate_int16' to be enabled}} -sr = arm_dot_acc(sa16, sb16, sr); // expected-error{{no matching function for call to 'arm_dot_acc'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_accumulate_int16' to be enabled}} -ur = arm_dot_acc_sat(ua8, ub8, ur); // expected-error{{no matching function for call to 'arm_dot_acc_sat'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_accumulate_saturate_int8' to be enabled}} -sr = arm_dot_acc_sat(sa8, sb8, sr); // expected-error{{no matching function for call to 'arm_dot_acc_sat'}} -// expected-note@opencl-c.h:* {{candidate function not viable}} -// expected-note@opencl-c.h:* {{candidate unavailable as it requires OpenCL extension 'cl_arm_integer_dot_product_accumulate_saturate_int8' to be enabled}} +ur = arm_dot(ua8, ub8); // expected-error{{implicit declaration of function 'arm_dot' is invalid in OpenCL}} +sr = arm_dot(sa8, sb8); +ur = arm_dot_acc(ua8, ub8, ur); // expected-error{{implicit declaration of function 'arm_dot_acc' is invalid in OpenCL}} //expected-note{{'arm_dot_acc' declared here}} +sr = arm_dot_acc(sa8, sb8, sr); +ur = arm_dot_acc(ua16, ub16, ur); +sr = arm_dot_acc(sa16, sb16, sr); +ur = arm_dot_acc_sat(ua8, ub8, ur); // expected-error{{implicit declaration of function 'arm_dot_acc_sat' is in