xref: /llvm-project/llvm/test/MC/AArch64/arm64ec-disallowed-regs.s (revision 43847c1de60ddba26d93c138ad81aa0d3b3c8c31)
1// RUN: llvm-mc -triple arm64ec-pc-windows-msvc < %s 2> %t.log
2// RUN: FileCheck %s --check-prefix=CHECK-ERR < %t.log
3// RUN: llvm-mc -triple aarch64-windows-msvc < %s > %t.log 2>&1
4// RUN: FileCheck %s --check-prefix=CHECK-NOEC < %t.log
5
6// ---- disallowed x registers ----
7orr x13, x0, x1             // x13
8// CHECK-ERR: warning: register X13 is disallowed on ARM64EC.
9orr x14, x2, x3             // x14
10// CHECK-ERR: warning: register X14 is disallowed on ARM64EC.
11orr x4, x23, x5             // x23
12// CHECK-ERR: warning: register X23 is disallowed on ARM64EC.
13orr x6, x7, x24             // x24
14// CHECK-ERR: warning: register X24 is disallowed on ARM64EC.
15orr x28, x8, x9             // x28
16// CHECK-ERR: warning: register X28 is disallowed on ARM64EC.
17
18// ---- disallowed w registers ----
19orr w0, w13, w1             // w13
20// CHECK-ERR: warning: register W13 is disallowed on ARM64EC.
21orr w14, w2, w3             // w14
22// CHECK-ERR: warning: register W14 is disallowed on ARM64EC.
23orr w4, w23, w5             // w23
24// CHECK-ERR: warning: register W23 is disallowed on ARM64EC.
25orr w6, w7, w24             // W24
26// CHECK-ERR: warning: register W24 is disallowed on ARM64EC.
27orr w28, w8, w9             // w28
28// CHECK-ERR: warning: register W28 is disallowed on ARM64EC.
29
30// ---- disallowed vector registers ----
31orn v1.8b, v16.8b, v2.8b        // v16
32// CHECK-ERR: warning: register D16 is disallowed on ARM64EC.
33orn v2.16b, v17.16b, v3.16b     // v17
34// CHECK-ERR: warning: register Q17 is disallowed on ARM64EC.
35orn v3.8b, v18.8b, v4.8b        // v18
36// CHECK-ERR: warning: register D18 is disallowed on ARM64EC.
37orn v4.16b, v19.16b, v5.16b     // v19
38// CHECK-ERR: warning: register Q19 is disallowed on ARM64EC.
39orn v5.8b, v20.8b, v6.8b        // v20
40// CHECK-ERR: warning: register D20 is disallowed on ARM64EC.
41orn v21.8b, v6.8b, v7.8b        // v21
42// CHECK-ERR: warning: register D21 is disallowed on ARM64EC.
43orn v7.16b, v8.16b, v22.16b     // v22
44// CHECK-ERR: warning: register Q22 is disallowed on ARM64EC.
45orn v23.8b, v8.8b, v9.8b        // v23
46// CHECK-ERR: warning: register D23 is disallowed on ARM64EC.
47orn v9.16b, v24.16b, v10.16b    // v24
48// CHECK-ERR: warning: register Q24 is disallowed on ARM64EC.
49orn v10.8b, v25.8b, v11.8b      // v25
50// CHECK-ERR: warning: register D25 is disallowed on ARM64EC.
51orn v11.8b, v12.8b, v26.8b      // v26
52// CHECK-ERR: warning: register D26 is disallowed on ARM64EC.
53orn v12.8b, v27.8b, v13.8b      // v27
54// CHECK-ERR: warning: register D27 is disallowed on ARM64EC.
55orn v13.16b, v28.16b, v14.16b   // v28
56// CHECK-ERR: warning: register Q28 is disallowed on ARM64EC.
57orn v14.8b, v29.8b, v15.8b      // v29
58// CHECK-ERR: warning: register D29 is disallowed on ARM64EC.
59orn v15.8b, v30.8b, v15.8b      // v30
60// CHECK-ERR: warning: register D30 is disallowed on ARM64EC.
61orn v1.16b, v31.16b, v1.16b     // v31
62// CHECK-ERR: warning: register Q31 is disallowed on ARM64EC.
63
64// ---- random tests on h, b, d, s registers ----
65orn.16b v1, v16, v2
66// CHECK-ERR: warning: register Q16 is disallowed on ARM64EC.
67str d17, [x0]
68// CHECK-ERR: warning: register D17 is disallowed on ARM64EC.
69fmul d2, d18, d11
70// CHECK-ERR: warning: register D18 is disallowed on ARM64EC.
71clz.8h v3, v19
72// CHECK-ERR: warning: register Q19 is disallowed on ARM64EC.
73add.4s v0, v20, v1
74// CHECK-ERR: warning: register Q20 is disallowed on ARM64EC.
75add.2d v0, v20, v1
76// CHECK-ERR: warning: register Q20 is disallowed on ARM64EC.
77str b17, [x28]
78// CHECK-ERR: warning: register B17 is disallowed on ARM64EC.
79// CHECK-ERR: warning: register X28 is disallowed on ARM64EC.
80addv h21, v22.4h
81// CHECK-ERR: warning: register H21 is disallowed on ARM64EC.
82// CHECK-ERR: warning: register D22 is disallowed on ARM64EC.
83mov w14, v24.s[0]
84// CHECK-ERR: warning: register W14 is disallowed on ARM64EC.
85// CHECK-ERR: warning: register Q24 is disallowed on ARM64EC.
86add x13, x14, x28
87// CHECK-ERR: warning: register X13 is disallowed on ARM64EC.
88// CHECK-ERR: warning: register X14 is disallowed on ARM64EC.
89// CHECK-ERR: warning: register X28 is disallowed on ARM64EC.
90
91// CHECK-NOEC-NOT: warning:
92