80 lines · plain
1# RUN: not llvm-mc -disassemble -triple=thumbv8m.main -mattr=+fp-armv8 -mattr=+cdecp0 -mattr=+cdecp1 < %s 2>%t | FileCheck %s2# RUN: FileCheck <%t --check-prefixes=ERROR,ERROR-FP %s3# RUN: not llvm-mc -disassemble -triple=thumbv8.1m.main -mattr=+mve -mattr=+cdecp0 -mattr=+cdecp1 < %s 2>%t | FileCheck --check-prefixes=CHECK,CHECK-MVE %s4# RUN: FileCheck <%t --check-prefixes=ERROR,ERROR-MVE %s5 6# GCP instructions7 8# CHECK: mrc p3, #1, r3, c15, c15, #59[0x3f,0xee,0xbf,0x33]10# CHECK-NEXT: mcr2 p3, #2, r2, c7, c11, #711[0x47,0xfe,0xfb,0x23]12 13# VCX114 15# CHECK: vcx1 p0, s11, #123416[0x69,0xec,0x92,0x50]17# CHECK-NEXT: vcx1a p1, s7, #204718[0x6f,0xfc,0xbf,0x31]19# CHECK-NEXT: vcx1 p0, d0, #020[0x20,0xed,0x00,0x00]21# CHECK-NEXT: vcx1a p1, d3, #204722[0x2f,0xfd,0xbf,0x31]23# CHECK-MVE-NEXT: vcx1 p0, q1, #123424# ERROR-FP: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding25[0x29,0xec,0xd2,0x20]26# CHECK-MVE-NEXT: vcx1a p1, q5, #409527# ERROR-FP: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding28[0x2f,0xfd,0xff,0xa1]29 30# Vector variant, Vd<0> == 131# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding32[0x29,0xec,0xd2,0x30]33 34# VCX235 36# CHECK: vcx2 p0, s0, s31, #1237[0x33,0xec,0x2f,0x00]38# CHECK-NEXT: vcx2a p0, s1, s1, #6339[0x7f,0xfc,0xb0,0x00]40# CHECK-NEXT: vcx2 p0, d0, d15, #041[0x30,0xed,0x0f,0x00]42# CHECK-NEXT: vcx2a p0, d1, d11, #6343[0x3f,0xfd,0x9b,0x10]44# CHECK-MVE-NEXT: vcx2 p1, q0, q6, #12345# ERROR-FP: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding46[0x3e,0xed,0xdc,0x01]47# CHECK-MVE-NEXT: vcx2a p1, q3, q7, #12748# ERROR-FP: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding49[0x3f,0xfd,0xde,0x61]50 51# VCX2 Vector variant, Vm<0> == 152# ERROR-MVE: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding53[0x3e,0xed,0xff,0x01]54 55# vcx2 p1, q0, q15, #12356# CHECK-MVE: vcx2 p1, q0, q7, #12357# ERROR-MVE: [[@LINE+1]]:{{[0-9]+}}: warning: potentially undefined instruction encoding58[0x3e,0xed,0xfe,0x01]59 60# VCX361 62# CHECK: vcx3 p0, s0, s31, s0, #163[0x8f,0xec,0x90,0x00]64# CHECK-NEXT: vcx3a p1, s1, s17, s11, #765[0xf8,0xfc,0xb5,0x01]66# CHECK-NEXT: vcx3 p0, d0, d15, d7, #067[0x8f,0xed,0x07,0x00]68# CHECK-NEXT: vcx3a p1, d1, d11, d11, #769[0xbb,0xfd,0x1b,0x11]70# CHECK-MVE-NEXT: vcx3 p0, q0, q2, q0, #1271# ERROR-FP: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding72[0xa4,0xed,0x40,0x00]73# CHECK-MVE-NEXT: vcx3a p1, q3, q7, q6, #1574# ERROR-FP: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding75[0xbe,0xfd,0x5c,0x61]76 77# Vector variant, Vn<0> == 178# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding79[0xbf,0xfd,0x7e,0x61]80