# RUN: not llvm-mc -disassemble -triple=thumbv8m.main -mattr=+fp-armv8 -mattr=+cdecp0 -mattr=+cdecp1 < %s 2>%t | FileCheck %s # RUN: FileCheck <%t --check-prefixes=ERROR,ERROR-FP %s # RUN: not llvm-mc -disassemble -triple=thumbv8.1m.main -mattr=+mve -mattr=+cdecp0 -mattr=+cdecp1 < %s 2>%t | FileCheck --check-prefixes=CHECK,CHECK-MVE %s # RUN: FileCheck <%t --check-prefixes=ERROR,ERROR-MVE %s # GCP instructions # CHECK: mrc p3, #1, r3, c15, c15, #5 [0x3f,0xee,0xbf,0x33] # CHECK-NEXT: mcr2 p3, #2, r2, c7, c11, #7 [0x47,0xfe,0xfb,0x23] # VCX1 # CHECK: vcx1 p0, s11, #1234 [0x69,0xec,0x92,0x50] # CHECK-NEXT: vcx1a p1, s7, #2047 [0x6f,0xfc,0xbf,0x31] # CHECK-NEXT: vcx1 p0, d0, #0 [0x20,0xed,0x00,0x00] # CHECK-NEXT: vcx1a p1, d3, #2047 [0x2f,0xfd,0xbf,0x31] # CHECK-MVE-NEXT: vcx1 p0, q1, #1234 # ERROR-FP: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding [0x29,0xec,0xd2,0x20] # CHECK-MVE-NEXT: vcx1a p1, q5, #4095 # ERROR-FP: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding [0x2f,0xfd,0xff,0xa1] # Vector variant, Vd<0> == 1 # ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding [0x29,0xec,0xd2,0x30] # VCX2 # CHECK: vcx2 p0, s0, s31, #12 [0x33,0xec,0x2f,0x00] # CHECK-NEXT: vcx2a p0, s1, s1, #63 [0x7f,0xfc,0xb0,0x00] # CHECK-NEXT: vcx2 p0, d0, d15, #0 [0x30,0xed,0x0f,0x00] # CHECK-NEXT: vcx2a p0, d1, d11, #63 [0x3f,0xfd,0x9b,0x10] # CHECK-MVE-NEXT: vcx2 p1, q0, q6, #123 # ERROR-FP: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding [0x3e,0xed,0xdc,0x01] # CHECK-MVE-NEXT: vcx2a p1, q3, q7, #127 # ERROR-FP: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding [0x3f,0xfd,0xde,0x61] # VCX2 Vector variant, Vm<0> == 1 # ERROR-MVE: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding [0x3e,0xed,0xff,0x01] # vcx2 p1, q0, q15, #123 # CHECK-MVE: vcx2 p1, q0, q7, #123 # ERROR-MVE: [[@LINE+1]]:{{[0-9]+}}: warning: potentially undefined instruction encoding [0x3e,0xed,0xfe,0x01] # VCX3 # CHECK: vcx3 p0, s0, s31, s0, #1 [0x8f,0xec,0x90,0x00] # CHECK-NEXT: vcx3a p1, s1, s17, s11, #7 [0xf8,0xfc,0xb5,0x01] # CHECK-NEXT: vcx3 p0, d0, d15, d7, #0 [0x8f,0xed,0x07,0x00] # CHECK-NEXT: vcx3a p1, d1, d11, d11, #7 [0xbb,0xfd,0x1b,0x11] # CHECK-MVE-NEXT: vcx3 p0, q0, q2, q0, #12 # ERROR-FP: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding [0xa4,0xed,0x40,0x00] # CHECK-MVE-NEXT: vcx3a p1, q3, q7, q6, #15 # ERROR-FP: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding [0xbe,0xfd,0x5c,0x61] # Vector variant, Vn<0> == 1 # ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding [0xbf,0xfd,0x7e,0x61]