[ARM] Better OR's for MVE compares
[llvm-core.git] / test / MC / ARM / vscclrm-asm.s
blobd86de90f849f195e5d836df74496106b3b5e82a9
1 // RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=+8msecext -show-encoding < %s 2>%t \
2 // RUN: | FileCheck --check-prefix=CHECK %s
3 // RUN: FileCheck --check-prefix=ERROR < %t %s
4 // RUN: not llvm-mc -triple=thumbv8.1m.main-arm-none-eabi -mattr=-8msecext < %s 2>%t
5 // RUN: FileCheck --check-prefix=NOSEC < %t %s
7 // CHECK: vscclrm {s0, s1, s2, s3, vpr} @ encoding: [0x9f,0xec,0x04,0x0a]
8 // NOSEC: instruction requires: ARMv8-M Security Extensions
9 vscclrm {s0-s3, vpr}
11 // CHECK: vscclrm {s3, s4, s5, s6, s7, s8, vpr} @ encoding: [0xdf,0xec,0x06,0x1a]
12 // NOSEC: instruction requires: ARMv8-M Security Extensions
13 vscclrm {s3-s8, vpr}
15 // CHECK: vscclrm {s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, vpr} @ encoding: [0x9f,0xec,0x0c,0x9a]
16 vscclrm {s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, vpr}
18 // CHECK: vscclrm {s31, vpr} @ encoding: [0xdf,0xec,0x01,0xfa]
19 vscclrm {s31, vpr}
21 // CHECK: vscclrm {d0, d1, vpr} @ encoding: [0x9f,0xec,0x04,0x0b]
22 vscclrm {d0-d1, vpr}
24 // CHECK: vscclrm {d5, d6, d7, vpr} @ encoding: [0x9f,0xec,0x06,0x5b]
25 vscclrm {d5-d7, vpr}
27 // CHECK: it hi @ encoding: [0x88,0xbf]
28 it hi
29 // CHECK: vscclrmhi {s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31, vpr} @ encoding: [0xdf,0xec,0x1d,0x1a]
30 vscclrmhi {s3-s31, vpr}
32 // ERROR: non-contiguous register range
33 vscclrm {s0, s3-s4, vpr}
35 // ERROR: register expected
36 vscclrm {s32, vpr}
38 // ERROR: invalid operand for instruction
39 vscclrm {s0-s1}