591274ce55d6c3f908e05a54116dc7d276f4ff1f
[oota-llvm.git] / test / MC / AsmParser / X86 / x86_64-encoding.s
1 // RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
2
3 // CHECK: crc32b        %bl, %eax
4 // CHECK:  encoding: [0xf2,0x0f,0x38,0xf0,0xc3]
5         crc32b  %bl, %eax
6
7 // CHECK: crc32b        4(%rbx), %eax
8 // CHECK:  encoding: [0xf2,0x0f,0x38,0xf0,0x43,0x04]
9         crc32b  4(%rbx), %eax
10
11 // CHECK: crc32w        %bx, %eax
12 // CHECK:  encoding: [0x66,0xf2,0x0f,0x38,0xf1,0xc3]
13         crc32w  %bx, %eax
14
15 // CHECK: crc32w        4(%rbx), %eax
16 // CHECK:  encoding: [0x66,0xf2,0x0f,0x38,0xf1,0x43,0x04]
17         crc32w  4(%rbx), %eax
18
19 // CHECK: crc32l        %ebx, %eax
20 // CHECK:  encoding: [0xf2,0x0f,0x38,0xf1,0xc3]
21         crc32l  %ebx, %eax
22
23 // CHECK: crc32l        4(%rbx), %eax
24 // CHECK:  encoding: [0xf2,0x0f,0x38,0xf1,0x43,0x04]
25         crc32l  4(%rbx), %eax
26
27 // CHECK: crc32l        3735928559(%rbx,%rcx,8), %ecx
28 // CHECK:  encoding: [0xf2,0x0f,0x38,0xf1,0x8c,0xcb,0xef,0xbe,0xad,0xde]
29                 crc32l   0xdeadbeef(%rbx,%rcx,8),%ecx
30
31 // CHECK: crc32l        69, %ecx
32 // CHECK:  encoding: [0xf2,0x0f,0x38,0xf1,0x0c,0x25,0x45,0x00,0x00,0x00]
33                 crc32l   0x45,%ecx
34
35 // CHECK: crc32l        32493, %ecx
36 // CHECK:  encoding: [0xf2,0x0f,0x38,0xf1,0x0c,0x25,0xed,0x7e,0x00,0x00]
37                 crc32l   0x7eed,%ecx
38
39 // CHECK: crc32l        3133065982, %ecx
40 // CHECK:  encoding: [0xf2,0x0f,0x38,0xf1,0x0c,0x25,0xfe,0xca,0xbe,0xba]
41                 crc32l   0xbabecafe,%ecx
42
43 // CHECK: crc32l        %ecx, %ecx
44 // CHECK:  encoding: [0xf2,0x0f,0x38,0xf1,0xc9]
45                 crc32l   %ecx,%ecx
46
47 // CHECK: crc32b        %r11b, %eax
48 // CHECK:  encoding: [0xf2,0x41,0x0f,0x38,0xf0,0xc3]
49         crc32b  %r11b, %eax
50
51 // CHECK: crc32b        4(%rbx), %eax
52 // CHECK:  encoding: [0xf2,0x0f,0x38,0xf0,0x43,0x04]
53         crc32b  4(%rbx), %eax
54
55 // CHECK: crc32b        %dil, %rax
56 // CHECK:  encoding: [0xf2,0x48,0x0f,0x38,0xf0,0xc7]
57         crc32b  %dil,%rax
58
59 // CHECK: crc32b        %r11b, %rax
60 // CHECK:  encoding: [0xf2,0x49,0x0f,0x38,0xf0,0xc3]
61         crc32b  %r11b,%rax
62
63 // CHECK: crc32b        4(%rbx), %rax
64 // CHECK:  encoding: [0xf2,0x48,0x0f,0x38,0xf0,0x43,0x04]
65         crc32b  4(%rbx), %rax
66
67 // CHECK: crc32q        %rbx, %rax
68 // CHECK:  encoding: [0xf2,0x48,0x0f,0x38,0xf1,0xc3]
69         crc32q  %rbx, %rax
70
71 // CHECK: crc32q        4(%rbx), %rax
72 // CHECK:  encoding: [0xf2,0x48,0x0f,0x38,0xf1,0x43,0x04]
73         crc32q  4(%rbx), %rax
74
75 // CHECK: movd %r8, %mm1
76 // CHECK:  encoding: [0x49,0x0f,0x6e,0xc8]
77 movd %r8, %mm1
78
79 // CHECK: movd %r8d, %mm1
80 // CHECK:  encoding: [0x41,0x0f,0x6e,0xc8]
81 movd %r8d, %mm1
82
83 // CHECK: movd %rdx, %mm1
84 // CHECK:  encoding: [0x48,0x0f,0x6e,0xca]
85 movd %rdx, %mm1
86
87 // CHECK: movd %edx, %mm1
88 // CHECK:  encoding: [0x0f,0x6e,0xca]
89 movd %edx, %mm1
90
91 // CHECK: movd %mm1, %r8
92 // CHECK:  encoding: [0x49,0x0f,0x7e,0xc8]
93 movd %mm1, %r8
94
95 // CHECK: movd %mm1, %r8d
96 // CHECK:  encoding: [0x41,0x0f,0x7e,0xc8]
97 movd %mm1, %r8d
98
99 // CHECK: movd %mm1, %rdx
100 // CHECK:  encoding: [0x48,0x0f,0x7e,0xca]
101 movd %mm1, %rdx
102
103 // CHECK: movd %mm1, %edx
104 // CHECK:  encoding: [0x0f,0x7e,0xca]
105 movd %mm1, %edx
106
107 // CHECK: vaddss  %xmm8, %xmm9, %xmm10
108 // CHECK:  encoding: [0xc4,0x41,0x32,0x58,0xd0]
109 vaddss  %xmm8, %xmm9, %xmm10
110
111 // CHECK: vmulss  %xmm8, %xmm9, %xmm10
112 // CHECK:  encoding: [0xc4,0x41,0x32,0x59,0xd0]
113 vmulss  %xmm8, %xmm9, %xmm10
114
115 // CHECK: vsubss  %xmm8, %xmm9, %xmm10
116 // CHECK:  encoding: [0xc4,0x41,0x32,0x5c,0xd0]
117 vsubss  %xmm8, %xmm9, %xmm10
118
119 // CHECK: vdivss  %xmm8, %xmm9, %xmm10
120 // CHECK:  encoding: [0xc4,0x41,0x32,0x5e,0xd0]
121 vdivss  %xmm8, %xmm9, %xmm10
122
123 // CHECK: vaddsd  %xmm8, %xmm9, %xmm10
124 // CHECK:  encoding: [0xc4,0x41,0x33,0x58,0xd0]
125 vaddsd  %xmm8, %xmm9, %xmm10
126
127 // CHECK: vmulsd  %xmm8, %xmm9, %xmm10
128 // CHECK:  encoding: [0xc4,0x41,0x33,0x59,0xd0]
129 vmulsd  %xmm8, %xmm9, %xmm10
130
131 // CHECK: vsubsd  %xmm8, %xmm9, %xmm10
132 // CHECK:  encoding: [0xc4,0x41,0x33,0x5c,0xd0]
133 vsubsd  %xmm8, %xmm9, %xmm10
134
135 // CHECK: vdivsd  %xmm8, %xmm9, %xmm10
136 // CHECK:  encoding: [0xc4,0x41,0x33,0x5e,0xd0]
137 vdivsd  %xmm8, %xmm9, %xmm10
138
139 // CHECK:   vaddss  -4(%rcx,%rbx,8), %xmm10, %xmm11
140 // CHECK:   encoding: [0xc5,0x2a,0x58,0x5c,0xd9,0xfc]
141 vaddss  -4(%rcx,%rbx,8), %xmm10, %xmm11
142
143 // CHECK:   vsubss  -4(%rcx,%rbx,8), %xmm10, %xmm11
144 // CHECK:   encoding: [0xc5,0x2a,0x5c,0x5c,0xd9,0xfc]
145 vsubss  -4(%rcx,%rbx,8), %xmm10, %xmm11
146
147 // CHECK:   vmulss  -4(%rcx,%rbx,8), %xmm10, %xmm11
148 // CHECK:   encoding: [0xc5,0x2a,0x59,0x5c,0xd9,0xfc]
149 vmulss  -4(%rcx,%rbx,8), %xmm10, %xmm11
150
151 // CHECK:   vdivss  -4(%rcx,%rbx,8), %xmm10, %xmm11
152 // CHECK:   encoding: [0xc5,0x2a,0x5e,0x5c,0xd9,0xfc]
153 vdivss  -4(%rcx,%rbx,8), %xmm10, %xmm11
154
155 // CHECK:   vaddsd  -4(%rcx,%rbx,8), %xmm10, %xmm11
156 // CHECK:   encoding: [0xc5,0x2b,0x58,0x5c,0xd9,0xfc]
157 vaddsd  -4(%rcx,%rbx,8), %xmm10, %xmm11
158
159 // CHECK:   vsubsd  -4(%rcx,%rbx,8), %xmm10, %xmm11
160 // CHECK:   encoding: [0xc5,0x2b,0x5c,0x5c,0xd9,0xfc]
161 vsubsd  -4(%rcx,%rbx,8), %xmm10, %xmm11
162
163 // CHECK:   vmulsd  -4(%rcx,%rbx,8), %xmm10, %xmm11
164 // CHECK:   encoding: [0xc5,0x2b,0x59,0x5c,0xd9,0xfc]
165 vmulsd  -4(%rcx,%rbx,8), %xmm10, %xmm11
166
167 // CHECK:   vdivsd  -4(%rcx,%rbx,8), %xmm10, %xmm11
168 // CHECK:   encoding: [0xc5,0x2b,0x5e,0x5c,0xd9,0xfc]
169 vdivsd  -4(%rcx,%rbx,8), %xmm10, %xmm11
170
171 // CHECK: vaddps  %xmm10, %xmm11, %xmm15
172 // CHECK: encoding: [0xc4,0x41,0x20,0x58,0xfa]
173 vaddps  %xmm10, %xmm11, %xmm15
174
175 // CHECK: vsubps  %xmm10, %xmm11, %xmm15
176 // CHECK: encoding: [0xc4,0x41,0x20,0x5c,0xfa]
177 vsubps  %xmm10, %xmm11, %xmm15
178
179 // CHECK: vmulps  %xmm10, %xmm11, %xmm15
180 // CHECK: encoding: [0xc4,0x41,0x20,0x59,0xfa]
181 vmulps  %xmm10, %xmm11, %xmm15
182
183 // CHECK: vdivps  %xmm10, %xmm11, %xmm15
184 // CHECK: encoding: [0xc4,0x41,0x20,0x5e,0xfa]
185 vdivps  %xmm10, %xmm11, %xmm15
186
187 // CHECK: vaddpd  %xmm10, %xmm11, %xmm15
188 // CHECK: encoding: [0xc4,0x41,0x21,0x58,0xfa]
189 vaddpd  %xmm10, %xmm11, %xmm15
190
191 // CHECK: vsubpd  %xmm10, %xmm11, %xmm15
192 // CHECK: encoding: [0xc4,0x41,0x21,0x5c,0xfa]
193 vsubpd  %xmm10, %xmm11, %xmm15
194
195 // CHECK: vmulpd  %xmm10, %xmm11, %xmm15
196 // CHECK: encoding: [0xc4,0x41,0x21,0x59,0xfa]
197 vmulpd  %xmm10, %xmm11, %xmm15
198
199 // CHECK: vdivpd  %xmm10, %xmm11, %xmm15
200 // CHECK: encoding: [0xc4,0x41,0x21,0x5e,0xfa]
201 vdivpd  %xmm10, %xmm11, %xmm15
202
203 // CHECK: vaddps  -4(%rcx,%rbx,8), %xmm10, %xmm11
204 // CHECK: encoding: [0xc5,0x28,0x58,0x5c,0xd9,0xfc]
205 vaddps  -4(%rcx,%rbx,8), %xmm10, %xmm11
206
207 // CHECK: vsubps  -4(%rcx,%rbx,8), %xmm10, %xmm11
208 // CHECK: encoding: [0xc5,0x28,0x5c,0x5c,0xd9,0xfc]
209 vsubps  -4(%rcx,%rbx,8), %xmm10, %xmm11
210
211 // CHECK: vmulps  -4(%rcx,%rbx,8), %xmm10, %xmm11
212 // CHECK: encoding: [0xc5,0x28,0x59,0x5c,0xd9,0xfc]
213 vmulps  -4(%rcx,%rbx,8), %xmm10, %xmm11
214
215 // CHECK: vdivps  -4(%rcx,%rbx,8), %xmm10, %xmm11
216 // CHECK: encoding: [0xc5,0x28,0x5e,0x5c,0xd9,0xfc]
217 vdivps  -4(%rcx,%rbx,8), %xmm10, %xmm11
218
219 // CHECK: vaddpd  -4(%rcx,%rbx,8), %xmm10, %xmm11
220 // CHECK: encoding: [0xc5,0x29,0x58,0x5c,0xd9,0xfc]
221 vaddpd  -4(%rcx,%rbx,8), %xmm10, %xmm11
222
223 // CHECK: vsubpd  -4(%rcx,%rbx,8), %xmm10, %xmm11
224 // CHECK: encoding: [0xc5,0x29,0x5c,0x5c,0xd9,0xfc]
225 vsubpd  -4(%rcx,%rbx,8), %xmm10, %xmm11
226
227 // CHECK: vmulpd  -4(%rcx,%rbx,8), %xmm10, %xmm11
228 // CHECK: encoding: [0xc5,0x29,0x59,0x5c,0xd9,0xfc]
229 vmulpd  -4(%rcx,%rbx,8), %xmm10, %xmm11
230
231 // CHECK: vdivpd  -4(%rcx,%rbx,8), %xmm10, %xmm11
232 // CHECK: encoding: [0xc5,0x29,0x5e,0x5c,0xd9,0xfc]
233 vdivpd  -4(%rcx,%rbx,8), %xmm10, %xmm11
234
235 // CHECK: vmaxss  %xmm10, %xmm14, %xmm12
236 // CHECK: encoding: [0xc4,0x41,0x0a,0x5f,0xe2]
237           vmaxss  %xmm10, %xmm14, %xmm12
238
239 // CHECK: vmaxsd  %xmm10, %xmm14, %xmm12
240 // CHECK: encoding: [0xc4,0x41,0x0b,0x5f,0xe2]
241           vmaxsd  %xmm10, %xmm14, %xmm12
242
243 // CHECK: vminss  %xmm10, %xmm14, %xmm12
244 // CHECK: encoding: [0xc4,0x41,0x0a,0x5d,0xe2]
245           vminss  %xmm10, %xmm14, %xmm12
246
247 // CHECK: vminsd  %xmm10, %xmm14, %xmm12
248 // CHECK: encoding: [0xc4,0x41,0x0b,0x5d,0xe2]
249           vminsd  %xmm10, %xmm14, %xmm12
250
251 // CHECK: vmaxss  -4(%rbx,%rcx,8), %xmm12, %xmm10
252 // CHECK: encoding: [0xc5,0x1a,0x5f,0x54,0xcb,0xfc]
253           vmaxss  -4(%rbx,%rcx,8), %xmm12, %xmm10
254
255 // CHECK: vmaxsd  -4(%rbx,%rcx,8), %xmm12, %xmm10
256 // CHECK: encoding: [0xc5,0x1b,0x5f,0x54,0xcb,0xfc]
257           vmaxsd  -4(%rbx,%rcx,8), %xmm12, %xmm10
258
259 // CHECK: vminss  -4(%rbx,%rcx,8), %xmm12, %xmm10
260 // CHECK: encoding: [0xc5,0x1a,0x5d,0x54,0xcb,0xfc]
261           vminss  -4(%rbx,%rcx,8), %xmm12, %xmm10
262
263 // CHECK: vminsd  -4(%rbx,%rcx,8), %xmm12, %xmm10
264 // CHECK: encoding: [0xc5,0x1b,0x5d,0x54,0xcb,0xfc]
265           vminsd  -4(%rbx,%rcx,8), %xmm12, %xmm10
266