1// RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=+vfp2,+mve,+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-none-eabi -mattr=-vfp2,+mve,+8msecext -show-encoding < %s 2>%t \ 5// RUN: | FileCheck --check-prefix=CHECK-NOVFP %s 6// RUN: FileCheck --check-prefix=ERROR-NOVFP < %t %s 7// RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=+vfp2,-mve,+8msecext -show-encoding < %s 2>%t \ 8// RUN: | FileCheck --check-prefix=CHECK-NOMVE %s 9// RUN: FileCheck --check-prefix=ERROR-NOMVE < %t %s 10// RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=+vfp2,+mve,-8msecext -show-encoding < %s 2>%t \ 11// RUN: | FileCheck --check-prefix=CHECK-NOSEC %s 12// RUN: FileCheck --check-prefix=ERROR-NOSEC < %t %s 13// RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=-vfp2,-mve,-8msecext -show-encoding < %s 2>%t 14// RUN: FileCheck --check-prefix=ERROR-NONE < %t %s 15// RUN: not llvm-mc -triple=thumbv8m.main-none-eabi -mattr=+vfp2,+8msecext -show-encoding < %s 2>%t 16// RUN: FileCheck --check-prefix=ERROR-V8M < %t %s 17 18// ERROR-V8M: instruction requires: armv8.1m.main 19// ERROR-NONE: instruction requires: fp registers 20// CHECK-NOSEC: vstr fpscr, [r0] @ encoding: [0x80,0xed,0x80,0x2f] 21// CHECK-NOMVE: vstr fpscr, [r0] @ encoding: [0x80,0xed,0x80,0x2f] 22// CHECK-NOVFP: vstr fpscr, [r0] @ encoding: [0x80,0xed,0x80,0x2f] 23// CHECK: vstr fpscr, [r0] @ encoding: [0x80,0xed,0x80,0x2f] 24vstr fpscr, [r0] 25 26// ERROR-V8M: instruction requires: armv8.1m.main 27// ERROR-NONE: instruction requires: fp registers 28// CHECK-NOSEC: vstr fpscr_nzcvqc, [r9, #-24] @ encoding: [0x09,0xed,0x86,0x4f] 29// CHECK-NOMVE: vstr fpscr_nzcvqc, [r9, #-24] @ encoding: [0x09,0xed,0x86,0x4f] 30// CHECK-NOVFP: vstr fpscr_nzcvqc, [r9, #-24] @ encoding: [0x09,0xed,0x86,0x4f] 31// CHECK: vstr fpscr_nzcvqc, [r9, #-24] @ encoding: [0x09,0xed,0x86,0x4f] 32vstr fpscr_nzcvqc, [r9, #-24] 33 34// ERROR-V8M: instruction requires: armv8.1m.main 35// ERROR-NONE: instruction requires: fp registers 36// CHECK-NOSEC: vstr fpscr_nzcvqc, [r9, #-24]! @ encoding: [0x29,0xed,0x86,0x4f] 37// CHECK-NOMVE: vstr fpscr_nzcvqc, [r9, #-24]! @ encoding: [0x29,0xed,0x86,0x4f] 38// CHECK-NOVFP: vstr fpscr_nzcvqc, [r9, #-24]! @ encoding: [0x29,0xed,0x86,0x4f] 39// CHECK: vstr fpscr_nzcvqc, [r9, #-24]! @ encoding: [0x29,0xed,0x86,0x4f] 40vstr fpscr_nzcvqc, [r9, #-24]! 41 42// ERROR-V8M: instruction requires: armv8.1m.main 43// ERROR-NONE: instruction requires: fp registers 44// CHECK-NOSEC: vstr fpscr_nzcvqc, [r9], #-24 @ encoding: [0x29,0xec,0x86,0x4f] 45// CHECK-NOMVE: vstr fpscr_nzcvqc, [r9], #-24 @ encoding: [0x29,0xec,0x86,0x4f] 46// CHECK-NOVFP: vstr fpscr_nzcvqc, [r9], #-24 @ encoding: [0x29,0xec,0x86,0x4f] 47// CHECK: vstr fpscr_nzcvqc, [r9], #-24 @ encoding: [0x29,0xec,0x86,0x4f] 48vstr fpscr_nzcvqc, [r9], #-24 49 50// CHECK-NOSEC: it hi @ encoding: [0x88,0xbf] 51// CHECK-NOMVE: it hi @ encoding: [0x88,0xbf] 52// CHECK-NOVFP: it hi @ encoding: [0x88,0xbf] 53// CHECK: it hi @ encoding: [0x88,0xbf] 54it hi 55 56// ERROR-V8M: instruction requires: armv8.1m.main 57// ERROR-NONE: instruction requires: fp registers 58// CHECK-NOSEC: vstrhi fpscr, [r0] @ encoding: [0x80,0xed,0x80,0x2f] 59// CHECK-NOMVE: vstrhi fpscr, [r0] @ encoding: [0x80,0xed,0x80,0x2f] 60// CHECK-NOVFP: vstrhi fpscr, [r0] @ encoding: [0x80,0xed,0x80,0x2f] 61// CHECK: vstrhi fpscr, [r0] @ encoding: [0x80,0xed,0x80,0x2f] 62vstrhi fpscr, [r0] 63 64// ERROR-V8M: instruction requires: armv8.1m.main 65// ERROR-NONE: instruction requires: fp registers 66// CHECK-NOSEC: vldr fpscr, [r0] @ encoding: [0x90,0xed,0x80,0x2f] 67// CHECK-NOMVE: vldr fpscr, [r0] @ encoding: [0x90,0xed,0x80,0x2f] 68// CHECK-NOVFP: vldr fpscr, [r0] @ encoding: [0x90,0xed,0x80,0x2f] 69// CHECK: vldr fpscr, [r0] @ encoding: [0x90,0xed,0x80,0x2f] 70vldr fpscr, [r0] 71 72// ERROR-V8M: instruction requires: armv8.1m.main 73// ERROR-NONE: instruction requires: fp registers 74// CHECK-NOSEC: vldr fpscr_nzcvqc, [r9, #-24] @ encoding: [0x19,0xed,0x86,0x4f] 75// CHECK-NOMVE: vldr fpscr_nzcvqc, [r9, #-24] @ encoding: [0x19,0xed,0x86,0x4f] 76// CHECK-NOVFP: vldr fpscr_nzcvqc, [r9, #-24] @ encoding: [0x19,0xed,0x86,0x4f] 77// CHECK: vldr fpscr_nzcvqc, [r9, #-24] @ encoding: [0x19,0xed,0x86,0x4f] 78vldr fpscr_nzcvqc, [r9, #-24] 79 80// ERROR-V8M: instruction requires: armv8.1m.main 81// ERROR-NONE: instruction requires: fp registers 82// CHECK-NOSEC: vldr fpscr_nzcvqc, [r9, #-24]! @ encoding: [0x39,0xed,0x86,0x4f] 83// CHECK-NOMVE: vldr fpscr_nzcvqc, [r9, #-24]! @ encoding: [0x39,0xed,0x86,0x4f] 84// CHECK-NOVFP: vldr fpscr_nzcvqc, [r9, #-24]! @ encoding: [0x39,0xed,0x86,0x4f] 85// CHECK: vldr fpscr_nzcvqc, [r9, #-24]! @ encoding: [0x39,0xed,0x86,0x4f] 86vldr fpscr_nzcvqc, [r9, #-24]! 87 88// ERROR-V8M: instruction requires: armv8.1m.main 89// ERROR-NONE: instruction requires: fp registers 90// CHECK-NOSEC: vldr fpscr_nzcvqc, [r9], #-24 @ encoding: [0x39,0xec,0x86,0x4f] 91// CHECK-NOMVE: vldr fpscr_nzcvqc, [r9], #-24 @ encoding: [0x39,0xec,0x86,0x4f] 92// CHECK-NOVFP: vldr fpscr_nzcvqc, [r9], #-24 @ encoding: [0x39,0xec,0x86,0x4f] 93// CHECK: vldr fpscr_nzcvqc, [r9], #-24 @ encoding: [0x39,0xec,0x86,0x4f] 94vldr fpscr_nzcvqc, [r9], #-24 95 96// ERROR-V8M: instruction requires: armv8.1m.main 97// ERROR-NONE: instruction requires: fp registers 98// CHECK-NOSEC: vldr fpscr_nzcvqc, [sp], #-52 @ encoding: [0x3d,0xec,0x8d,0x4f] 99// CHECK-NOMVE: vldr fpscr_nzcvqc, [sp], #-52 @ encoding: [0x3d,0xec,0x8d,0x4f] 100// CHECK-NOVFP: vldr fpscr_nzcvqc, [sp], #-52 @ encoding: [0x3d,0xec,0x8d,0x4f] 101// CHECK: vldr fpscr_nzcvqc, [sp], #-52 @ encoding: [0x3d,0xec,0x8d,0x4f] 102vldr fpscr_nzcvqc, [sp], #-52 103 104// CHECK-NOSEC: it hi @ encoding: [0x88,0xbf] 105// CHECK-NOMVE: it hi @ encoding: [0x88,0xbf] 106// CHECK-NOVFP: it hi @ encoding: [0x88,0xbf] 107// CHECK: it hi @ encoding: [0x88,0xbf] 108it hi 109 110// ERROR-V8M: instruction requires: armv8.1m.main 111// ERROR-NONE: instruction requires: fp registers 112// CHECK-NOSEC: vldrhi fpscr, [r0] @ encoding: [0x90,0xed,0x80,0x2f] 113// CHECK-NOMVE: vldrhi fpscr, [r0] @ encoding: [0x90,0xed,0x80,0x2f] 114// CHECK-NOVFP: vldrhi fpscr, [r0] @ encoding: [0x90,0xed,0x80,0x2f] 115// CHECK: vldrhi fpscr, [r0] @ encoding: [0x90,0xed,0x80,0x2f] 116vldrhi fpscr, [r0] 117 118// ERROR-V8M: instruction requires: armv8.1m.main 119// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 120// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 121// CHECK-NOMVE: vstr fpcxts, [r12, #508] @ encoding: [0xcc,0xed,0xff,0xef] 122// CHECK-NOVFP: vstr fpcxts, [r12, #508] @ encoding: [0xcc,0xed,0xff,0xef] 123// CHECK: vstr fpcxts, [r12, #508] @ encoding: [0xcc,0xed,0xff,0xef] 124vstr fpcxts, [r12, #508] 125 126// ERROR-V8M: instruction requires: armv8.1m.main 127// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 128// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 129// CHECK-NOMVE: vstr fpcxts, [r12, #508]! @ encoding: [0xec,0xed,0xff,0xef] 130// CHECK-NOVFP: vstr fpcxts, [r12, #508]! @ encoding: [0xec,0xed,0xff,0xef] 131// CHECK: vstr fpcxts, [r12, #508]! @ encoding: [0xec,0xed,0xff,0xef] 132vstr fpcxts, [r12, #508]! 133 134// ERROR-V8M: instruction requires: armv8.1m.main 135// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 136// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 137// CHECK-NOMVE: vstr fpcxts, [r12], #508 @ encoding: [0xec,0xec,0xff,0xef] 138// CHECK-NOVFP: vstr fpcxts, [r12], #508 @ encoding: [0xec,0xec,0xff,0xef] 139// CHECK: vstr fpcxts, [r12], #508 @ encoding: [0xec,0xec,0xff,0xef] 140vstr fpcxts, [r12], #508 141 142// ERROR-V8M: instruction requires: armv8.1m.main 143// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 144// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 145// CHECK-NOMVE: vstr fpcxts, [sp], #-24 @ encoding: [0x6d,0xec,0x86,0xef] 146// CHECK-NOVFP: vstr fpcxts, [sp], #-24 @ encoding: [0x6d,0xec,0x86,0xef] 147// CHECK: vstr fpcxts, [sp], #-24 @ encoding: [0x6d,0xec,0x86,0xef] 148vstr fpcxts, [sp], #-24 149 150// ERROR-V8M: instruction requires: armv8.1m.main 151// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 152// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 153// CHECK-NOMVE: vldr fpcxts, [r12, #508] @ encoding: [0xdc,0xed,0xff,0xef] 154// CHECK-NOVFP: vldr fpcxts, [r12, #508] @ encoding: [0xdc,0xed,0xff,0xef] 155// CHECK: vldr fpcxts, [r12, #508] @ encoding: [0xdc,0xed,0xff,0xef] 156vldr fpcxts, [r12, #508] 157 158// ERROR-V8M: instruction requires: armv8.1m.main 159// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 160// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 161// CHECK-NOMVE: vldr fpcxts, [r12, #508]! @ encoding: [0xfc,0xed,0xff,0xef] 162// CHECK-NOVFP: vldr fpcxts, [r12, #508]! @ encoding: [0xfc,0xed,0xff,0xef] 163// CHECK: vldr fpcxts, [r12, #508]! @ encoding: [0xfc,0xed,0xff,0xef] 164vldr fpcxts, [r12, #508]! 165 166// ERROR-V8M: instruction requires: armv8.1m.main 167// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 168// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 169// CHECK-NOMVE: vldr fpcxts, [r12], #508 @ encoding: [0xfc,0xec,0xff,0xef] 170// CHECK-NOVFP: vldr fpcxts, [r12], #508 @ encoding: [0xfc,0xec,0xff,0xef] 171// CHECK: vldr fpcxts, [r12], #508 @ encoding: [0xfc,0xec,0xff,0xef] 172vldr fpcxts, [r12], #508 173 174// ERROR-V8M: instruction requires: armv8.1m.main 175// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 176// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 177// CHECK-NOMVE: vldr fpcxts, [sp], #-24 @ encoding: [0x7d,0xec,0x86,0xef] 178// CHECK-NOVFP: vldr fpcxts, [sp], #-24 @ encoding: [0x7d,0xec,0x86,0xef] 179// CHECK: vldr fpcxts, [sp], #-24 @ encoding: [0x7d,0xec,0x86,0xef] 180vldr fpcxts, [sp], #-24 181 182// ERROR-V8M: instruction requires: armv8.1m.main 183// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 184// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 185// CHECK-NOMVE: vstr fpcxtns, [r0] @ encoding: [0xc0,0xed,0x80,0xcf] 186// CHECK-NOVFP: vstr fpcxtns, [r0] @ encoding: [0xc0,0xed,0x80,0xcf] 187// CHECK: vstr fpcxtns, [r0] @ encoding: [0xc0,0xed,0x80,0xcf] 188vstr fpcxtns, [r0] 189 190// ERROR-V8M: instruction requires: armv8.1m.main 191// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 192// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 193// CHECK-NOMVE: vstr fpcxtns, [r9, #-24] @ encoding: [0x49,0xed,0x86,0xcf] 194// CHECK-NOVFP: vstr fpcxtns, [r9, #-24] @ encoding: [0x49,0xed,0x86,0xcf] 195// CHECK: vstr fpcxtns, [r9, #-24] @ encoding: [0x49,0xed,0x86,0xcf] 196vstr fpcxtns, [r9, #-24] 197 198// ERROR-V8M: instruction requires: armv8.1m.main 199// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 200// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 201// CHECK-NOMVE: vstr fpcxtns, [r6, #500] @ encoding: [0xc6,0xed,0xfd,0xcf] 202// CHECK-NOVFP: vstr fpcxtns, [r6, #500] @ encoding: [0xc6,0xed,0xfd,0xcf] 203// CHECK: vstr fpcxtns, [r6, #500] @ encoding: [0xc6,0xed,0xfd,0xcf] 204vstr fpcxtns, [r6, #500] 205 206// ERROR-V8M: instruction requires: armv8.1m.main 207// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 208// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 209// CHECK-NOMVE: vstr fpcxtns, [lr, #-508] @ encoding: [0x4e,0xed,0xff,0xcf] 210// CHECK-NOVFP: vstr fpcxtns, [lr, #-508] @ encoding: [0x4e,0xed,0xff,0xcf] 211// CHECK: vstr fpcxtns, [lr, #-508] @ encoding: [0x4e,0xed,0xff,0xcf] 212vstr fpcxtns, [lr, #-508] 213 214// ERROR-V8M: instruction requires: armv8.1m.main 215// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 216// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 217// CHECK-NOMVE: vstr fpcxtns, [r12, #508] @ encoding: [0xcc,0xed,0xff,0xcf] 218// CHECK-NOVFP: vstr fpcxtns, [r12, #508] @ encoding: [0xcc,0xed,0xff,0xcf] 219// CHECK: vstr fpcxtns, [r12, #508] @ encoding: [0xcc,0xed,0xff,0xcf] 220vstr fpcxtns, [r12, #508] 221 222// ERROR-V8M: instruction requires: armv8.1m.main 223// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 224// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 225// CHECK-NOMVE: vstr fpcxtns, [sp], #-24 @ encoding: [0x6d,0xec,0x86,0xcf] 226// CHECK-NOVFP: vstr fpcxtns, [sp], #-24 @ encoding: [0x6d,0xec,0x86,0xcf] 227// CHECK: vstr fpcxtns, [sp], #-24 @ encoding: [0x6d,0xec,0x86,0xcf] 228vstr fpcxtns, [sp], #-24 229 230// ERROR-V8M: instruction requires: armv8.1m.main 231// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 232// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 233// CHECK-NOMVE: vldr fpcxtns, [r0] @ encoding: [0xd0,0xed,0x80,0xcf] 234// CHECK-NOVFP: vldr fpcxtns, [r0] @ encoding: [0xd0,0xed,0x80,0xcf] 235// CHECK: vldr fpcxtns, [r0] @ encoding: [0xd0,0xed,0x80,0xcf] 236vldr fpcxtns, [r0] 237 238// ERROR-V8M: instruction requires: armv8.1m.main 239// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 240// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 241// CHECK-NOMVE: vldr fpcxtns, [r9, #-24] @ encoding: [0x59,0xed,0x86,0xcf] 242// CHECK-NOVFP: vldr fpcxtns, [r9, #-24] @ encoding: [0x59,0xed,0x86,0xcf] 243// CHECK: vldr fpcxtns, [r9, #-24] @ encoding: [0x59,0xed,0x86,0xcf] 244vldr fpcxtns, [r9, #-24] 245 246// ERROR-V8M: instruction requires: armv8.1m.main 247// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 248// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 249// CHECK-NOMVE: vldr fpcxtns, [r6, #500] @ encoding: [0xd6,0xed,0xfd,0xcf] 250// CHECK-NOVFP: vldr fpcxtns, [r6, #500] @ encoding: [0xd6,0xed,0xfd,0xcf] 251// CHECK: vldr fpcxtns, [r6, #500] @ encoding: [0xd6,0xed,0xfd,0xcf] 252vldr fpcxtns, [r6, #500] 253 254// ERROR-V8M: instruction requires: armv8.1m.main 255// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 256// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 257// CHECK-NOMVE: vldr fpcxtns, [lr, #-508] @ encoding: [0x5e,0xed,0xff,0xcf] 258// CHECK-NOVFP: vldr fpcxtns, [lr, #-508] @ encoding: [0x5e,0xed,0xff,0xcf] 259// CHECK: vldr fpcxtns, [lr, #-508] @ encoding: [0x5e,0xed,0xff,0xcf] 260vldr fpcxtns, [lr, #-508] 261 262// ERROR-V8M: instruction requires: armv8.1m.main 263// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 264// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 265// CHECK-NOMVE: vldr fpcxtns, [r12, #508] @ encoding: [0xdc,0xed,0xff,0xcf] 266// CHECK-NOVFP: vldr fpcxtns, [r12, #508] @ encoding: [0xdc,0xed,0xff,0xcf] 267// CHECK: vldr fpcxtns, [r12, #508] @ encoding: [0xdc,0xed,0xff,0xcf] 268vldr fpcxtns, [r12, #508] 269 270// ERROR-V8M: instruction requires: armv8.1m.main 271// ERROR-NONE: instruction requires: ARMv8-M Security Extensions 272// ERROR-NOSEC: instruction requires: ARMv8-M Security Extensions 273// CHECK-NOMVE: vldr fpcxtns, [sp], #-24 @ encoding: [0x7d,0xec,0x86,0xcf] 274// CHECK-NOVFP: vldr fpcxtns, [sp], #-24 @ encoding: [0x7d,0xec,0x86,0xcf] 275// CHECK: vldr fpcxtns, [sp], #-24 @ encoding: [0x7d,0xec,0x86,0xcf] 276vldr fpcxtns, [sp], #-24 277 278// ERROR-V8M: instruction requires: mve armv8.1m.main 279// ERROR-NONE: instruction requires: mve 280// CHECK-NOSEC: vstr vpr, [r6, #500] @ encoding: [0xc6,0xed,0xfd,0x8f] 281// ERROR-NOMVE: instruction requires: mve 282// CHECK-NOVFP: vstr vpr, [r6, #500] @ encoding: [0xc6,0xed,0xfd,0x8f] 283// CHECK: vstr vpr, [r6, #500] @ encoding: [0xc6,0xed,0xfd,0x8f] 284vstr vpr, [r6, #500] 285 286// ERROR-V8M: instruction requires: mve armv8.1m.main 287// ERROR-NONE: instruction requires: mve 288// CHECK-NOSEC: vstr p0, [lr, #-508] @ encoding: [0x4e,0xed,0xff,0xaf] 289// ERROR-NOMVE: instruction requires: mve 290// CHECK-NOVFP: vstr p0, [lr, #-508] @ encoding: [0x4e,0xed,0xff,0xaf] 291// CHECK: vstr p0, [lr, #-508] @ encoding: [0x4e,0xed,0xff,0xaf] 292vstr p0, [lr, #-508] 293 294// ERROR-V8M: instruction requires: mve armv8.1m.main 295// ERROR-NONE: instruction requires: mve 296// CHECK-NOSEC: vstr vpr, [r6, #500]! @ encoding: [0xe6,0xed,0xfd,0x8f] 297// ERROR-NOMVE: instruction requires: mve 298// CHECK-NOVFP: vstr vpr, [r6, #500]! @ encoding: [0xe6,0xed,0xfd,0x8f] 299// CHECK: vstr vpr, [r6, #500]! @ encoding: [0xe6,0xed,0xfd,0x8f] 300vstr vpr, [r6, #500]! 301 302// ERROR-V8M: instruction requires: mve armv8.1m.main 303// ERROR-NONE: instruction requires: mve 304// CHECK-NOSEC: vstr p0, [lr, #-508]! @ encoding: [0x6e,0xed,0xff,0xaf] 305// ERROR-NOMVE: instruction requires: mve 306// CHECK-NOVFP: vstr p0, [lr, #-508]! @ encoding: [0x6e,0xed,0xff,0xaf] 307// CHECK: vstr p0, [lr, #-508]! @ encoding: [0x6e,0xed,0xff,0xaf] 308vstr p0, [lr, #-508]! 309 310// ERROR-V8M: instruction requires: mve armv8.1m.main 311// ERROR-NONE: instruction requires: mve 312// CHECK-NOSEC: vstr vpr, [r6], #500 @ encoding: [0xe6,0xec,0xfd,0x8f] 313// ERROR-NOMVE: instruction requires: mve 314// CHECK-NOVFP: vstr vpr, [r6], #500 @ encoding: [0xe6,0xec,0xfd,0x8f] 315// CHECK: vstr vpr, [r6], #500 @ encoding: [0xe6,0xec,0xfd,0x8f] 316vstr vpr, [r6], #500 317 318// ERROR-V8M: instruction requires: mve armv8.1m.main 319// ERROR-NONE: instruction requires: mve 320// CHECK-NOSEC: vstr p0, [lr], #-508 @ encoding: [0x6e,0xec,0xff,0xaf] 321// ERROR-NOMVE: instruction requires: mve 322// CHECK-NOVFP: vstr p0, [lr], #-508 @ encoding: [0x6e,0xec,0xff,0xaf] 323// CHECK: vstr p0, [lr], #-508 @ encoding: [0x6e,0xec,0xff,0xaf] 324vstr p0, [lr], #-508 325 326// ERROR-V8M: instruction requires: mve armv8.1m.main 327// ERROR-NONE: instruction requires: mve 328// CHECK-NOSEC: vstr p0, [sp], #-24 @ encoding: [0x6d,0xec,0x86,0xaf] 329// ERROR-NOMVE: instruction requires: mve 330// CHECK-NOVFP: vstr p0, [sp], #-24 @ encoding: [0x6d,0xec,0x86,0xaf] 331// CHECK: vstr p0, [sp], #-24 @ encoding: [0x6d,0xec,0x86,0xaf] 332vstr p0, [sp], #-24 333 334// ERROR-V8M: instruction requires: mve armv8.1m.main 335// ERROR-NONE: instruction requires: mve 336// CHECK-NOSEC: vldr vpr, [r6, #500] @ encoding: [0xd6,0xed,0xfd,0x8f] 337// ERROR-NOMVE: instruction requires: mve 338// CHECK-NOVFP: vldr vpr, [r6, #500] @ encoding: [0xd6,0xed,0xfd,0x8f] 339// CHECK: vldr vpr, [r6, #500] @ encoding: [0xd6,0xed,0xfd,0x8f] 340vldr vpr, [r6, #500] 341 342// ERROR-V8M: instruction requires: mve armv8.1m.main 343// ERROR-NONE: instruction requires: mve 344// CHECK-NOSEC: vldr p0, [lr, #-508] @ encoding: [0x5e,0xed,0xff,0xaf] 345// ERROR-NOMVE: instruction requires: mve 346// CHECK-NOVFP: vldr p0, [lr, #-508] @ encoding: [0x5e,0xed,0xff,0xaf] 347// CHECK: vldr p0, [lr, #-508] @ encoding: [0x5e,0xed,0xff,0xaf] 348vldr p0, [lr, #-508] 349 350// ERROR-V8M: instruction requires: mve armv8.1m.main 351// ERROR-NONE: instruction requires: mve 352// CHECK-NOSEC: vldr vpr, [r6, #500]! @ encoding: [0xf6,0xed,0xfd,0x8f] 353// ERROR-NOMVE: instruction requires: mve 354// CHECK-NOVFP: vldr vpr, [r6, #500]! @ encoding: [0xf6,0xed,0xfd,0x8f] 355// CHECK: vldr vpr, [r6, #500]! @ encoding: [0xf6,0xed,0xfd,0x8f] 356vldr vpr, [r6, #500]! 357 358// ERROR-V8M: instruction requires: mve armv8.1m.main 359// ERROR-NONE: instruction requires: mve 360// CHECK-NOSEC: vldr p0, [lr, #-508]! @ encoding: [0x7e,0xed,0xff,0xaf] 361// ERROR-NOMVE: instruction requires: mve 362// CHECK-NOVFP: vldr p0, [lr, #-508]! @ encoding: [0x7e,0xed,0xff,0xaf] 363// CHECK: vldr p0, [lr, #-508]! @ encoding: [0x7e,0xed,0xff,0xaf] 364vldr p0, [lr, #-508]! 365 366// ERROR-V8M: instruction requires: mve armv8.1m.main 367// ERROR-NONE: instruction requires: mve 368// CHECK-NOSEC: vldr vpr, [r6], #500 @ encoding: [0xf6,0xec,0xfd,0x8f] 369// ERROR-NOMVE: instruction requires: mve 370// CHECK-NOVFP: vldr vpr, [r6], #500 @ encoding: [0xf6,0xec,0xfd,0x8f] 371// CHECK: vldr vpr, [r6], #500 @ encoding: [0xf6,0xec,0xfd,0x8f] 372vldr vpr, [r6], #500 373 374// ERROR-V8M: instruction requires: mve armv8.1m.main 375// ERROR-NONE: instruction requires: mve 376// CHECK-NOSEC: vldr p0, [lr], #-508 @ encoding: [0x7e,0xec,0xff,0xaf] 377// ERROR-NOMVE: instruction requires: mve 378// CHECK-NOVFP: vldr p0, [lr], #-508 @ encoding: [0x7e,0xec,0xff,0xaf] 379// CHECK: vldr p0, [lr], #-508 @ encoding: [0x7e,0xec,0xff,0xaf] 380vldr p0, [lr], #-508 381 382// ERROR-V8M: instruction requires: mve armv8.1m.main 383// ERROR-NONE: instruction requires: mve 384// CHECK-NOSEC: vldr p0, [sp], #-24 @ encoding: [0x7d,0xec,0x86,0xaf] 385// ERROR-NOMVE: instruction requires: mve 386// CHECK-NOVFP: vldr p0, [sp], #-24 @ encoding: [0x7d,0xec,0x86,0xaf] 387// CHECK: vldr p0, [sp], #-24 @ encoding: [0x7d,0xec,0x86,0xaf] 388vldr p0, [sp], #-24 389 390// ERROR-NOSEC: invalid instruction 391// ERROR-NOMVE: invalid operand for instruction 392// ERROR-NOVFP: invalid operand for instruction 393// ERROR: invalid operand for instruction 394vldr fpcxtns, [pc, #4]! 395 396// ERROR-NOSEC: invalid instruction 397// ERROR-NOMVE: invalid operand for instruction 398// ERROR-NOVFP: invalid operand for instruction 399// ERROR: invalid operand for instruction 400vstr fpcxtns, [r0, #-507] 401 402// ERROR-NOSEC: invalid instruction 403// ERROR-NOMVE: invalid operand for instruction 404// ERROR-NOVFP: invalid operand for instruction 405// ERROR: invalid operand for instruction 406vldr fpcxtns, [r2, #512] 407 408// ERROR-NOSEC: invalid instruction 409// ERROR-NOMVE: invalid operand for instruction 410// ERROR-NOVFP: invalid operand for instruction 411// ERROR: invalid operand for instruction 412vldr fpcxtns, [pc], #-24 413 414// ERROR-NOSEC: invalid operand for instruction 415// ERROR-NOMVE: invalid operand for instruction 416// ERROR-NOVFP: invalid operand for instruction 417// ERROR: invalid operand for instruction 418vstr vpr, [r0, #-507] 419 420// ERROR-NOSEC: invalid operand for instruction 421// ERROR-NOMVE: invalid instruction 422// ERROR-NOVFP: invalid operand for instruction 423// ERROR: invalid operand for instruction 424vldr p0, [r2, #512] 425 426// ERROR-NOSEC: invalid operand for instruction 427// ERROR-NOMVE: invalid instruction 428// ERROR-NOVFP: invalid operand for instruction 429// ERROR: invalid operand for instruction 430vldr p0, [r2, #2] 431 432// ERROR-NOSEC: invalid operand for instruction 433// ERROR-NOMVE: invalid instruction 434// ERROR-NOVFP: invalid operand for instruction 435// ERROR: invalid operand for instruction 436vldr p0, [pc], #4 437 438// ERROR-NOSEC: invalid operand for instruction 439// ERROR-NOMVE: invalid instruction 440// ERROR-NOVFP: invalid operand for instruction 441// ERROR: invalid operand for instruction 442vldr fpscr, [pc, #4]! 443 444// ERROR-NOSEC: invalid operand for instruction 445// ERROR-NOMVE: invalid operand for instruction 446// ERROR-NOVFP: invalid operand for instruction 447// ERROR: invalid operand for instruction 448vldr fpscr_nzcvqc, [r8], #-53 449 450// ERROR-NOSEC: invalid operand for instruction 451// ERROR-NOMVE: invalid operand for instruction 452// ERROR-NOVFP: invalid operand for instruction 453// ERROR: invalid operand for instruction 454vldr fpscr_nzcvqc, [r8], #2 455 456// ERROR-NOSEC: invalid operand for instruction 457// ERROR-NOMVE: invalid operand for instruction 458// ERROR-NOVFP: invalid operand for instruction 459// ERROR: invalid operand for instruction 460vldr fpscr_nzcvqc, [pc], #-52 461 462