| 1 | # Check 64bit instructions with optimized encoding |
| 2 | |
| 3 | .allow_index_reg |
| 4 | .text |
| 5 | _start: |
| 6 | testq $0x7f, %rax |
| 7 | testl $0x7f, %eax |
| 8 | testw $0x7f, %ax |
| 9 | testb $0x7f, %al |
| 10 | test $0x7f, %rbx |
| 11 | test $0x7f, %ebx |
| 12 | test $0x7f, %bx |
| 13 | test $0x7f, %bl |
| 14 | test $0x7f, %rdi |
| 15 | test $0x7f, %edi |
| 16 | test $0x7f, %di |
| 17 | test $0x7f, %dil |
| 18 | test $0x7f, %r9 |
| 19 | test $0x7f, %r9d |
| 20 | test $0x7f, %r9w |
| 21 | test $0x7f, %r9b |
| 22 | test $0x7f, %r12 |
| 23 | test $0x7f, %r12d |
| 24 | test $0x7f, %r12w |
| 25 | test $0x7f, %r12b |
| 26 | |
| 27 | and %cl, %cl |
| 28 | and %dx, %dx |
| 29 | and %ebx, %ebx |
| 30 | and %rsp, %rsp |
| 31 | |
| 32 | or %bpl, %bpl |
| 33 | or %si, %si |
| 34 | or %edi, %edi |
| 35 | or %r8, %r8 |
| 36 | |
| 37 | vandnpd %zmm1, %zmm1, %zmm5 |
| 38 | |
| 39 | vmovdqa32 %xmm1, %xmm2 |
| 40 | vmovdqa64 %xmm1, %xmm2 |
| 41 | vmovdqu8 %xmm1, %xmm2 |
| 42 | vmovdqu16 %xmm1, %xmm2 |
| 43 | vmovdqu32 %xmm1, %xmm2 |
| 44 | vmovdqu64 %xmm1, %xmm2 |
| 45 | |
| 46 | vmovdqa32 %xmm11, %xmm12 |
| 47 | vmovdqa64 %xmm11, %xmm12 |
| 48 | vmovdqu8 %xmm11, %xmm12 |
| 49 | vmovdqu16 %xmm11, %xmm12 |
| 50 | vmovdqu32 %xmm11, %xmm12 |
| 51 | vmovdqu64 %xmm11, %xmm12 |
| 52 | |
| 53 | vmovdqa32 127(%rax), %xmm2 |
| 54 | vmovdqa64 127(%rax), %xmm2 |
| 55 | vmovdqu8 127(%rax), %xmm2 |
| 56 | vmovdqu16 127(%rax), %xmm2 |
| 57 | vmovdqu32 127(%rax), %xmm2 |
| 58 | vmovdqu64 127(%rax), %xmm2 |
| 59 | |
| 60 | vmovdqa32 %xmm1, 128(%rax) |
| 61 | vmovdqa64 %xmm1, 128(%rax) |
| 62 | vmovdqu8 %xmm1, 128(%rax) |
| 63 | vmovdqu16 %xmm1, 128(%rax) |
| 64 | vmovdqu32 %xmm1, 128(%rax) |
| 65 | vmovdqu64 %xmm1, 128(%rax) |
| 66 | |
| 67 | vmovdqa32 %ymm1, %ymm2 |
| 68 | vmovdqa64 %ymm1, %ymm2 |
| 69 | vmovdqu8 %ymm1, %ymm2 |
| 70 | vmovdqu16 %ymm1, %ymm2 |
| 71 | vmovdqu32 %ymm1, %ymm2 |
| 72 | vmovdqu64 %ymm1, %ymm2 |
| 73 | |
| 74 | vmovdqa32 %ymm11, %ymm12 |
| 75 | vmovdqa64 %ymm11, %ymm12 |
| 76 | vmovdqu8 %ymm11, %ymm12 |
| 77 | vmovdqu16 %ymm11, %ymm12 |
| 78 | vmovdqu32 %ymm11, %ymm12 |
| 79 | vmovdqu64 %ymm11, %ymm12 |
| 80 | |
| 81 | vmovdqa32 127(%rax), %ymm2 |
| 82 | vmovdqa64 127(%rax), %ymm2 |
| 83 | vmovdqu8 127(%rax), %ymm2 |
| 84 | vmovdqu16 127(%rax), %ymm2 |
| 85 | vmovdqu32 127(%rax), %ymm2 |
| 86 | vmovdqu64 127(%rax), %ymm2 |
| 87 | |
| 88 | vmovdqa32 %ymm1, 128(%rax) |
| 89 | vmovdqa64 %ymm1, 128(%rax) |
| 90 | vmovdqu8 %ymm1, 128(%rax) |
| 91 | vmovdqu16 %ymm1, 128(%rax) |
| 92 | vmovdqu32 %ymm1, 128(%rax) |
| 93 | vmovdqu64 %ymm1, 128(%rax) |
| 94 | |
| 95 | vmovdqa32 %xmm21, %xmm2 |
| 96 | vmovdqa64 %xmm21, %xmm2 |
| 97 | vmovdqu8 %xmm21, %xmm2 |
| 98 | vmovdqu16 %xmm21, %xmm2 |
| 99 | vmovdqu32 %xmm21, %xmm2 |
| 100 | vmovdqu64 %xmm21, %xmm2 |
| 101 | |
| 102 | vmovdqa32 %zmm1, %zmm2 |
| 103 | vmovdqa64 %zmm1, %zmm2 |
| 104 | vmovdqu8 %zmm1, %zmm2 |
| 105 | vmovdqu16 %zmm1, %zmm2 |
| 106 | vmovdqu32 %zmm1, %zmm2 |
| 107 | vmovdqu64 %zmm1, %zmm2 |
| 108 | |
| 109 | {evex} vmovdqa32 %ymm1, %ymm2 |
| 110 | {evex} vmovdqa64 %ymm1, %ymm2 |
| 111 | {evex} vmovdqu8 %xmm1, %xmm2 |
| 112 | {evex} vmovdqu16 %xmm1, %xmm2 |
| 113 | {evex} vmovdqu32 %xmm1, %xmm2 |
| 114 | {evex} vmovdqu64 %xmm1, %xmm2 |
| 115 | |
| 116 | vmovdqa32 %ymm1, %ymm2{%k1} |
| 117 | vmovdqa64 %ymm1, %ymm2{%k1} |
| 118 | vmovdqu8 %xmm1, %xmm2{%k1} |
| 119 | vmovdqu16 %xmm1, %xmm2{%k1} |
| 120 | vmovdqu32 %xmm1, %xmm2{%k1} |
| 121 | vmovdqu64 %xmm1, %xmm2{%k1} |
| 122 | |
| 123 | vmovdqa32 (%rax), %ymm2{%k1} |
| 124 | vmovdqa64 (%rax), %ymm2{%k1} |
| 125 | vmovdqu8 (%rax), %xmm2{%k1} |
| 126 | vmovdqu16 (%rax), %xmm2{%k1} |
| 127 | vmovdqu32 (%rax), %xmm2{%k1} |
| 128 | vmovdqu64 (%rax), %xmm2{%k1} |
| 129 | |
| 130 | vmovdqa32 %ymm1, (%rax){%k1} |
| 131 | vmovdqa64 %ymm1, (%rax){%k1} |
| 132 | vmovdqu8 %xmm1, (%rax){%k1} |
| 133 | vmovdqu16 %xmm1, (%rax){%k1} |
| 134 | vmovdqu32 %xmm1, (%rax){%k1} |
| 135 | vmovdqu64 %xmm1, (%rax){%k1} |
| 136 | |
| 137 | vmovdqa32 %xmm1, %xmm2{%k1}{z} |
| 138 | vmovdqa64 %xmm1, %xmm2{%k1}{z} |
| 139 | vmovdqu8 %xmm1, %xmm2{%k1}{z} |
| 140 | vmovdqu16 %xmm1, %xmm2{%k1}{z} |
| 141 | vmovdqu32 %xmm1, %xmm2{%k1}{z} |
| 142 | vmovdqu64 %xmm1, %xmm2{%k1}{z} |
| 143 | |
| 144 | vpandd %xmm2, %xmm3, %xmm4 |
| 145 | vpandq %xmm12, %xmm3, %xmm4 |
| 146 | vpandnd %xmm2, %xmm13, %xmm4 |
| 147 | vpandnq %xmm2, %xmm3, %xmm14 |
| 148 | vpord %xmm2, %xmm3, %xmm4 |
| 149 | vporq %xmm12, %xmm3, %xmm4 |
| 150 | vpxord %xmm2, %xmm13, %xmm4 |
| 151 | vpxorq %xmm2, %xmm3, %xmm14 |
| 152 | |
| 153 | vpandd %ymm2, %ymm3, %ymm4 |
| 154 | vpandq %ymm12, %ymm3, %ymm4 |
| 155 | vpandnd %ymm2, %ymm13, %ymm4 |
| 156 | vpandnq %ymm2, %ymm3, %ymm14 |
| 157 | vpord %ymm2, %ymm3, %ymm4 |
| 158 | vporq %ymm12, %ymm3, %ymm4 |
| 159 | vpxord %ymm2, %ymm13, %ymm4 |
| 160 | vpxorq %ymm2, %ymm3, %ymm14 |
| 161 | |
| 162 | vpandd 112(%rax), %xmm2, %xmm3 |
| 163 | vpandq 112(%rax), %xmm2, %xmm3 |
| 164 | vpandnd 112(%rax), %xmm2, %xmm3 |
| 165 | vpandnq 112(%rax), %xmm2, %xmm3 |
| 166 | vpord 112(%rax), %xmm2, %xmm3 |
| 167 | vporq 112(%rax), %xmm2, %xmm3 |
| 168 | vpxord 112(%rax), %xmm2, %xmm3 |
| 169 | vpxorq 112(%rax), %xmm2, %xmm3 |
| 170 | |
| 171 | vpandd 128(%rax), %xmm2, %xmm3 |
| 172 | vpandq 128(%rax), %xmm2, %xmm3 |
| 173 | vpandnd 128(%rax), %xmm2, %xmm3 |
| 174 | vpandnq 128(%rax), %xmm2, %xmm3 |
| 175 | vpord 128(%rax), %xmm2, %xmm3 |
| 176 | vporq 128(%rax), %xmm2, %xmm3 |
| 177 | vpxord 128(%rax), %xmm2, %xmm3 |
| 178 | vpxorq 128(%rax), %xmm2, %xmm3 |
| 179 | |
| 180 | vpandd 96(%rax), %ymm2, %ymm3 |
| 181 | vpandq 96(%rax), %ymm2, %ymm3 |
| 182 | vpandnd 96(%rax), %ymm2, %ymm3 |
| 183 | vpandnq 96(%rax), %ymm2, %ymm3 |
| 184 | vpord 96(%rax), %ymm2, %ymm3 |
| 185 | vporq 96(%rax), %ymm2, %ymm3 |
| 186 | vpxord 96(%rax), %ymm2, %ymm3 |
| 187 | vpxorq 96(%rax), %ymm2, %ymm3 |
| 188 | |
| 189 | vpandd 128(%rax), %ymm2, %ymm3 |
| 190 | vpandq 128(%rax), %ymm2, %ymm3 |
| 191 | vpandnd 128(%rax), %ymm2, %ymm3 |
| 192 | vpandnq 128(%rax), %ymm2, %ymm3 |
| 193 | vpord 128(%rax), %ymm2, %ymm3 |
| 194 | vporq 128(%rax), %ymm2, %ymm3 |
| 195 | vpxord 128(%rax), %ymm2, %ymm3 |
| 196 | vpxorq 128(%rax), %ymm2, %ymm3 |
| 197 | |
| 198 | vpandd %xmm22, %xmm23, %xmm24 |
| 199 | vpandq %ymm22, %ymm3, %ymm4 |
| 200 | vpandnd %ymm2, %ymm23, %ymm4 |
| 201 | vpandnq %xmm2, %xmm3, %xmm24 |
| 202 | vpord %xmm22, %xmm23, %xmm24 |
| 203 | vporq %ymm22, %ymm3, %ymm4 |
| 204 | vpxord %ymm2, %ymm23, %ymm4 |
| 205 | vpxorq %xmm2, %xmm3, %xmm24 |
| 206 | |
| 207 | vpandd %xmm2, %xmm3, %xmm4{%k5} |
| 208 | vpandq %ymm12, %ymm3, %ymm4{%k5} |
| 209 | vpandnd %ymm2, %ymm13, %ymm4{%k5} |
| 210 | vpandnq %xmm2, %xmm3, %xmm14{%k5} |
| 211 | vpord %xmm2, %xmm3, %xmm4{%k5} |
| 212 | vporq %ymm12, %ymm3, %ymm4{%k5} |
| 213 | vpxord %ymm2, %ymm13, %ymm4{%k5} |
| 214 | vpxorq %xmm2, %xmm3, %xmm14{%k5} |
| 215 | |
| 216 | vpandd (%rax){1to8}, %ymm2, %ymm3 |
| 217 | vpandq (%rax){1to2}, %xmm2, %xmm3 |
| 218 | vpandnd (%rax){1to4}, %xmm2, %xmm3 |
| 219 | vpandnq (%rax){1to4}, %ymm2, %ymm3 |
| 220 | vpord (%rax){1to8}, %ymm2, %ymm3 |
| 221 | vporq (%rax){1to2}, %xmm2, %xmm3 |
| 222 | vpxord (%rax){1to4}, %xmm2, %xmm3 |
| 223 | vpxorq (%rax){1to4}, %ymm2, %ymm3 |