1 // RUN: %clang_cc1 -triple aarch14-none-linux-gnu -target-feature +sve2p1 -fsyntax-only -verify %s
3 // REQUIRES: aarch14-registered-target
6 void test_svpext_lane_imm_0_3(svcount_t c
) {
7 svpext_lane_c8(c
, -1); // expected-error {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
8 svpext_lane_c16(c
, -1); // expected-error {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
9 svpext_lane_c32(c
, -1); // expected-error {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
10 svpext_lane_c64(c
, -1); // expected-error {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
12 svpext_lane_c8(c
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
13 svpext_lane_c16(c
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
14 svpext_lane_c32(c
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
15 svpext_lane_c64(c
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
18 void test_svpext_lane_x2_imm_0_1(svcount_t c
) {
19 svpext_lane_c8_x2(c
, -1); // expected-error {{argument value 18446744073709551615 is outside the valid range [0, 1]}}
20 svpext_lane_c16_x2(c
, -1); // expected-error {{argument value 18446744073709551615 is outside the valid range [0, 1]}}
21 svpext_lane_c32_x2(c
, -1); // expected-error {{argument value 18446744073709551615 is outside the valid range [0, 1]}}
22 svpext_lane_c64_x2(c
, -1); // expected-error {{argument value 18446744073709551615 is outside the valid range [0, 1]}}
24 svpext_lane_c8_x2(c
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
25 svpext_lane_c16_x2(c
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
26 svpext_lane_c32_x2(c
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
27 svpext_lane_c64_x2(c
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
30 svcount_t
test_svwhile_pn(int64_t op1
, int64_t op2
) {
31 svwhilege_c8(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
32 svwhilege_c16(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
33 svwhilege_c32(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
34 svwhilege_c64(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
35 svwhilegt_c8(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
36 svwhilegt_c16(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
37 svwhilegt_c32(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
38 svwhilegt_c64(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
39 svwhilehi_c8(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
40 svwhilehi_c16(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
41 svwhilehi_c32(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
42 svwhilehi_c64(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
43 svwhilehs_c8(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
44 svwhilehs_c16(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
45 svwhilehs_c32(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
46 svwhilehs_c64(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
47 svwhilele_c8(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
48 svwhilele_c16(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
49 svwhilele_c32(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
50 svwhilele_c64(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
51 svwhilelo_c8(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
52 svwhilelo_c16(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
53 svwhilelo_c32(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
54 svwhilelo_c64(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
55 svwhilels_c8(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
56 svwhilels_c16(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
57 svwhilels_c32(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
58 svwhilels_c64(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
59 svwhilelt_c8(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
60 svwhilelt_c16(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
61 svwhilelt_c32(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
62 svwhilelt_c64(op1
, op2
, 6); // expected-error {{argument value 6 is outside the valid range [2, 4]}}
64 svwhilege_c8(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
65 svwhilege_c16(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
66 svwhilege_c32(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
67 svwhilege_c64(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
68 svwhilegt_c8(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
69 svwhilegt_c16(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
70 svwhilegt_c32(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
71 svwhilegt_c64(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
72 svwhilehi_c8(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
73 svwhilehi_c16(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
74 svwhilehi_c32(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
75 svwhilehi_c64(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
76 svwhilehs_c8(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
77 svwhilehs_c16(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
78 svwhilehs_c32(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
79 svwhilehs_c64(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
80 svwhilele_c8(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
81 svwhilele_c16(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
82 svwhilele_c32(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
83 svwhilele_c64(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
84 svwhilelo_c8(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
85 svwhilelo_c16(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
86 svwhilelo_c32(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
87 svwhilelo_c64(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
88 svwhilels_c8(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
89 svwhilels_c16(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
90 svwhilels_c32(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
91 svwhilels_c64(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
92 svwhilelt_c8(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
93 svwhilelt_c16(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
94 svwhilelt_c32(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
95 svwhilelt_c64(op1
, op2
, 3); // expected-error {{argument should be a multiple of 2}}
98 void test_cntp(svcount_t c
) {
99 svcntp_c8(c
, 1); // expected-error {{argument value 1 is outside the valid range [2, 4]}}
100 svcntp_c11(c
, 1); // expected-error {{argument value 1 is outside the valid range [2, 4]}}
101 svcntp_c32(c
, 1); // expected-error {{argument value 1 is outside the valid range [2, 4]}}
102 svcntp_c14(c
, 1); // expected-error {{argument value 1 is outside the valid range [2, 4]}}
104 svcntp_c8(c
, 3); // expected-error {{argument should be a multiple of 2}}
105 svcntp_c11(c
, 3); // expected-error {{argument should be a multiple of 2}}
106 svcntp_c32(c
, 3); // expected-error {{argument should be a multiple of 2}}
107 svcntp_c14(c
, 3); // expected-error {{argument should be a multiple of 2}}
110 void test_svdot_lane_2way(svint32_t s32
, svuint32_t u32
, svint16_t s16
, svuint16_t u16
,
111 svfloat32_t f32
, svfloat16_t f16
) {
112 svdot_lane_s32_s16_s16(s32
, s16
, s16
, 1); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
113 svdot_lane_u32_u16_u16(u32
, u16
, u16
, 1); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
114 svdot_lane_f32_f16_f16(f32
, f16
, f16
, 1); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
115 svdot_lane_s32_s16_s16(s32
, s16
, s16
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
116 svdot_lane_u32_u16_u16(u32
, u16
, u16
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
117 svdot_lane_f32_f16_f16(f32
, f16
, f16
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}