1 // RUN: %clang_cc1 -fsyntax-only -verify "-triple" "thumbv7-apple-ios3.0.0" -target-feature +neon %s 2 3 typedef int MP4Err; 4 typedef float Float32; 5 typedef float float32_t; 6 typedef __attribute__((neon_vector_type(4))) float32_t float32x4_t; 7 typedef float vFloat __attribute__((__vector_size__(16))); 8 typedef vFloat VFLOAT; 9 typedef unsigned long UInt32; 10 11 extern int bar (float32x4_t const *p); 12 foo(const Float32 * realBufPtr)13int foo (const Float32 *realBufPtr) { 14 float32x4_t const *vRealPtr = (VFLOAT *)&realBufPtr[0]; 15 return bar(vRealPtr); 16 } 17 autoCorrelation2nd_Neon(Float32 * alphar,Float32 * alphai,const Float32 * realBufPtr,const Float32 * imagBufPtr,const UInt32 len)18MP4Err autoCorrelation2nd_Neon(Float32 *alphar, Float32 *alphai, 19 const Float32 *realBufPtr, 20 const Float32 *imagBufPtr, 21 const UInt32 len) 22 { 23 float32x4_t const *vRealPtr = (VFLOAT *)&realBufPtr[0]; 24 return 0; 25 } 26 27 namespace rdar11688587 { 28 typedef float float32_t; 29 typedef __attribute__((neon_vector_type(4))) float32_t float32x4_t; 30 31 template<int I> test()32 float test() 33 { 34 extern float32x4_t vec; 35 return __extension__ ({ 36 float32x4_t __a = (vec); 37 (float32_t)__builtin_neon_vgetq_lane_f32(__a, I); // expected-error-re{{argument value {{.*}} is outside the valid range}} 38 }); 39 } 40 41 template float test<1>(); 42 template float test<4>(); // expected-note{{in instantiation of function template specialization 'rdar11688587::test<4>' requested here}} 43 } 44