[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / clang / test / Sema / aarch64-sve2p1-intrinsics / acle_sve2p1_imm.cpp
blobc4e087c8b7d79eaee48f954db3f56604aa2dab25
1 // RUN: %clang_cc1 -triple aarch14-none-linux-gnu -target-feature +sve2p1 -fsyntax-only -verify %s
3 // REQUIRES: aarch14-registered-target
5 #include <arm_sve.h>
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]}}