1 # RUN: llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -mattr=+mve.fp,+fp64 -show-encoding %s 2> %t | FileCheck %s
2 # RUN: FileCheck --check-prefix=ERROR < %t %s
3 # RUN: not llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -show-encoding %s &> %t
4 # RUN: FileCheck --check-prefix=CHECK-NOMVE < %t %s
6 # CHECK: vbic q0, q1, q7 @ encoding: [0x12,0xef,0x5e,0x01]
7 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
10 # CHECK: vrev64.8 q0, q4 @ encoding: [0xb0,0xff,0x48,0x00]
11 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
14 # CHECK: vrev64.16 q1, q3 @ encoding: [0xb4,0xff,0x46,0x20]
15 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
18 # CHECK: vrev64.32 q0, q2 @ encoding: [0xb8,0xff,0x44,0x00]
19 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
22 # CHECK: vrev32.8 q0, q1 @ encoding: [0xb0,0xff,0xc2,0x00]
23 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
26 # CHECK: vrev32.16 q0, q5 @ encoding: [0xb4,0xff,0xca,0x00]
27 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
30 # CHECK: vrev16.8 q0, q2 @ encoding: [0xb0,0xff,0x44,0x01]
31 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
34 # CHECK: vmvn q0, q2 @ encoding: [0xb0,0xff,0xc4,0x05]
35 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
38 # CHECK: veor q2, q1, q7 @ encoding: [0x02,0xff,0x5e,0x41]
39 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
42 # CHECK: vorn q0, q3, q2 @ encoding: [0x36,0xef,0x54,0x01]
43 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
46 # CHECK: vorr q1, q2, q1 @ encoding: [0x24,0xef,0x52,0x21]
47 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
50 # CHECK: vand q0, q2, q0 @ encoding: [0x04,0xef,0x50,0x01]
51 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
54 # CHECK: vorr.i16 q0, #0x12 @ encoding: [0x81,0xef,0x52,0x09]
55 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
58 # CHECK: vorr.i32 q0, #0x1200 @ encoding: [0x81,0xef,0x52,0x03]
59 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
62 # CHECK: vbic.i32 q0, #0x35 @ encoding: [0x83,0xef,0x75,0x01]
65 # CHECK: vbic.i32 q0, #0x3500 @ encoding: [0x83,0xef,0x75,0x03]
68 # CHECK: vbic.i32 q0, #0x350000 @ encoding: [0x83,0xef,0x75,0x05]
71 # CHECK: vbic.i32 q0, #0x35000000 @ encoding: [0x83,0xef,0x75,0x07]
74 # CHECK: vbic.i16 q0, #0x35 @ encoding: [0x83,0xef,0x75,0x09]
77 # CHECK: vbic.i16 q0, #0x3500 @ encoding: [0x83,0xef,0x75,0x0b]
80 # CHECK: vmov.8 q0[1], r8 @ encoding: [0x40,0xee,0x30,0x8b]
81 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
84 # CHECK: vmov.16 q0[2], r5 @ encoding: [0x20,0xee,0x30,0x5b]
85 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
88 # CHECK: vmov.32 q6[3], r11 @ encoding: [0x2d,0xee,0x10,0xbb]
89 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
92 # CHECK: vmov.32 r0, q1[0] @ encoding: [0x12,0xee,0x10,0x0b]
93 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
96 # CHECK: vmov.s16 r1, q2[7] @ encoding: [0x35,0xee,0x70,0x1b]
97 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
100 # CHECK: vmov.s8 r0, q4[13] @ encoding: [0x79,0xee,0x30,0x0b]
101 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
102 [0x79,0xee,0x30,0x0b]
104 # CHECK: vmov.u16 r0, q1[4] @ encoding: [0x93,0xee,0x30,0x0b]
105 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
106 [0x93,0xee,0x30,0x0b]
108 # CHECK: vmov.u8 r0, q5[7] @ encoding: [0xfa,0xee,0x70,0x0b]
109 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
110 [0xfa,0xee,0x70,0x0b]
112 # CHECK: vmov.f16 s7, r8 @ encoding: [0x03,0xee,0x90,0x89]
113 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
114 [0x03,0xee,0x90,0x89]
116 # CHECK: vmov.f16 s10, r5 @ encoding: [0x05,0xee,0x10,0x59]
117 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
118 [0x05,0xee,0x10,0x59]
120 # CHECK: vmov.f16 s10, sp @ encoding: [0x05,0xee,0x10,0xd9]
121 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
122 [0x05,0xee,0x10,0xd9]
124 # CHECK: vmov.f16 s31, r10 @ encoding: [0x0f,0xee,0x90,0xa9]
125 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
126 [0x0f,0xee,0x90,0xa9]
128 # CHECK: vmov.f16 r8, s7 @ encoding: [0x13,0xee,0x90,0x89]
129 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
130 [0x13,0xee,0x90,0x89]
132 # CHECK: vmov.f16 r5, s10 @ encoding: [0x15,0xee,0x10,0x59]
133 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
134 [0x15,0xee,0x10,0x59]
136 # CHECK: vmov.f16 sp, s10 @ encoding: [0x15,0xee,0x10,0xd9]
137 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
138 [0x15,0xee,0x10,0xd9]
140 # CHECK: vmov.f16 r10, s31 @ encoding: [0x1f,0xee,0x90,0xa9]
141 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
142 [0x1f,0xee,0x90,0xa9]
144 # ERROR: [[@LINE+2]]:2: warning: potentially undefined instruction encoding
145 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
146 [0x05,0xee,0x10,0xf9]
148 # ERROR: [[@LINE+2]]:2: warning: potentially undefined instruction encoding
149 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
150 [0x1f,0xee,0x90,0xf9]