[PATCH] D100985: [OpenCL] Remove pragma requirement for functions from Arm dot extension

2021-05-12 Thread Anastasia Stulova via Phabricator via cfe-commits
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

2021-04-23 Thread Marco Antognini via Phabricator via cfe-commits
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

2021-04-22 Thread Sven van Haastregt via Phabricator via cfe-commits
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

2021-04-21 Thread Anastasia Stulova via Phabricator via cfe-commits
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