99 lines · plain
1// RUN: llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=+8msecext,+mve -show-encoding < %s \2// RUN: | FileCheck --check-prefix=CHECK %s3// RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=-8msecext,+mve -show-encoding < %s 2>%t \4// RUN: | FileCheck --check-prefix=CHECK-NOSEC %s5// RUN: FileCheck --check-prefix=ERROR-NOSEC < %t %s6// RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=+8msecext,-mve,+vfp2 -show-encoding < %s 2> %t \7// RUN: | FileCheck --check-prefix=CHECK-NOMVE %s8// RUN: FileCheck --check-prefix=ERROR-NOMVE < %t %s9// RUN: llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=+8msecext,+mve,-vfp2 -show-encoding < %s \10// RUN: | FileCheck --check-prefix=CHECK-NOVFP %s11// RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=-8msecext,-mve,-vfp2 -show-encoding < %s 2> %t12// RUN: FileCheck --check-prefix=ERROR-NONE < %t %s13// RUN: not llvm-mc -triple=thumbv8m.main-none-eabi -mattr=+8msecext,+vfp2 -show-encoding < %s 2> %t14// RUN: FileCheck --check-prefix=ERROR-V8M < %t %s15 16// ERROR-V8M: instruction requires: armv8.1m.main17// ERROR-NONE: instruction requires: fp registers18// CHECK-NOVFP: vmsr fpscr_nzcvqc, r0 @ encoding: [0xe2,0xee,0x10,0x0a]19// CHECK-NOMVE: vmsr fpscr_nzcvqc, r0 @ encoding: [0xe2,0xee,0x10,0x0a]20// CHECK-NOSEC: vmsr fpscr_nzcvqc, r0 @ encoding: [0xe2,0xee,0x10,0x0a]21// CHECK: vmsr fpscr_nzcvqc, r0 @ encoding: [0xe2,0xee,0x10,0x0a]22vmsr fpscr_nzcvqc, r023 24// ERROR-V8M: instruction requires: armv8.1m.main25// ERROR-NONE: instruction requires: fp registers26// CHECK-NOVFP: vmrs r10, fpscr_nzcvqc @ encoding: [0xf2,0xee,0x10,0xaa]27// CHECK-NOMVE: vmrs r10, fpscr_nzcvqc @ encoding: [0xf2,0xee,0x10,0xaa]28// CHECK-NOSEC: vmrs r10, fpscr_nzcvqc @ encoding: [0xf2,0xee,0x10,0xaa]29// CHECK: vmrs r10, fpscr_nzcvqc @ encoding: [0xf2,0xee,0x10,0xaa]30vmrs r10, fpscr_nzcvqc31 32// ERROR-V8M: instruction requires: armv8.1m.main33// ERROR-NONE: instruction requires: ARMv8-M Security Extensions34// CHECK-NOVFP: vmrs r0, fpcxtns @ encoding: [0xfe,0xee,0x10,0x0a]35// CHECK-NOMVE: vmrs r0, fpcxtns @ encoding: [0xfe,0xee,0x10,0x0a]36// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions37// CHECK: vmrs r0, fpcxtns @ encoding: [0xfe,0xee,0x10,0x0a]38vmrs r0, fpcxtns39 40// ERROR-V8M: instruction requires: armv8.1m.main41// ERROR-NONE: instruction requires: ARMv8-M Security Extensions42// CHECK-NOVFP: vmsr fpcxtns, r10 @ encoding: [0xee,0xee,0x10,0xaa]43// CHECK-NOMVE: vmsr fpcxtns, r10 @ encoding: [0xee,0xee,0x10,0xaa]44// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions45// CHECK: vmsr fpcxtns, r10 @ encoding: [0xee,0xee,0x10,0xaa]46vmsr fpcxtns, r1047 48// ERROR-V8M: instruction requires: armv8.1m.main49// ERROR-NONE: instruction requires: ARMv8-M Security Extensions50// CHECK-NOVFP: vmsr fpcxts, r5 @ encoding: [0xef,0xee,0x10,0x5a]51// CHECK-NOMVE: vmsr fpcxts, r5 @ encoding: [0xef,0xee,0x10,0x5a]52// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions53// CHECK: vmsr fpcxts, r5 @ encoding: [0xef,0xee,0x10,0x5a]54vmsr fpcxts, r555 56// ERROR-V8M: instruction requires: armv8.1m.main57// ERROR-NONE: instruction requires: ARMv8-M Security Extensions58// CHECK-NOVFP: vmrs r3, fpcxtns @ encoding: [0xfe,0xee,0x10,0x3a]59// CHECK-NOMVE: vmrs r3, fpcxtns @ encoding: [0xfe,0xee,0x10,0x3a]60// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions61// CHECK: vmrs r3, fpcxtns @ encoding: [0xfe,0xee,0x10,0x3a]62vmrs r3, fpcxtns63 64// ERROR-V8M: instruction requires: armv8.1m.main65// ERROR-NONE: instruction requires: ARMv8-M Security Extensions66// CHECK-NOVFP: vmrs r0, fpcxts @ encoding: [0xff,0xee,0x10,0x0a]67// CHECK-NOMVE: vmrs r0, fpcxts @ encoding: [0xff,0xee,0x10,0x0a]68// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions69// CHECK: vmrs r0, fpcxts @ encoding: [0xff,0xee,0x10,0x0a]70vmrs r0, fpcxts71 72// ERROR-V8M: instruction requires: mve armv8.1m.main73// ERROR-NONE: instruction requires: mve74// ERROR-NOMVE: instruction requires: mve75// CHECK-NOSEC: vmrs r0, vpr @ encoding: [0xfc,0xee,0x10,0x0a]76// CHECK: vmrs r0, vpr @ encoding: [0xfc,0xee,0x10,0x0a]77vmrs r0, vpr78 79// ERROR-V8M: instruction requires: mve armv8.1m.main80// ERROR-NONE: instruction requires: mve81// ERROR-NOMVE: instruction requires: mve82// CHECK-NOSEC: vmrs r4, p0 @ encoding: [0xfd,0xee,0x10,0x4a]83// CHECK: vmrs r4, p0 @ encoding: [0xfd,0xee,0x10,0x4a]84vmrs r4, p085 86// ERROR-V8M: instruction requires: mve armv8.1m.main87// ERROR-NONE: instruction requires: mve88// ERROR-NOMVE: instruction requires: mve89// CHECK-NOSEC: vmsr vpr, r0 @ encoding: [0xec,0xee,0x10,0x0a]90// CHECK: vmsr vpr, r0 @ encoding: [0xec,0xee,0x10,0x0a]91vmsr vpr, r092 93// ERROR-V8M: instruction requires: mve armv8.1m.main94// ERROR-NONE: instruction requires: mve95// ERROR-NOMVE: instruction requires: mve96// CHECK-NOSEC: vmsr p0, r4 @ encoding: [0xed,0xee,0x10,0x4a]97// CHECK: vmsr p0, r4 @ encoding: [0xed,0xee,0x10,0x4a]98vmsr p0, r499