xref: /llvm-project/clang/test/Sema/aarch64-sve-vector-subscript-ops.c (revision 123064dc397d478a636ba1c5960d41ad381036a0)
1 // RUN: %clang_cc1 -verify -triple aarch64-none-linux-gnu -target-feature +sve -fsyntax-only %s
2 
3 // REQUIRES: aarch64-registered-target
4 
5 #include <arm_sve.h>
6 
subscript(svint8_t i8,svint16_t i16,svint32_t i32,svint64_t i64,svuint8_t u8,svuint16_t u16,svuint32_t u32,svuint64_t u64,svfloat16_t f16,svfloat32_t f32,svfloat64_t f64,svbool_t b)7 void subscript(svint8_t i8, svint16_t i16, svint32_t i32, svint64_t i64,
8                svuint8_t u8, svuint16_t u16, svuint32_t u32, svuint64_t u64,
9                svfloat16_t f16, svfloat32_t f32, svfloat64_t f64,
10                svbool_t b) {
11   (void)b[0];    // expected-error{{subscript of svbool_t is not allowed}}
12   (void)b[0.f];  // expected-error{{subscript of svbool_t is not allowed}}
13   (void)b[0.];   // expected-error{{subscript of svbool_t is not allowed}}
14 
15   (void)i8[0.f]; // expected-error{{array subscript is not an integer}}
16   (void)i8[0.];  // expected-error{{array subscript is not an integer}}
17 
18   (void)u8[0.f]; // expected-error{{array subscript is not an integer}}
19   (void)u8[0.];  // expected-error{{array subscript is not an integer}}
20 
21   (void)i16[0.f]; // expected-error{{array subscript is not an integer}}
22   (void)i16[0.];  // expected-error{{array subscript is not an integer}}
23 
24   (void)u16[0.f]; // expected-error{{array subscript is not an integer}}
25   (void)u16[0.];  // expected-error{{array subscript is not an integer}}
26 
27   (void)i32[0.f]; // expected-error{{array subscript is not an integer}}
28   (void)i32[0.];  // expected-error{{array subscript is not an integer}}
29 
30   (void)u32[0.f]; // expected-error{{array subscript is not an integer}}
31   (void)u32[0.];  // expected-error{{array subscript is not an integer}}
32 
33   (void)i64[0.f]; // expected-error{{array subscript is not an integer}}
34   (void)i64[0.];  // expected-error{{array subscript is not an integer}}
35 
36   (void)u64[0.f]; // expected-error{{array subscript is not an integer}}
37   (void)u64[0.];  // expected-error{{array subscript is not an integer}}
38 
39   (void)f16[0.f]; // expected-error{{array subscript is not an integer}}
40   (void)f16[0.];  // expected-error{{array subscript is not an integer}}
41 
42   (void)f32[0.f]; // expected-error{{array subscript is not an integer}}
43   (void)f32[0.];  // expected-error{{array subscript is not an integer}}
44 
45   (void)f64[0.f]; // expected-error{{array subscript is not an integer}}
46   (void)f64[0.];  // expected-error{{array subscript is not an integer}}
47 }
48