| 1 | # Check 64bit instructions with encoding options |
| 2 | |
| 3 | .allow_index_reg |
| 4 | .text |
| 5 | _start: |
| 6 | |
| 7 | # Tests for op reg, reg |
| 8 | add %dl,%cl |
| 9 | add.s %dl,%cl |
| 10 | add %dx,%cx |
| 11 | add.s %dx,%cx |
| 12 | add %edx,%ecx |
| 13 | add.s %edx,%ecx |
| 14 | addb %dl,%cl |
| 15 | addb.s %dl,%cl |
| 16 | addw %dx,%cx |
| 17 | addw.s %dx,%cx |
| 18 | addl %edx,%ecx |
| 19 | addl.s %edx,%ecx |
| 20 | add %rdx,%rcx |
| 21 | add.s %rdx,%rcx |
| 22 | addq %rdx,%rcx |
| 23 | addq.s %rdx,%rcx |
| 24 | adc %dl,%cl |
| 25 | adc.s %dl,%cl |
| 26 | adc %dx,%cx |
| 27 | adc.s %dx,%cx |
| 28 | adc %edx,%ecx |
| 29 | adc.s %edx,%ecx |
| 30 | adcb %dl,%cl |
| 31 | adcb.s %dl,%cl |
| 32 | adcw %dx,%cx |
| 33 | adcw.s %dx,%cx |
| 34 | adcl %edx,%ecx |
| 35 | adcl.s %edx,%ecx |
| 36 | adc %rdx,%rcx |
| 37 | adc.s %rdx,%rcx |
| 38 | adcq %rdx,%rcx |
| 39 | adcq.s %rdx,%rcx |
| 40 | and %dl,%cl |
| 41 | and.s %dl,%cl |
| 42 | and %dx,%cx |
| 43 | and.s %dx,%cx |
| 44 | and %edx,%ecx |
| 45 | and.s %edx,%ecx |
| 46 | andb %dl,%cl |
| 47 | andb.s %dl,%cl |
| 48 | andw %dx,%cx |
| 49 | andw.s %dx,%cx |
| 50 | andl %edx,%ecx |
| 51 | andl.s %edx,%ecx |
| 52 | and %rdx,%rcx |
| 53 | and.s %rdx,%rcx |
| 54 | andq %rdx,%rcx |
| 55 | andq.s %rdx,%rcx |
| 56 | cmp %dl,%cl |
| 57 | cmp.s %dl,%cl |
| 58 | cmp %dx,%cx |
| 59 | cmp.s %dx,%cx |
| 60 | cmp %edx,%ecx |
| 61 | cmp.s %edx,%ecx |
| 62 | cmpb %dl,%cl |
| 63 | cmpb.s %dl,%cl |
| 64 | cmpw %dx,%cx |
| 65 | cmpw.s %dx,%cx |
| 66 | cmpl %edx,%ecx |
| 67 | cmpl.s %edx,%ecx |
| 68 | cmp %rdx,%rcx |
| 69 | cmp.s %rdx,%rcx |
| 70 | cmpq %rdx,%rcx |
| 71 | cmpq.s %rdx,%rcx |
| 72 | mov %dl,%cl |
| 73 | mov.s %dl,%cl |
| 74 | mov %dx,%cx |
| 75 | mov.s %dx,%cx |
| 76 | mov %edx,%ecx |
| 77 | mov.s %edx,%ecx |
| 78 | movb %dl,%cl |
| 79 | movb.s %dl,%cl |
| 80 | movw %dx,%cx |
| 81 | movw.s %dx,%cx |
| 82 | movl %edx,%ecx |
| 83 | movl.s %edx,%ecx |
| 84 | mov %rdx,%rcx |
| 85 | mov.s %rdx,%rcx |
| 86 | movq %rdx,%rcx |
| 87 | movq.s %rdx,%rcx |
| 88 | or %dl,%cl |
| 89 | or.s %dl,%cl |
| 90 | or %dx,%cx |
| 91 | or.s %dx,%cx |
| 92 | or %edx,%ecx |
| 93 | or.s %edx,%ecx |
| 94 | orb %dl,%cl |
| 95 | orb.s %dl,%cl |
| 96 | orw %dx,%cx |
| 97 | orw.s %dx,%cx |
| 98 | orl %edx,%ecx |
| 99 | orl.s %edx,%ecx |
| 100 | or %rdx,%rcx |
| 101 | or.s %rdx,%rcx |
| 102 | orq %rdx,%rcx |
| 103 | orq.s %rdx,%rcx |
| 104 | sbb %dl,%cl |
| 105 | sbb.s %dl,%cl |
| 106 | sbb %dx,%cx |
| 107 | sbb.s %dx,%cx |
| 108 | sbb %edx,%ecx |
| 109 | sbb.s %edx,%ecx |
| 110 | sbbb %dl,%cl |
| 111 | sbbb.s %dl,%cl |
| 112 | sbbw %dx,%cx |
| 113 | sbbw.s %dx,%cx |
| 114 | sbbl %edx,%ecx |
| 115 | sbbl.s %edx,%ecx |
| 116 | sbb %rdx,%rcx |
| 117 | sbb.s %rdx,%rcx |
| 118 | sbbq %rdx,%rcx |
| 119 | sbbq.s %rdx,%rcx |
| 120 | sub %dl,%cl |
| 121 | sub.s %dl,%cl |
| 122 | sub %dx,%cx |
| 123 | sub.s %dx,%cx |
| 124 | sub %edx,%ecx |
| 125 | sub.s %edx,%ecx |
| 126 | subb %dl,%cl |
| 127 | subb.s %dl,%cl |
| 128 | subw %dx,%cx |
| 129 | subw.s %dx,%cx |
| 130 | subl %edx,%ecx |
| 131 | subl.s %edx,%ecx |
| 132 | sub %rdx,%rcx |
| 133 | sub.s %rdx,%rcx |
| 134 | subq %rdx,%rcx |
| 135 | subq.s %rdx,%rcx |
| 136 | xor %dl,%cl |
| 137 | xor.s %dl,%cl |
| 138 | xor %dx,%cx |
| 139 | xor.s %dx,%cx |
| 140 | xor %edx,%ecx |
| 141 | xor.s %edx,%ecx |
| 142 | xorb %dl,%cl |
| 143 | xorb.s %dl,%cl |
| 144 | xorw %dx,%cx |
| 145 | xorw.s %dx,%cx |
| 146 | xorl %edx,%ecx |
| 147 | xorl.s %edx,%ecx |
| 148 | xor %rdx,%rcx |
| 149 | xor.s %rdx,%rcx |
| 150 | xorq %rdx,%rcx |
| 151 | xorq.s %rdx,%rcx |
| 152 | |
| 153 | # Tests for op ymm, ymm |
| 154 | vmovapd %ymm4,%ymm6 |
| 155 | vmovapd.s %ymm4,%ymm6 |
| 156 | vmovaps %ymm4,%ymm6 |
| 157 | vmovaps.s %ymm4,%ymm6 |
| 158 | vmovdqa %ymm4,%ymm6 |
| 159 | vmovdqa.s %ymm4,%ymm6 |
| 160 | vmovdqu %ymm4,%ymm6 |
| 161 | vmovdqu.s %ymm4,%ymm6 |
| 162 | vmovupd %ymm4,%ymm6 |
| 163 | vmovupd.s %ymm4,%ymm6 |
| 164 | vmovups %ymm4,%ymm6 |
| 165 | vmovups.s %ymm4,%ymm6 |
| 166 | |
| 167 | # Tests for op xmm, xmm |
| 168 | movapd %xmm4,%xmm6 |
| 169 | movapd.s %xmm4,%xmm6 |
| 170 | movaps %xmm4,%xmm6 |
| 171 | movaps.s %xmm4,%xmm6 |
| 172 | movdqa %xmm4,%xmm6 |
| 173 | movdqa.s %xmm4,%xmm6 |
| 174 | movdqu %xmm4,%xmm6 |
| 175 | movdqu.s %xmm4,%xmm6 |
| 176 | movq %xmm4,%xmm6 |
| 177 | movq.s %xmm4,%xmm6 |
| 178 | movsd %xmm4,%xmm6 |
| 179 | movsd.s %xmm4,%xmm6 |
| 180 | movss %xmm4,%xmm6 |
| 181 | movss.s %xmm4,%xmm6 |
| 182 | movupd %xmm4,%xmm6 |
| 183 | movupd.s %xmm4,%xmm6 |
| 184 | movups %xmm4,%xmm6 |
| 185 | movups.s %xmm4,%xmm6 |
| 186 | vmovapd %xmm4,%xmm6 |
| 187 | vmovapd.s %xmm4,%xmm6 |
| 188 | vmovaps %xmm4,%xmm6 |
| 189 | vmovaps.s %xmm4,%xmm6 |
| 190 | vmovdqa %xmm4,%xmm6 |
| 191 | vmovdqa.s %xmm4,%xmm6 |
| 192 | vmovdqu %xmm4,%xmm6 |
| 193 | vmovdqu.s %xmm4,%xmm6 |
| 194 | vmovq %xmm4,%xmm6 |
| 195 | vmovq.s %xmm4,%xmm6 |
| 196 | vmovupd %xmm4,%xmm6 |
| 197 | vmovupd.s %xmm4,%xmm6 |
| 198 | vmovups %xmm4,%xmm6 |
| 199 | vmovups.s %xmm4,%xmm6 |
| 200 | |
| 201 | # Tests for op xmm, xmm, xmm |
| 202 | vmovsd %xmm4,%xmm6,%xmm2 |
| 203 | vmovsd.s %xmm4,%xmm6,%xmm2 |
| 204 | vmovss %xmm4,%xmm6,%xmm2 |
| 205 | vmovss.s %xmm4,%xmm6,%xmm2 |
| 206 | |
| 207 | # Tests for op mm, mm |
| 208 | movq %mm0,%mm4 |
| 209 | movq.s %mm0,%mm4 |
| 210 | |
| 211 | .intel_syntax noprefix |
| 212 | |
| 213 | # Tests for op reg, reg |
| 214 | add cl,dl |
| 215 | add.s cl,dl |
| 216 | add cx,dx |
| 217 | add.s cx,dx |
| 218 | add ecx,edx |
| 219 | add.s ecx,edx |
| 220 | add rcx,rdx |
| 221 | add.s rcx,rdx |
| 222 | adc cl,dl |
| 223 | adc.s cl,dl |
| 224 | adc cx,dx |
| 225 | adc.s cx,dx |
| 226 | adc ecx,edx |
| 227 | adc.s ecx,edx |
| 228 | adc rcx,rdx |
| 229 | adc.s rcx,rdx |
| 230 | and cl,dl |
| 231 | and.s cl,dl |
| 232 | and cx,dx |
| 233 | and.s cx,dx |
| 234 | and ecx,edx |
| 235 | and.s ecx,edx |
| 236 | and rcx,rdx |
| 237 | and.s rcx,rdx |
| 238 | cmp cl,dl |
| 239 | cmp.s cl,dl |
| 240 | cmp cx,dx |
| 241 | cmp.s cx,dx |
| 242 | cmp ecx,edx |
| 243 | cmp.s ecx,edx |
| 244 | cmp rcx,rdx |
| 245 | cmp.s rcx,rdx |
| 246 | mov cl,dl |
| 247 | mov.s cl,dl |
| 248 | mov cx,dx |
| 249 | mov.s cx,dx |
| 250 | mov ecx,edx |
| 251 | mov.s ecx,edx |
| 252 | mov rcx,rdx |
| 253 | mov.s rcx,rdx |
| 254 | or cl,dl |
| 255 | or.s cl,dl |
| 256 | or cx,dx |
| 257 | or.s cx,dx |
| 258 | or ecx,edx |
| 259 | or.s ecx,edx |
| 260 | or rcx,rdx |
| 261 | or.s rcx,rdx |
| 262 | sbb cl,dl |
| 263 | sbb.s cl,dl |
| 264 | sbb cx,dx |
| 265 | sbb.s cx,dx |
| 266 | sbb ecx,edx |
| 267 | sbb.s ecx,edx |
| 268 | sbb rcx,rdx |
| 269 | sbb.s rcx,rdx |
| 270 | sub cl,dl |
| 271 | sub.s cl,dl |
| 272 | sub cx,dx |
| 273 | sub.s cx,dx |
| 274 | sub ecx,edx |
| 275 | sub.s ecx,edx |
| 276 | sub rcx,rdx |
| 277 | sub.s rcx,rdx |
| 278 | xor cl,dl |
| 279 | xor.s cl,dl |
| 280 | xor cx,dx |
| 281 | xor.s cx,dx |
| 282 | xor ecx,edx |
| 283 | xor.s ecx,edx |
| 284 | xor rcx,rdx |
| 285 | xor.s rcx,rdx |
| 286 | |
| 287 | # Tests for op ymm, ymm |
| 288 | vmovapd ymm6,ymm4 |
| 289 | vmovapd.s ymm6,ymm4 |
| 290 | vmovaps ymm6,ymm4 |
| 291 | vmovaps.s ymm6,ymm4 |
| 292 | vmovdqa ymm6,ymm4 |
| 293 | vmovdqa.s ymm6,ymm4 |
| 294 | vmovdqu ymm6,ymm4 |
| 295 | vmovdqu.s ymm6,ymm4 |
| 296 | vmovupd ymm6,ymm4 |
| 297 | vmovupd.s ymm6,ymm4 |
| 298 | vmovups ymm6,ymm4 |
| 299 | vmovups.s ymm6,ymm4 |
| 300 | |
| 301 | # Tests for op xmm, xmm |
| 302 | movapd xmm6,xmm4 |
| 303 | movapd.s xmm6,xmm4 |
| 304 | movaps xmm6,xmm4 |
| 305 | movaps.s xmm6,xmm4 |
| 306 | movdqa xmm6,xmm4 |
| 307 | movdqa.s xmm6,xmm4 |
| 308 | movdqu xmm6,xmm4 |
| 309 | movdqu.s xmm6,xmm4 |
| 310 | movq xmm6,xmm4 |
| 311 | movq.s xmm6,xmm4 |
| 312 | movsd xmm6,xmm4 |
| 313 | movsd.s xmm6,xmm4 |
| 314 | movss xmm6,xmm4 |
| 315 | movss.s xmm6,xmm4 |
| 316 | movupd xmm6,xmm4 |
| 317 | movupd.s xmm6,xmm4 |
| 318 | movups xmm6,xmm4 |
| 319 | movups.s xmm6,xmm4 |
| 320 | vmovapd xmm6,xmm4 |
| 321 | vmovapd.s xmm6,xmm4 |
| 322 | vmovaps xmm6,xmm4 |
| 323 | vmovaps.s xmm6,xmm4 |
| 324 | vmovdqa xmm6,xmm4 |
| 325 | vmovdqa.s xmm6,xmm4 |
| 326 | vmovdqu xmm6,xmm4 |
| 327 | vmovdqu.s xmm6,xmm4 |
| 328 | vmovq xmm6,xmm4 |
| 329 | vmovq.s xmm6,xmm4 |
| 330 | vmovupd xmm6,xmm4 |
| 331 | vmovupd.s xmm6,xmm4 |
| 332 | vmovups xmm6,xmm4 |
| 333 | vmovups.s xmm6,xmm4 |
| 334 | |
| 335 | # Tests for op xmm, xmm, xmm |
| 336 | vmovsd xmm2,xmm6,xmm4 |
| 337 | vmovsd.s xmm2,xmm6,xmm4 |
| 338 | vmovss xmm2,xmm6,xmm4 |
| 339 | vmovss.s xmm2,xmm6,xmm4 |
| 340 | |
| 341 | # Tests for op mm, mm |
| 342 | movq mm4,mm0 |
| 343 | movq.s mm4,mm0 |