1 ; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s
3 declare void @sm_attrs() "aarch64_pstate_sm_enabled" "aarch64_pstate_sm_compatible";
4 ; CHECK: Attributes 'aarch64_pstate_sm_enabled and aarch64_pstate_sm_compatible' are incompatible!
6 declare void @za_new_preserved() "aarch64_new_za" "aarch64_preserves_za";
7 ; CHECK: Attributes 'aarch64_new_za', 'aarch64_in_za', 'aarch64_out_za', 'aarch64_inout_za' and 'aarch64_preserves_za' are mutually exclusive
9 declare void @za_new_in() "aarch64_new_za" "aarch64_in_za";
10 ; CHECK: Attributes 'aarch64_new_za', 'aarch64_in_za', 'aarch64_out_za', 'aarch64_inout_za' and 'aarch64_preserves_za' are mutually exclusive
12 declare void @za_new_inout() "aarch64_new_za" "aarch64_inout_za";
13 ; CHECK: Attributes 'aarch64_new_za', 'aarch64_in_za', 'aarch64_out_za', 'aarch64_inout_za' and 'aarch64_preserves_za' are mutually exclusive
15 declare void @za_new_out() "aarch64_new_za" "aarch64_out_za";
16 ; CHECK: Attributes 'aarch64_new_za', 'aarch64_in_za', 'aarch64_out_za', 'aarch64_inout_za' and 'aarch64_preserves_za' are mutually exclusive
18 declare void @za_preserved_in() "aarch64_preserves_za" "aarch64_in_za";
19 ; CHECK: Attributes 'aarch64_new_za', 'aarch64_in_za', 'aarch64_out_za', 'aarch64_inout_za' and 'aarch64_preserves_za' are mutually exclusive
21 declare void @za_preserved_inout() "aarch64_preserves_za" "aarch64_inout_za";
22 ; CHECK: Attributes 'aarch64_new_za', 'aarch64_in_za', 'aarch64_out_za', 'aarch64_inout_za' and 'aarch64_preserves_za' are mutually exclusive
24 declare void @za_preserved_out() "aarch64_preserves_za" "aarch64_out_za";
25 ; CHECK: Attributes 'aarch64_new_za', 'aarch64_in_za', 'aarch64_out_za', 'aarch64_inout_za' and 'aarch64_preserves_za' are mutually exclusive
27 declare void @za_in_inout() "aarch64_in_za" "aarch64_inout_za";
28 ; CHECK: Attributes 'aarch64_new_za', 'aarch64_in_za', 'aarch64_out_za', 'aarch64_inout_za' and 'aarch64_preserves_za' are mutually exclusive
30 declare void @za_in_out() "aarch64_in_za" "aarch64_out_za";
31 ; CHECK: Attributes 'aarch64_new_za', 'aarch64_in_za', 'aarch64_out_za', 'aarch64_inout_za' and 'aarch64_preserves_za' are mutually exclusive
33 declare void @za_inout_out() "aarch64_inout_za" "aarch64_out_za";
34 ; CHECK: Attributes 'aarch64_new_za', 'aarch64_in_za', 'aarch64_out_za', 'aarch64_inout_za' and 'aarch64_preserves_za' are mutually exclusive
36 declare void @zt0_new_preserved() "aarch64_new_zt0" "aarch64_preserves_zt0";
37 ; CHECK: Attributes 'aarch64_new_zt0', 'aarch64_in_zt0', 'aarch64_out_zt0', 'aarch64_inout_zt0' and 'aarch64_preserves_zt0' are mutually exclusive
39 declare void @zt0_new_in() "aarch64_new_zt0" "aarch64_in_zt0";
40 ; CHECK: Attributes 'aarch64_new_zt0', 'aarch64_in_zt0', 'aarch64_out_zt0', 'aarch64_inout_zt0' and 'aarch64_preserves_zt0' are mutually exclusive
42 declare void @zt0_new_inout() "aarch64_new_zt0" "aarch64_inout_zt0";
43 ; CHECK: Attributes 'aarch64_new_zt0', 'aarch64_in_zt0', 'aarch64_out_zt0', 'aarch64_inout_zt0' and 'aarch64_preserves_zt0' are mutually exclusive
45 declare void @zt0_new_out() "aarch64_new_zt0" "aarch64_out_zt0";
46 ; CHECK: Attributes 'aarch64_new_zt0', 'aarch64_in_zt0', 'aarch64_out_zt0', 'aarch64_inout_zt0' and 'aarch64_preserves_zt0' are mutually exclusive
48 declare void @zt0_preserved_in() "aarch64_preserves_zt0" "aarch64_in_zt0";
49 ; CHECK: Attributes 'aarch64_new_zt0', 'aarch64_in_zt0', 'aarch64_out_zt0', 'aarch64_inout_zt0' and 'aarch64_preserves_zt0' are mutually exclusive
51 declare void @zt0_preserved_inout() "aarch64_preserves_zt0" "aarch64_inout_zt0";
52 ; CHECK: Attributes 'aarch64_new_zt0', 'aarch64_in_zt0', 'aarch64_out_zt0', 'aarch64_inout_zt0' and 'aarch64_preserves_zt0' are mutually exclusive
54 declare void @zt0_preserved_out() "aarch64_preserves_zt0" "aarch64_out_zt0";
55 ; CHECK: Attributes 'aarch64_new_zt0', 'aarch64_in_zt0', 'aarch64_out_zt0', 'aarch64_inout_zt0' and 'aarch64_preserves_zt0' are mutually exclusive
57 declare void @zt0_in_inout() "aarch64_in_zt0" "aarch64_inout_zt0";
58 ; CHECK: Attributes 'aarch64_new_zt0', 'aarch64_in_zt0', 'aarch64_out_zt0', 'aarch64_inout_zt0' and 'aarch64_preserves_zt0' are mutually exclusive
60 declare void @zt0_in_out() "aarch64_in_zt0" "aarch64_out_zt0";
61 ; CHECK: Attributes 'aarch64_new_zt0', 'aarch64_in_zt0', 'aarch64_out_zt0', 'aarch64_inout_zt0' and 'aarch64_preserves_zt0' are mutually exclusive
63 declare void @zt0_inout_out() "aarch64_inout_zt0" "aarch64_out_zt0";
64 ; CHECK: Attributes 'aarch64_new_zt0', 'aarch64_in_zt0', 'aarch64_out_zt0', 'aarch64_inout_zt0' and 'aarch64_preserves_zt0' are mutually exclusive