1 // REQUIRES: aarch64-registered-target
3 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -verify -emit-llvm -o - %s
7 void test_features(svmfloat8_t zn
, svmfloat8_t zm
, mfloat8_t x
, fpm_t fpm
) {
8 svcvt1_bf16_mf8_fpm(zn
, fpm
);
9 // expected-error@-1 {{'svcvt1_bf16_mf8_fpm' needs target feature (sve,sve2,fp8)|(sme,sme2,fp8)}}
10 svcvt2_bf16_mf8_fpm(zn
, fpm
);
11 // expected-error@-1 {{'svcvt2_bf16_mf8_fpm' needs target feature (sve,sve2,fp8)|(sme,sme2,fp8)}}
12 svcvtlt1_bf16_mf8_fpm(zn
, fpm
);
13 // expected-error@-1 {{'svcvtlt1_bf16_mf8_fpm' needs target feature (sve,sve2,fp8)|(sme,sme2,fp8)}}
14 svcvtlt2_bf16_mf8_fpm(zn
, fpm
);
15 // expected-error@-1 {{'svcvtlt2_bf16_mf8_fpm' needs target feature (sve,sve2,fp8)|(sme,sme2,fp8)}}
16 svcvt1_f16_mf8_fpm(zn
, fpm
);
17 // expected-error@-1 {{'svcvt1_f16_mf8_fpm' needs target feature (sve,sve2,fp8)|(sme,sme2,fp8)}}
18 svcvt2_f16_mf8_fpm(zn
, fpm
);
19 // expected-error@-1 {{'svcvt2_f16_mf8_fpm' needs target feature (sve,sve2,fp8)|(sme,sme2,fp8)}}
20 svcvtlt1_f16_mf8_fpm(zn
, fpm
);
21 // expected-error@-1 {{'svcvtlt1_f16_mf8_fpm' needs target feature (sve,sve2,fp8)|(sme,sme2,fp8)}}
22 svcvtlt2_f16_mf8_fpm(zn
, fpm
);
23 // expected-error@-1 {{'svcvtlt2_f16_mf8_fpm' needs target feature (sve,sve2,fp8)|(sme,sme2,fp8)}}
25 svcvtn_mf8_bf16_x2_fpm(svcreate2(svundef_bf16(), svundef_bf16()), fpm
);
26 // expected-error@-1 {{'svcvtn_mf8_bf16_x2_fpm' needs target feature (sve,sve2,fp8)|(sme,sme2,fp8)}}
27 svcvtn_mf8_f16_x2_fpm(svcreate2(svundef_f16(), svundef_f16()), fpm
);
28 // expected-error@-1 {{'svcvtn_mf8_f16_x2_fpm' needs target feature (sve,sve2,fp8)|(sme,sme2,fp8)}}
29 svcvtnb_mf8_f32_x2_fpm(svcreate2(svundef_f32(), svundef_f32()), fpm
);
30 // expected-error@-1 {{'svcvtnb_mf8_f32_x2_fpm' needs target feature (sve,sve2,fp8)|(sme,sme2,fp8)}}
31 svcvtnt_mf8_f32_x2_fpm(zn
, svcreate2(svundef_f32(), svundef_f32()), fpm
);
32 // expected-error@-1 {{'svcvtnt_mf8_f32_x2_fpm' needs target feature (sve,sve2,fp8)|(sme,sme2,fp8)}}
34 svdot_f32_mf8_fpm(svundef_f32(), zn
, zm
, fpm
);
35 // expected-error@-1 {{'svdot_f32_mf8_fpm' needs target feature (sve,sve2,fp8dot4)|(sme,ssve-fp8dot4)}}
36 svdot_n_f32_mf8_fpm(svundef_f32(), zn
, x
, fpm
);
37 // expected-error@-1 {{'svdot_n_f32_mf8_fpm' needs target feature (sve,sve2,fp8dot4)|(sme,ssve-fp8dot4)}}
38 svdot_f16_mf8_fpm(svundef_f16(), zn
, zm
, fpm
);
39 // expected-error@-1 {{'svdot_f16_mf8_fpm' needs target feature (sve,sve2,fp8dot2)|(sme,ssve-fp8dot2)}}
40 svdot_n_f16_mf8_fpm(svundef_f16(), zn
, x
, fpm
);
41 // expected-error@-1 {{'svdot_n_f16_mf8_fpm' needs target feature (sve,sve2,fp8dot2)|(sme,ssve-fp8dot2)}}
42 svdot_lane_f32_mf8_fpm(svundef_f32(), zn
, zm
, 3, fpm
);
43 // expected-error@-1 {{'svdot_lane_f32_mf8_fpm' needs target feature (sve,sve2,fp8dot4)|(sme,ssve-fp8dot4)}}
44 svdot_lane_f16_mf8_fpm(svundef_f16(), zn
, zm
, 7, fpm
);
45 // expected-error@-1 {{'svdot_lane_f16_mf8_fpm' needs target feature (sve,sve2,fp8dot2)|(sme,ssve-fp8dot2)}}
47 svmlalb_f16_mf8_fpm(svundef_f16(), zn
, zm
, fpm
);
48 // expected-error@-1 {{'svmlalb_f16_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
49 svmlalb_n_f16_mf8_fpm(svundef_f16(), zn
, x
, fpm
);
50 // expected-error@-1 {{'svmlalb_n_f16_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
51 svmlalt_f16_mf8_fpm(svundef_f16(), zn
, zm
, fpm
);
52 // expected-error@-1 {{'svmlalt_f16_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
53 svmlalt_n_f16_mf8_fpm(svundef_f16(), zn
, x
, fpm
);
54 // expected-error@-1 {{'svmlalt_n_f16_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
55 svmlalb_lane_f16_mf8_fpm(svundef_f16(), zn
, zm
, 7, fpm
);
56 // expected-error@-1 {{'svmlalb_lane_f16_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
57 svmlalt_lane_f16_mf8_fpm(svundef_f16(), zn
, zm
, 7, fpm
);
58 // expected-error@-1 {{'svmlalt_lane_f16_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
59 svmlallbb_f32_mf8_fpm(svundef_f32(), zn
, zm
, fpm
);
60 // expected-error@-1 {{'svmlallbb_f32_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
61 svmlallbb_n_f32_mf8_fpm(svundef_f32(), zn
, x
, fpm
);
62 // expected-error@-1 {{'svmlallbb_n_f32_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
63 svmlallbt_f32_mf8_fpm(svundef_f32(), zn
, zm
, fpm
);
64 // expected-error@-1 {{'svmlallbt_f32_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
65 svmlallbt_n_f32_mf8_fpm(svundef_f32(), zn
, x
, fpm
);
66 // expected-error@-1 {{'svmlallbt_n_f32_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
67 svmlalltb_f32_mf8_fpm(svundef_f32(), zn
, zm
, fpm
);
68 // expected-error@-1 {{'svmlalltb_f32_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
69 svmlalltb_n_f32_mf8_fpm(svundef_f32(), zn
, x
, fpm
);
70 // expected-error@-1 {{'svmlalltb_n_f32_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
71 svmlalltt_f32_mf8_fpm(svundef_f32(), zn
, zm
, fpm
);
72 // expected-error@-1 {{'svmlalltt_f32_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
73 svmlalltt_n_f32_mf8_fpm(svundef_f32(), zn
, x
, fpm
);
74 // expected-error@-1 {{'svmlalltt_n_f32_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
75 svmlallbb_lane_f32_mf8_fpm(svundef_f32(), zn
, zm
, 7, fpm
);
76 // expected-error@-1 {{'svmlallbb_lane_f32_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
77 svmlallbt_lane_f32_mf8_fpm(svundef_f32(), zn
, zm
, 7, fpm
);
78 // expected-error@-1 {{'svmlallbt_lane_f32_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
79 svmlalltb_lane_f32_mf8_fpm(svundef_f32(), zn
, zm
, 7, fpm
);
80 // expected-error@-1 {{'svmlalltb_lane_f32_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
81 svmlalltt_lane_f32_mf8_fpm(svundef_f32(), zn
, zm
, 7, fpm
);
82 // expected-error@-1 {{'svmlalltt_lane_f32_mf8_fpm' needs target feature (sve,sve2,fp8fma)|(sme,ssve-fp8fma)}}
85 void test_imm_range(svmfloat8_t zn
, svmfloat8_t zm
, fpm_t fpm
) {
86 svdot_lane_f32_mf8_fpm(svundef_f32(), zn
, zm
, -1, fpm
);
87 // expected-error@-1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
88 svdot_lane_f16_mf8_fpm(svundef_f16(), zn
, zm
, -1, fpm
);
89 // expected-error@-1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}
91 svmlalb_lane_f16_mf8_fpm(svundef_f16(), zn
, zm
, -1, fpm
);
92 // expected-error@-1 {{argument value 18446744073709551615 is outside the valid range [0, 15]}}
93 svmlalt_lane_f16_mf8_fpm(svundef_f16(), zn
, zm
, -1, fpm
);
94 // expected-error@-1 {{argument value 18446744073709551615 is outside the valid range [0, 15]}}
95 svmlallbb_lane_f32_mf8_fpm(svundef_f32(), zn
, zm
, -1, fpm
);
96 // expected-error@-1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}
97 svmlallbt_lane_f32_mf8_fpm(svundef_f32(), zn
, zm
, -1, fpm
);
98 // expected-error@-1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}
99 svmlalltb_lane_f32_mf8_fpm(svundef_f32(), zn
, zm
, -1, fpm
);
100 // expected-error@-1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}
101 svmlalltt_lane_f32_mf8_fpm(svundef_f32(), zn
, zm
, -1, fpm
);
102 // expected-error@-1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}