teak-llvm/clang/test/SemaOpenCL/ext_vectors.cl
Pirama Arumuga Nainar 98eaa62e36 Add .rgba syntax extension to ext_vector_type types
Summary:
This patch enables .rgba accessors to ext_vector_type types and adds
tests for syntax validation and code generation.

'a' and 'b' can appear either in the point access mode or the numeric
access mode (for indices 10 and 11).  To disambiguate between the two
usages, the accessor type is explicitly passed to relevant methods.

Reviewers: rsmith

Subscribers: Anastasia, bader, srhines, cfe-commits

Differential Revision: http://reviews.llvm.org/D20602

llvm-svn: 276455
2016-07-22 18:49:43 +00:00

12 lines
521 B
Common Lisp

// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL1.1
// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL2.0
typedef float float4 __attribute__((ext_vector_type(4)));
void test_ext_vector_accessors(float4 V) {
V = V.wzyx;
V = V.abgr; // expected-warning {{vector component name 'a' is an OpenCL version 2.2 feature}}
V = V.xyzr; // expected-warning {{vector component name 'r' is an OpenCL version 2.2 feature}} \
// expected-error {{illegal vector component name 'r'}}
}