104 lines · c
1// REQUIRES: aarch64-registered-target2 3// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -verify -emit-llvm -o - %s4 5#include <arm_sve.h>6 7void 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|sme2),fp8)|(sme,sme2,fp8)}}10 svcvt2_bf16_mf8_fpm(zn, fpm);11 // expected-error@-1 {{'svcvt2_bf16_mf8_fpm' needs target feature (sve,(sve2|sme2),fp8)|(sme,sme2,fp8)}}12 svcvtlt1_bf16_mf8_fpm(zn, fpm);13 // expected-error@-1 {{'svcvtlt1_bf16_mf8_fpm' needs target feature (sve,(sve2|sme2),fp8)|(sme,sme2,fp8)}}14 svcvtlt2_bf16_mf8_fpm(zn, fpm);15 // expected-error@-1 {{'svcvtlt2_bf16_mf8_fpm' needs target feature (sve,(sve2|sme2),fp8)|(sme,sme2,fp8)}}16 svcvt1_f16_mf8_fpm(zn, fpm);17 // expected-error@-1 {{'svcvt1_f16_mf8_fpm' needs target feature (sve,(sve2|sme2),fp8)|(sme,sme2,fp8)}}18 svcvt2_f16_mf8_fpm(zn, fpm);19 // expected-error@-1 {{'svcvt2_f16_mf8_fpm' needs target feature (sve,(sve2|sme2),fp8)|(sme,sme2,fp8)}}20 svcvtlt1_f16_mf8_fpm(zn, fpm);21 // expected-error@-1 {{'svcvtlt1_f16_mf8_fpm' needs target feature (sve,(sve2|sme2),fp8)|(sme,sme2,fp8)}}22 svcvtlt2_f16_mf8_fpm(zn, fpm);23 // expected-error@-1 {{'svcvtlt2_f16_mf8_fpm' needs target feature (sve,(sve2|sme2),fp8)|(sme,sme2,fp8)}}24 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|sme2),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|sme2),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|sme2),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|sme2),fp8)|(sme,sme2,fp8)}}33 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)}}46 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)}}83}84 85void 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]}}90 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]}}103}104