Lines Matching refs:OpenCL
510 // its address (which is not allowed in OpenCL v1.0 s6.8.a.3).
511 if (getLangOpts().OpenCL) {
650 // OpenCL usually rejects direct accesses to values of 'half' type.
651 if (getLangOpts().OpenCL && !getOpenCLOptions().cl_khr_fp16 &&
1582 // OpenCL v1.1 s6.5.3: a string literal is in the constant address space.
1583 if (getLangOpts().OpenCL) {
3308 } else if (getLangOpts().OpenCL &&
3458 // [OpenCL 1.1 6.11.12] "The vec_step built-in function takes a built-in
3460 // Every built-in scalar type (OpenCL 1.1 6.1.1) is either an arithmetic
3490 // Allow sizeof(void)/alignof(void) as an extension, unless in OpenCL where
3491 // this is an error (OpenCL v1.1 s6.3.k)
3493 unsigned DiagID = S.LangOpts.OpenCL ? diag::err_opencl_sizeof_alignof_type
5599 // In OpenCL, casts between vectors of different types are not allowed.
5600 // (See OpenCL 6.2).
5603 || (getLangOpts().OpenCL &&
5661 // Check for an altivec or OpenCL literal,
5665 if ((getLangOpts().AltiVec || getLangOpts().ZVector || getLangOpts().OpenCL)
5761 // For OpenCL, when the number of initializers is a single value,
5763 if (getLangOpts().OpenCL &&
5856 // OpenCL v1.1 s6.3.i says the condition cannot be a floating point type.
5857 if (S.getLangOpts().OpenCL && CondTy->isFloatingType()) {
6059 /// Used when handling the OpenCL conditional operator where the
6062 /// OpenCL v1.1 s6.3.i and s6.11.6 together require that the scalar
6115 /// Used when handling the OpenCL conditional operator where the
6119 /// according to OpenCL v1.1 s6.3.i. Both operands are then converted
6140 // with an OpenCL name. Instead, we just print a description.
6157 /// \brief Return false if this is a valid OpenCL condition vector
6160 // OpenCL v1.1 s6.11.6 says the elements of the vector must be of
6175 /// OpenCL v1.1 s6.11.6 requires that both vector types have the same
6203 /// OpenCL (aka "ternary selection operator", OpenCL v1.1
6218 // result as specified in OpenCL v1.1 s6.3.i.
6227 // OpenCL v1.1 s6.11.6.
6260 // The OpenCL operator with a vector condition is sufficiently
6262 if (getLangOpts().OpenCL && Cond.get()->getType()->isVectorType())
7391 /// If the language is OpenCL, we only use conversions that promote scalar
7408 if (S.getLangOpts().OpenCL &&
7414 if (S.getLangOpts().OpenCL &&
7539 // OpenCL V1.1 6.2.6.p1:
7543 if (getLangOpts().OpenCL &&
7770 if (S.getLangOpts().OpenCL && isLHSPointer && isRHSPointer) {
8094 // OpenCL 6.3j: shift values are effectively % word size of LHS (more defined),
8096 if (S.getLangOpts().OpenCL)
8170 /// \brief Return the resulting type when an OpenCL vector is shifted
8175 // OpenCL v1.1 s6.3.j says RHS can be a vector only if LHS is a vector.
8200 // OpenCL v1.1 s6.3.j says that the operands need to be integers.
8214 // OpenCL v1.1 s6.3.j says that for vector types, the operators
8242 if (LangOpts.OpenCL)
8246 // like OpenCL shifts, except that neither the LHS nor the RHS is
8798 // Treat NULL constant as a special case in OpenCL.
8799 if (getLangOpts().OpenCL && !LHSIsNull && !RHSIsNull) {
9080 if (getLangOpts().OpenCL && getLangOpts().OpenCLVersion < 120 &&
9158 // OpenCL v1.1 s6.3.g: The logical operators and (&&), or (||) do
9160 if (Context.getLangOpts().OpenCL &&
9714 } else if(S.getLangOpts().OpenCL && ResType->isVectorType() &&
9716 // OpenCL V1.2 6.3 says dec/inc ops operate on integer vector types.
9864 // OpenCL v1.0 s6.8.a.3: Pointers to functions are not allowed.
9865 if (LangOpts.OpenCL && op->getType()->isFunctionType()) {
10301 if (getLangOpts().OpenCL) {
10782 if (getLangOpts().OpenCL) {
10850 if (Context.getLangOpts().OpenCL) {
10851 // OpenCL v1.1 s6.3.f: The bitwise operator not (~) does not operate
10886 } else if (Context.getLangOpts().OpenCL &&
10888 // OpenCL v1.1 6.3.h: The logical operator not (!) does not
10895 if (Context.getLangOpts().OpenCL &&
10897 // OpenCL v1.1 6.3.h: The logical operator not (!) does not