1 # RUN: llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -mattr=+mve.fp,+fp64 -show-encoding %s | FileCheck %s
2 # RUN: not llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -show-encoding %s &> %t
3 # RUN: FileCheck --check-prefix=CHECK-NOMVE < %t %s
5 # CHECK: vcmp.f16 eq, q0, q4 @ encoding: [0x31,0xfe,0x08,0x0f]
6 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
9 # CHECK: vcmp.f16 ne, q2, q7 @ encoding: [0x35,0xfe,0x8e,0x0f]
10 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
13 # CHECK: vcmp.f16 ge, q0, q0 @ encoding: [0x31,0xfe,0x00,0x1f]
14 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
17 # CHECK: vcmp.f16 lt, q0, q1 @ encoding: [0x31,0xfe,0x82,0x1f]
18 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
21 # CHECK: vcmp.f16 gt, q1, q4 @ encoding: [0x33,0xfe,0x09,0x1f]
22 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
25 # CHECK: vcmp.f16 le, q2, q6 @ encoding: [0x35,0xfe,0x8d,0x1f]
26 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
29 # CHECK: vcmp.f32 eq, q2, q5 @ encoding: [0x35,0xee,0x0a,0x0f]
30 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
33 # CHECK: vcmp.f32 ne, q3, q4 @ encoding: [0x37,0xee,0x88,0x0f]
34 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
37 # CHECK: vcmp.f32 ge, q0, q7 @ encoding: [0x31,0xee,0x0e,0x1f]
38 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
41 # CHECK: vcmp.f32 lt, q5, q2 @ encoding: [0x3b,0xee,0x84,0x1f]
42 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
45 # CHECK: vcmp.f32 gt, q2, q7 @ encoding: [0x35,0xee,0x0f,0x1f]
46 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
49 # CHECK: vcmp.f32 le, q2, q4 @ encoding: [0x35,0xee,0x89,0x1f]
50 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
53 # CHECK: vcmp.i8 eq, q4, q6 @ encoding: [0x09,0xfe,0x0c,0x0f]
54 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
57 # CHECK: vcmp.i8 ne, q2, q2 @ encoding: [0x05,0xfe,0x84,0x0f]
58 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
61 # CHECK: vcmp.s8 ge, q0, q0 @ encoding: [0x01,0xfe,0x00,0x1f]
62 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
65 # CHECK: vcmp.s8 lt, q2, q7 @ encoding: [0x05,0xfe,0x8e,0x1f]
66 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
69 # CHECK: vcmp.s8 gt, q4, q3 @ encoding: [0x09,0xfe,0x07,0x1f]
70 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
73 # CHECK: vcmp.s8 le, q7, q3 @ encoding: [0x0f,0xfe,0x87,0x1f]
74 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
77 # CHECK: vcmp.u8 hi, q1, q4 @ encoding: [0x03,0xfe,0x89,0x0f]
78 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
81 # CHECK: vcmp.u8 cs, q1, q4 @ encoding: [0x03,0xfe,0x09,0x0f]
82 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
85 # CHECK: vcmp.i16 eq, q4, q7 @ encoding: [0x19,0xfe,0x0e,0x0f]
86 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
89 # CHECK: vcmp.i16 ne, q2, q1 @ encoding: [0x15,0xfe,0x82,0x0f]
90 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
93 # CHECK: vcmp.s16 ge, q1, q7 @ encoding: [0x13,0xfe,0x0e,0x1f]
94 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
97 # CHECK: vcmp.s16 lt, q0, q1 @ encoding: [0x11,0xfe,0x82,0x1f]
98 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
101 # CHECK: vcmp.s16 gt, q1, q7 @ encoding: [0x13,0xfe,0x0f,0x1f]
102 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
103 [0x13,0xfe,0x0f,0x1f]
105 # CHECK: vcmp.s16 le, q2, q1 @ encoding: [0x15,0xfe,0x83,0x1f]
106 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
107 [0x15,0xfe,0x83,0x1f]
109 # CHECK: vcmp.u16 hi, q1, q4 @ encoding: [0x13,0xfe,0x89,0x0f]
110 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
111 [0x13,0xfe,0x89,0x0f]
113 # CHECK: vcmp.u16 cs, q1, q4 @ encoding: [0x13,0xfe,0x09,0x0f]
114 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
115 [0x13,0xfe,0x09,0x0f]
117 # CHECK: vcmp.i32 eq, q2, q7 @ encoding: [0x25,0xfe,0x0e,0x0f]
118 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
119 [0x25,0xfe,0x0e,0x0f]
121 # CHECK: vcmp.i32 ne, q2, q4 @ encoding: [0x25,0xfe,0x88,0x0f]
122 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
123 [0x25,0xfe,0x88,0x0f]
125 # CHECK: vcmp.s32 ge, q5, q5 @ encoding: [0x2b,0xfe,0x0a,0x1f]
126 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
127 [0x2b,0xfe,0x0a,0x1f]
129 # CHECK: vcmp.s32 lt, q2, q2 @ encoding: [0x25,0xfe,0x84,0x1f]
130 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
131 [0x25,0xfe,0x84,0x1f]
133 # CHECK: vcmp.s32 gt, q0, q1 @ encoding: [0x21,0xfe,0x03,0x1f]
134 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
135 [0x21,0xfe,0x03,0x1f]
137 # CHECK: vcmp.s32 le, q5, q4 @ encoding: [0x2b,0xfe,0x89,0x1f]
138 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
139 [0x2b,0xfe,0x89,0x1f]
141 # CHECK: vcmp.u32 hi, q1, q4 @ encoding: [0x23,0xfe,0x89,0x0f]
142 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
143 [0x23,0xfe,0x89,0x0f]
145 # CHECK: vcmp.u32 cs, q1, q4 @ encoding: [0x23,0xfe,0x09,0x0f]
146 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
147 [0x23,0xfe,0x09,0x0f]
149 # CHECK: vcmp.f16 gt, q4, zr @ encoding: [0x39,0xfe,0x6f,0x1f]
150 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
151 [0x39,0xfe,0x6f,0x1f]
153 # CHECK: vcmp.f16 eq, q4, r12 @ encoding: [0x39,0xfe,0x4c,0x0f]
154 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
155 [0x39,0xfe,0x4c,0x0f]
157 # CHECK: vcmp.f32 ne, q3, r0 @ encoding: [0x37,0xee,0xc0,0x0f]
158 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
159 [0x37,0xee,0xc0,0x0f]
161 # CHECK: vcmp.i8 eq, q1, r0 @ encoding: [0x03,0xfe,0x40,0x0f]
162 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
163 [0x03,0xfe,0x40,0x0f]
165 # CHECK: vcmp.s8 le, q1, r0 @ encoding: [0x03,0xfe,0xe0,0x1f]
166 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
167 [0x03,0xfe,0xe0,0x1f]
169 # CHECK: vcmp.u8 cs, q1, r0 @ encoding: [0x03,0xfe,0x60,0x0f]
170 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
171 [0x03,0xfe,0x60,0x0f]
173 # CHECK: vcmp.i16 eq, q5, r10 @ encoding: [0x1b,0xfe,0x4a,0x0f]
174 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
175 [0x1b,0xfe,0x4a,0x0f]
177 # CHECK: vcmp.i32 eq, q1, r4 @ encoding: [0x23,0xfe,0x44,0x0f]
178 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
179 [0x23,0xfe,0x44,0x0f]