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
40 lines
1.9 KiB
Common Lisp
40 lines
1.9 KiB
Common Lisp
// RUN: %clang_cc1 %s -triple spir-unknown-unknown -finclude-default-header -fdeclare-opencl-builtins -cl-std=CL1.2 -emit-llvm -o - -O0 | FileCheck %s
|
|
|
|
// Pragmas are only accepted for backward compatibility.
|
|
|
|
#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : enable
|
|
#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : disable
|
|
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_accumulate_int8 : enable
|
|
#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : disable
|
|
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);
|
|
// CHECK: call spir_func i32 @_Z11arm_dot_accDv4_cS_i
|
|
}
|
|
|
|
#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : enable
|
|
#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : disable
|
|
void test_accumulate_int16(ushort2 ua, ushort2 ub, uint uc, short2 sa, short2 sb, int c) {
|
|
uint ur = arm_dot_acc(ua, ub, uc);
|
|
// CHECK: call spir_func i32 @_Z11arm_dot_accDv2_tS_j
|
|
int sr = arm_dot_acc(sa, sb, c);
|
|
// CHECK: call spir_func i32 @_Z11arm_dot_accDv2_sS_i
|
|
}
|
|
|
|
#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : enable
|
|
#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : disable
|
|
void test_accumulate_saturate_int8(uchar4 ua, uchar4 ub, uint uc, char4 sa, char4 sb, int c) {
|
|
uint ur = arm_dot_acc_sat(ua, ub, uc);
|
|
// CHECK: call spir_func i32 @_Z15arm_dot_acc_satDv4_hS_j
|
|
int sr = arm_dot_acc_sat(sa, sb, c);
|
|
// CHECK: call spir_func i32 @_Z15arm_dot_acc_satDv4_cS_i
|
|
}
|