xref: /llvm-project/clang/test/Sema/aarch64-sve-intrinsics/acle_sve_bfloat.cpp (revision 09c0337a581dfd8f39df131786cfc7f675adf483)
1 // REQUIRES: aarch64-registered-target
2 
3 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -verify -verify-ignore-unexpected=error,note -emit-llvm -o - %s
4 
5 #include <arm_sve.h>
6 
test_bfloat(svbool_t pg,uint64_t u64,int64_t i64,const bfloat16_t * const_bf16_ptr,bfloat16_t * bf16_ptr,svbfloat16_t bf16,svbfloat16x2_t bf16x2,svbfloat16x3_t bf16x3,svbfloat16x4_t bf16x4)7 void test_bfloat(svbool_t pg, uint64_t u64, int64_t i64, const bfloat16_t *const_bf16_ptr, bfloat16_t *bf16_ptr, svbfloat16_t bf16, svbfloat16x2_t bf16x2, svbfloat16x3_t bf16x3, svbfloat16x4_t bf16x4)
8 {
9   // expected-error@+1 {{'svcreate2_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
10   svcreate2_bf16(bf16, bf16);
11   // expected-error@+1 {{'svcreate3_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
12   svcreate3_bf16(bf16, bf16, bf16);
13   // expected-error@+1 {{'svcreate4_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
14   svcreate4_bf16(bf16, bf16, bf16, bf16);
15   // expected-error@+1 {{'svget2_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
16   svget2_bf16(bf16x2, 1);
17   // expected-error@+1 {{'svget3_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
18   svget3_bf16(bf16x3, 1);
19   // expected-error@+1 {{'svget4_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
20   svget4_bf16(bf16x4, 1);
21   // expected-error@+1 {{'svld1_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
22   svld1_bf16(pg, const_bf16_ptr);
23   // expected-error@+1 {{'svld1_vnum_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
24   svld1_vnum_bf16(pg, const_bf16_ptr, i64);
25   // expected-error@+1 {{'svld1rq_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
26   svld1rq_bf16(pg, const_bf16_ptr);
27   // expected-error@+1 {{'svldff1_bf16' needs target feature sve,bf16}}
28   svldff1_bf16(pg, const_bf16_ptr);
29   // expected-error@+1 {{'svldff1_vnum_bf16' needs target feature sve,bf16}}
30   svldff1_vnum_bf16(pg, const_bf16_ptr, i64);
31   // expected-error@+1 {{'svldnf1_bf16' needs target feature sve,bf16}}
32   svldnf1_bf16(pg, const_bf16_ptr);
33   // expected-error@+1 {{'svldnf1_vnum_bf16' needs target feature sve,bf16}}
34   svldnf1_vnum_bf16(pg, const_bf16_ptr, i64);
35   // expected-error@+1 {{'svldnt1_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
36   svldnt1_bf16(pg, const_bf16_ptr);
37   // expected-error@+1 {{'svldnt1_vnum_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
38   svldnt1_vnum_bf16(pg, const_bf16_ptr, i64);
39   // expected-error@+1 {{'svrev_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
40   svrev_bf16(bf16);
41   // expected-error@+1 {{'svset2_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
42   svset2_bf16(bf16x2, 1, bf16);
43   // expected-error@+1 {{'svset3_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
44   svset3_bf16(bf16x3, 1, bf16);
45   // expected-error@+1 {{'svset4_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
46   svset4_bf16(bf16x4, 1, bf16);
47   // expected-error@+1 {{'svst1_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
48   svst1_bf16(pg, bf16_ptr, bf16);
49   // expected-error@+1 {{'svst1_vnum_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
50   svst1_vnum_bf16(pg, bf16_ptr, i64, bf16);
51   // expected-error@+1 {{'svstnt1_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
52   svstnt1_bf16(pg, bf16_ptr, bf16);
53   // expected-error@+1 {{'svstnt1_vnum_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
54   svstnt1_vnum_bf16(pg, bf16_ptr, i64, bf16);
55   // expected-error@+1 {{'svtrn1_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
56   svtrn1_bf16(bf16, bf16);
57   // expected-error@+1 {{'svtrn1q_bf16' needs target feature sve,bf16}}
58   svtrn1q_bf16(bf16, bf16);
59   // expected-error@+1 {{'svtrn2_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
60   svtrn2_bf16(bf16, bf16);
61   // expected-error@+1 {{'svtrn2q_bf16' needs target feature sve,bf16}}
62   svtrn2q_bf16(bf16, bf16);
63   // expected-error@+1 {{'svundef_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
64   svundef_bf16();
65   // expected-error@+1 {{'svundef2_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
66   svundef2_bf16();
67   // expected-error@+1 {{'svundef3_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
68   svundef3_bf16();
69   // expected-error@+1 {{'svundef4_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
70   svundef4_bf16();
71   // expected-error@+1 {{'svuzp1_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
72   svuzp1_bf16(bf16, bf16);
73   // expected-error@+1 {{'svuzp1q_bf16' needs target feature sve,bf16}}
74   svuzp1q_bf16(bf16, bf16);
75   // expected-error@+1 {{'svuzp2_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
76   svuzp2_bf16(bf16, bf16);
77   // expected-error@+1 {{'svuzp2q_bf16' needs target feature sve,bf16}}
78   svuzp2q_bf16(bf16, bf16);
79   // expected-error@+1 {{'svzip1_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
80   svzip1_bf16(bf16, bf16);
81   // expected-error@+1 {{'svzip1q_bf16' needs target feature sve,bf16}}
82   svzip1q_bf16(bf16, bf16);
83   // expected-error@+1 {{'svzip2_bf16' needs target feature (sve,bf16)|(sme,bf16)}}
84   svzip2_bf16(bf16, bf16);
85   // expected-error@+1 {{'svzip2q_bf16' needs target feature sve,bf16}}
86   svzip2q_bf16(bf16, bf16);
87 }
88