llvm-project/clang/test/SemaOpenCL/arm-integer-dot-product.cl
Anastasia Stulova 58d18dde5c [OpenCL] Remove pragma requirement from Arm dot extension.
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.

Differential Revision: https://reviews.llvm.org/D100985
2021-05-12 16:25:33 +01:00

20 lines
939 B
Common Lisp

// 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;
char4 sa8, sb8;
ushort2 ua16, ub16;
short2 sa16, sb16;
uint ur;
int sr;
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 invalid in OpenCL}} //expected-note{{did you mean 'arm_dot_acc'?}}
sr = arm_dot_acc_sat(sa8, sb8, sr);
}