1 // RUN: %clang_cc1 -triple aarch64 -target-feature +neon -target-feature +bf16 \
2 // RUN: -O2 -verify -fsyntax-only %s
4 // REQUIRES: aarch64-registered-target || arm-registered-target
10 bfloat16x4_t
test_vld1_lane_bf16(bfloat16_t
const *ptr
, bfloat16x4_t src
) {
11 (void)vld1_lane_bf16(ptr
, src
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
12 (void)vld1_lane_bf16(ptr
, src
, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}
13 return vld1_lane_bf16(ptr
, src
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
16 bfloat16x8_t
test_vld1q_lane_bf16(bfloat16_t
const *ptr
, bfloat16x8_t src
) {
17 (void)vld1q_lane_bf16(ptr
, src
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
18 (void)vld1q_lane_bf16(ptr
, src
, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}
19 return vld1q_lane_bf16(ptr
, src
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
22 bfloat16x4x2_t
test_vld2_lane_bf16(bfloat16_t
const *ptr
, bfloat16x4x2_t src
) {
23 (void)vld2_lane_bf16(ptr
, src
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
24 (void)vld2_lane_bf16(ptr
, src
, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}
25 return vld2_lane_bf16(ptr
, src
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
28 bfloat16x8x2_t
test_vld2q_lane_bf16(bfloat16_t
const *ptr
, bfloat16x8x2_t src
) {
29 (void)vld2q_lane_bf16(ptr
, src
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
30 (void)vld2q_lane_bf16(ptr
, src
, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}
31 return vld2q_lane_bf16(ptr
, src
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
34 bfloat16x4x3_t
test_vld3_lane_bf16(bfloat16_t
const *ptr
, bfloat16x4x3_t src
) {
35 (void)vld3_lane_bf16(ptr
, src
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
36 (void)vld3_lane_bf16(ptr
, src
, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}
37 return vld3_lane_bf16(ptr
, src
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
40 bfloat16x8x3_t
test_vld3q_lane_bf16(bfloat16_t
const *ptr
, bfloat16x8x3_t src
) {
41 (void)vld3q_lane_bf16(ptr
, src
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
42 (void)vld3q_lane_bf16(ptr
, src
, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}
43 return vld3q_lane_bf16(ptr
, src
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
46 bfloat16x4x4_t
test_vld4_lane_bf16(bfloat16_t
const *ptr
, bfloat16x4x4_t src
) {
47 (void)vld4_lane_bf16(ptr
, src
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
48 (void)vld4_lane_bf16(ptr
, src
, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}
49 return vld4_lane_bf16(ptr
, src
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
52 bfloat16x8x4_t
test_vld4q_lane_bf16(bfloat16_t
const *ptr
, bfloat16x8x4_t src
) {
53 (void)vld4q_lane_bf16(ptr
, src
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
54 (void)vld4q_lane_bf16(ptr
, src
, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}
55 return vld4q_lane_bf16(ptr
, src
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
58 void test_vst1_lane_bf16(bfloat16_t
*ptr
, bfloat16x4_t val
) {
59 vst1_lane_bf16(ptr
, val
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
60 vst1_lane_bf16(ptr
, val
, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}
61 vst1_lane_bf16(ptr
, val
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
64 void test_vst1q_lane_bf16(bfloat16_t
*ptr
, bfloat16x8_t val
) {
65 vst1q_lane_bf16(ptr
, val
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
66 vst1q_lane_bf16(ptr
, val
, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}
67 vst1q_lane_bf16(ptr
, val
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
70 void test_vst2_lane_bf16(bfloat16_t
*ptr
, bfloat16x4x2_t val
) {
71 vst2_lane_bf16(ptr
, val
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
72 vst2_lane_bf16(ptr
, val
, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}
73 vst2_lane_bf16(ptr
, val
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
76 void test_vst2q_lane_bf16(bfloat16_t
*ptr
, bfloat16x8x2_t val
) {
77 vst2q_lane_bf16(ptr
, val
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
78 vst2q_lane_bf16(ptr
, val
, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}
79 vst2q_lane_bf16(ptr
, val
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
82 void test_vst3_lane_bf16(bfloat16_t
*ptr
, bfloat16x4x3_t val
) {
83 vst3_lane_bf16(ptr
, val
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
84 vst3_lane_bf16(ptr
, val
, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}
85 vst3_lane_bf16(ptr
, val
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
88 void test_vst3q_lane_bf16(bfloat16_t
*ptr
, bfloat16x8x3_t val
) {
89 vst3q_lane_bf16(ptr
, val
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
90 vst3q_lane_bf16(ptr
, val
, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}
91 vst3q_lane_bf16(ptr
, val
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
94 void test_vst4_lane_bf16(bfloat16_t
*ptr
, bfloat16x4x4_t val
) {
95 vst4_lane_bf16(ptr
, val
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
96 vst4_lane_bf16(ptr
, val
, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}
97 vst4_lane_bf16(ptr
, val
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}
100 void test_vst4q_lane_bf16(bfloat16_t
*ptr
, bfloat16x8x4_t val
) {
101 vst4q_lane_bf16(ptr
, val
, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}
102 vst4q_lane_bf16(ptr
, val
, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}
103 vst4q_lane_bf16(ptr
, val
, x
); // expected-error-re {{argument {{.*}} must be a constant integer}}