91 lines · c
1// RUN: %clang_cc1 -triple aarch64 -target-feature +sme -verify -emit-llvm-only %s2 3// REQUIRES: aarch64-registered-target4 5#include <arm_sme.h>6 7 8void test_features_f16f16(uint32_t slice,9 svfloat16_t zm,10 svfloat16x2_t zn2, svfloat16x2_t zm2,11 svfloat16x4_t zn4, svfloat16x4_t zm4,12 svbfloat16_t bzm,13 svbfloat16x2_t bzn2, svbfloat16x2_t bzm2,14 svbfloat16x4_t bzn4, svbfloat16x4_t bzm4)15 16 __arm_streaming __arm_inout("za") {17 // expected-error@+1 {{'svmla_single_za16_f16_vg1x2' needs target feature sme,sme-f16f16}}18 svmla_single_za16_f16_vg1x2(slice, zn2, zm);19 // expected-error@+1 {{'svmla_single_za16_f16_vg1x4' needs target feature sme,sme-f16f16}}20 svmla_single_za16_f16_vg1x4(slice, zn4, zm);21 // expected-error@+1 {{'svmls_single_za16_f16_vg1x2' needs target feature sme,sme-f16f16}}22 svmls_single_za16_f16_vg1x2(slice, zn2, zm);23 // expected-error@+1 {{'svmls_single_za16_f16_vg1x4' needs target feature sme,sme-f16f16}}24 svmls_single_za16_f16_vg1x4(slice, zn4, zm);25 // expected-error@+1 {{'svmla_za16_f16_vg1x2' needs target feature sme,sme-f16f16}}26 svmla_za16_f16_vg1x2(slice, zn2, zm2);27 // expected-error@+1 {{'svmla_za16_f16_vg1x4' needs target feature sme,sme-f16f16}}28 svmla_za16_f16_vg1x4(slice, zn4, zm4);29 // expected-error@+1 {{'svmls_za16_f16_vg1x2' needs target feature sme,sme-f16f16}}30 svmls_za16_f16_vg1x2(slice, zn2, zm2);31 // expected-error@+1 {{'svmls_za16_f16_vg1x4' needs target feature sme,sme-f16f16}}32 svmls_za16_f16_vg1x4(slice, zn4, zm4);33 // expected-error@+1 {{'svmla_lane_za16_f16_vg1x2' needs target feature sme,sme-f16f16}}34 svmla_lane_za16_f16_vg1x2(slice, zn2, zm, 7);35 // expected-error@+1 {{'svmla_lane_za16_f16_vg1x4' needs target feature sme,sme-f16f16}}36 svmla_lane_za16_f16_vg1x4(slice, zn4, zm, 7);37 // expected-error@+1 {{'svmls_lane_za16_f16_vg1x2' needs target feature sme,sme-f16f16}}38 svmls_lane_za16_f16_vg1x2(slice, zn2, zm, 7);39 // expected-error@+1 {{'svmls_lane_za16_f16_vg1x4' needs target feature sme,sme-f16f16}}40 svmls_lane_za16_f16_vg1x4(slice, zn4, zm, 7);41 42 // expected-error@+1 {{'svmla_single_za16_bf16_vg1x2' needs target feature sme,sme-b16b16}}43 svmla_single_za16_bf16_vg1x2(slice, bzn2, bzm);44 // expected-error@+1 {{'svmla_single_za16_bf16_vg1x4' needs target feature sme,sme-b16b16}}45 svmla_single_za16_bf16_vg1x4(slice, bzn4, bzm);46 // expected-error@+1 {{'svmls_single_za16_bf16_vg1x2' needs target feature sme,sme-b16b16}}47 svmls_single_za16_bf16_vg1x2(slice, bzn2, bzm);48 // expected-error@+1 {{'svmls_single_za16_bf16_vg1x4' needs target feature sme,sme-b16b16}}49 svmls_single_za16_bf16_vg1x4(slice, bzn4, bzm);50 // expected-error@+1 {{'svmla_za16_bf16_vg1x2' needs target feature sme,sme-b16b16}}51 svmla_za16_bf16_vg1x2(slice, bzn2, bzm2);52 // expected-error@+1 {{'svmla_za16_bf16_vg1x4' needs target feature sme,sme-b16b16}}53 svmla_za16_bf16_vg1x4(slice, bzn4, bzm4);54 // expected-error@+1 {{'svmls_za16_bf16_vg1x2' needs target feature sme,sme-b16b16}}55 svmls_za16_bf16_vg1x2(slice, bzn2, bzm2);56 // expected-error@+1 {{'svmls_za16_bf16_vg1x4' needs target feature sme,sme-b16b16}}57 svmls_za16_bf16_vg1x4(slice, bzn4, bzm4);58 // expected-error@+1 {{'svmla_lane_za16_bf16_vg1x2' needs target feature sme,sme-b16b16}}59 svmla_lane_za16_bf16_vg1x2(slice, bzn2, bzm, 7);60 // expected-error@+1 {{'svmla_lane_za16_bf16_vg1x4' needs target feature sme,sme-b16b16}}61 svmla_lane_za16_bf16_vg1x4(slice, bzn4, bzm, 7);62 // expected-error@+1 {{'svmls_lane_za16_bf16_vg1x2' needs target feature sme,sme-b16b16}}63 svmls_lane_za16_bf16_vg1x2(slice, bzn2, bzm, 7);64 // expected-error@+1 {{'svmls_lane_za16_bf16_vg1x4' needs target feature sme,sme-b16b16}}65 svmls_lane_za16_bf16_vg1x4(slice, bzn4, bzm, 7);66}67 68 69void test_imm(uint32_t slice, svfloat16_t zm, svfloat16x2_t zn2,svfloat16x4_t zn4,70 svbfloat16_t bzm, svbfloat16x2_t bzn2, svbfloat16x4_t bzn4)71 __arm_streaming __arm_inout("za") {72 73 // expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}74 svmla_lane_za16_f16_vg1x2(slice, zn2, zm, -1);75 // expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}76 svmla_lane_za16_f16_vg1x4(slice, zn4, zm, -1);77 // expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}78 svmls_lane_za16_f16_vg1x2(slice, zn2, zm, -1);79 // expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}80 svmls_lane_za16_f16_vg1x4(slice, zn4, zm, -1);81 82 // expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}83 svmla_lane_za16_bf16_vg1x2(slice, bzn2, bzm, -1);84 // expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}85 svmla_lane_za16_bf16_vg1x4(slice, bzn4, bzm, -1);86 // expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}87 svmls_lane_za16_bf16_vg1x2(slice, bzn2, bzm, -1);88 // expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 7]}}89 svmls_lane_za16_bf16_vg1x4(slice, bzn4, bzm, -1);90}91