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