• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
5
6# CHECK: vbic q0, q1, q7  @ encoding: [0x12,0xef,0x5e,0x01]
7# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
8[0x12,0xef,0x5e,0x01]
9
10# CHECK: vrev64.8 q0, q4  @ encoding: [0xb0,0xff,0x48,0x00]
11# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
12[0xb0,0xff,0x48,0x00]
13
14# CHECK: vrev64.16 q1, q3  @ encoding: [0xb4,0xff,0x46,0x20]
15# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
16[0xb4,0xff,0x46,0x20]
17
18# CHECK: vrev64.32 q0, q2  @ encoding: [0xb8,0xff,0x44,0x00]
19# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
20[0xb8,0xff,0x44,0x00]
21
22# CHECK: vrev32.8 q0, q1  @ encoding: [0xb0,0xff,0xc2,0x00]
23# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
24[0xb0,0xff,0xc2,0x00]
25
26# CHECK: vrev32.16 q0, q5  @ encoding: [0xb4,0xff,0xca,0x00]
27# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
28[0xb4,0xff,0xca,0x00]
29
30# CHECK: vrev16.8 q0, q2  @ encoding: [0xb0,0xff,0x44,0x01]
31# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
32[0xb0,0xff,0x44,0x01]
33
34# CHECK: vmvn q0, q2  @ encoding: [0xb0,0xff,0xc4,0x05]
35# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
36[0xb0,0xff,0xc4,0x05]
37
38# CHECK: veor q2, q1, q7  @ encoding: [0x02,0xff,0x5e,0x41]
39# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
40[0x02,0xff,0x5e,0x41]
41
42# CHECK: vorn q0, q3, q2  @ encoding: [0x36,0xef,0x54,0x01]
43# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
44[0x36,0xef,0x54,0x01]
45
46# CHECK: vorr q1, q2, q1  @ encoding: [0x24,0xef,0x52,0x21]
47# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
48[0x24,0xef,0x52,0x21]
49
50# CHECK: vand q0, q2, q0  @ encoding: [0x04,0xef,0x50,0x01]
51# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
52[0x04,0xef,0x50,0x01]
53
54# CHECK: vorr.i16 q0, #0x12  @ encoding: [0x81,0xef,0x52,0x09]
55# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
56[0x81,0xef,0x52,0x09]
57
58# CHECK: vorr.i32 q0, #0x1200  @ encoding: [0x81,0xef,0x52,0x03]
59# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
60[0x81,0xef,0x52,0x03]
61
62# CHECK: vbic.i32 q0, #0x35 @ encoding: [0x83,0xef,0x75,0x01]
63[0x83,0xef,0x75,0x01]
64
65# CHECK: vbic.i32 q0, #0x3500 @ encoding: [0x83,0xef,0x75,0x03]
66[0x83,0xef,0x75,0x03]
67
68# CHECK: vbic.i32 q0, #0x350000 @ encoding: [0x83,0xef,0x75,0x05]
69[0x83,0xef,0x75,0x05]
70
71# CHECK: vbic.i32 q0, #0x35000000 @ encoding: [0x83,0xef,0x75,0x07]
72[0x83,0xef,0x75,0x07]
73
74# CHECK: vbic.i16 q0, #0x35 @ encoding: [0x83,0xef,0x75,0x09]
75[0x83,0xef,0x75,0x09]
76
77# CHECK: vbic.i16 q0, #0x3500 @ encoding: [0x83,0xef,0x75,0x0b]
78[0x83,0xef,0x75,0x0b]
79
80# CHECK: vmov.8 q0[1], r8  @ encoding: [0x40,0xee,0x30,0x8b]
81# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
82[0x40,0xee,0x30,0x8b]
83
84# CHECK: vmov.16 q0[2], r5  @ encoding: [0x20,0xee,0x30,0x5b]
85# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
86[0x20,0xee,0x30,0x5b]
87
88# CHECK: vmov.32 q6[3], r11  @ encoding: [0x2d,0xee,0x10,0xbb]
89# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
90[0x2d,0xee,0x10,0xbb]
91
92# CHECK: vmov.32 r0, q1[0]  @ encoding: [0x12,0xee,0x10,0x0b]
93# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
94[0x12,0xee,0x10,0x0b]
95
96# CHECK: vmov.s16 r1, q2[7]  @ encoding: [0x35,0xee,0x70,0x1b]
97# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
98[0x35,0xee,0x70,0x1b]
99
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]
103
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]
107
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]
111
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]
115
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]
119
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]
123
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]
127
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]
131
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]
135
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]
139
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]
143
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]
147
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]
151