1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -pedantic -verify %s 2*67e74705SXin Li 3*67e74705SXin Litypedef int int2 __attribute__((ext_vector_type(2))); 4*67e74705SXin Litypedef int int3 __attribute__((ext_vector_type(3))); 5*67e74705SXin Litypedef int int4 __attribute__((ext_vector_type(4))); 6*67e74705SXin Litypedef int int8 __attribute__((ext_vector_type(8))); 7*67e74705SXin Litypedef int int16 __attribute__((ext_vector_type(16))); 8*67e74705SXin Li 9*67e74705SXin Livoid foo(int3 arg1, int8 arg2) { 10*67e74705SXin Li int4 auto1; 11*67e74705SXin Li int16 *auto2; 12*67e74705SXin Li int auto3; 13*67e74705SXin Li int2 auto4; 14*67e74705SXin Li struct S *incomplete1; 15*67e74705SXin Li 16*67e74705SXin Li int res1[vec_step(arg1) == 4 ? 1 : -1]; 17*67e74705SXin Li int res2[vec_step(arg2) == 8 ? 1 : -1]; 18*67e74705SXin Li int res3[vec_step(auto1) == 4 ? 1 : -1]; 19*67e74705SXin Li int res4[vec_step(*auto2) == 16 ? 1 : -1]; 20*67e74705SXin Li int res5[vec_step(auto3) == 1 ? 1 : -1]; 21*67e74705SXin Li int res6[vec_step(auto4) == 2 ? 1 : -1]; 22*67e74705SXin Li int res7[vec_step(int2) == 2 ? 1 : -1]; 23*67e74705SXin Li int res8[vec_step(int3) == 4 ? 1 : -1]; 24*67e74705SXin Li int res9[vec_step(int4) == 4 ? 1 : -1]; 25*67e74705SXin Li int res10[vec_step(int8) == 8 ? 1 : -1]; 26*67e74705SXin Li int res11[vec_step(int16) == 16 ? 1 : -1]; 27*67e74705SXin Li int res12[vec_step(void) == 1 ? 1 : -1]; 28*67e74705SXin Li 29*67e74705SXin Li int res13 = vec_step(*incomplete1); // expected-error {{'vec_step' requires built-in scalar or vector type, 'struct S' invalid}} 30*67e74705SXin Li int res14 = vec_step(int16*); // expected-error {{'vec_step' requires built-in scalar or vector type, 'int16 *' invalid}} 31*67e74705SXin Li int res15 = vec_step(void(void)); // expected-error {{'vec_step' requires built-in scalar or vector type, 'void (void)' invalid}} 32*67e74705SXin Li} 33