1 // RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s 2 3 // PR7195 4 // CHECK: callw 42 5 // CHECK: encoding: [0x66,0xe8,A,A] 6 callw 42 7 8 // rdar://8127102 9 // CHECK: movq %gs:(%rdi), %rax 10 // CHECK: encoding: [0x65,0x48,0x8b,0x07] 11 movq %gs:(%rdi), %rax 12 13 // CHECK: crc32b %bl, %eax 14 // CHECK: encoding: [0xf2,0x0f,0x38,0xf0,0xc3] 15 crc32b %bl, %eax 16 17 // CHECK: crc32b 4(%rbx), %eax 18 // CHECK: encoding: [0xf2,0x0f,0x38,0xf0,0x43,0x04] 19 crc32b 4(%rbx), %eax 20 21 // CHECK: crc32w %bx, %eax 22 // CHECK: encoding: [0x66,0xf2,0x0f,0x38,0xf1,0xc3] 23 crc32w %bx, %eax 24 25 // CHECK: crc32w 4(%rbx), %eax 26 // CHECK: encoding: [0x66,0xf2,0x0f,0x38,0xf1,0x43,0x04] 27 crc32w 4(%rbx), %eax 28 29 // CHECK: crc32l %ebx, %eax 30 // CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0xc3] 31 crc32l %ebx, %eax 32 33 // CHECK: crc32l 4(%rbx), %eax 34 // CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0x43,0x04] 35 crc32l 4(%rbx), %eax 36 37 // CHECK: crc32l 3735928559(%rbx,%rcx,8), %ecx 38 // CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0x8c,0xcb,0xef,0xbe,0xad,0xde] 39 crc32l 0xdeadbeef(%rbx,%rcx,8),%ecx 40 41 // CHECK: crc32l 69, %ecx 42 // CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0x0c,0x25,0x45,0x00,0x00,0x00] 43 crc32l 0x45,%ecx 44 45 // CHECK: crc32l 32493, %ecx 46 // CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0x0c,0x25,0xed,0x7e,0x00,0x00] 47 crc32l 0x7eed,%ecx 48 49 // CHECK: crc32l 3133065982, %ecx 50 // CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0x0c,0x25,0xfe,0xca,0xbe,0xba] 51 crc32l 0xbabecafe,%ecx 52 53 // CHECK: crc32l %ecx, %ecx 54 // CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0xc9] 55 crc32l %ecx,%ecx 56 57 // CHECK: crc32b %r11b, %eax 58 // CHECK: encoding: [0xf2,0x41,0x0f,0x38,0xf0,0xc3] 59 crc32b %r11b, %eax 60 61 // CHECK: crc32b 4(%rbx), %eax 62 // CHECK: encoding: [0xf2,0x0f,0x38,0xf0,0x43,0x04] 63 crc32b 4(%rbx), %eax 64 65 // CHECK: crc32b %dil, %rax 66 // CHECK: encoding: [0xf2,0x48,0x0f,0x38,0xf0,0xc7] 67 crc32b %dil,%rax 68 69 // CHECK: crc32b %r11b, %rax 70 // CHECK: encoding: [0xf2,0x49,0x0f,0x38,0xf0,0xc3] 71 crc32b %r11b,%rax 72 73 // CHECK: crc32b 4(%rbx), %rax 74 // CHECK: encoding: [0xf2,0x48,0x0f,0x38,0xf0,0x43,0x04] 75 crc32b 4(%rbx), %rax 76 77 // CHECK: crc32q %rbx, %rax 78 // CHECK: encoding: [0xf2,0x48,0x0f,0x38,0xf1,0xc3] 79 crc32q %rbx, %rax 80 81 // CHECK: crc32q 4(%rbx), %rax 82 // CHECK: encoding: [0xf2,0x48,0x0f,0x38,0xf1,0x43,0x04] 83 crc32q 4(%rbx), %rax 84 85 // CHECK: movd %r8, %mm1 86 // CHECK: encoding: [0x49,0x0f,0x6e,0xc8] 87 movd %r8, %mm1 88 89 // CHECK: movd %r8d, %mm1 90 // CHECK: encoding: [0x41,0x0f,0x6e,0xc8] 91 movd %r8d, %mm1 92 93 // CHECK: movd %rdx, %mm1 94 // CHECK: encoding: [0x48,0x0f,0x6e,0xca] 95 movd %rdx, %mm1 96 97 // CHECK: movd %edx, %mm1 98 // CHECK: encoding: [0x0f,0x6e,0xca] 99 movd %edx, %mm1 100 101 // CHECK: movd %mm1, %r8 102 // CHECK: encoding: [0x49,0x0f,0x7e,0xc8] 103 movd %mm1, %r8 104 105 // CHECK: movd %mm1, %r8d 106 // CHECK: encoding: [0x41,0x0f,0x7e,0xc8] 107 movd %mm1, %r8d 108 109 // CHECK: movd %mm1, %rdx 110 // CHECK: encoding: [0x48,0x0f,0x7e,0xca] 111 movd %mm1, %rdx 112 113 // CHECK: movd %mm1, %edx 114 // CHECK: encoding: [0x0f,0x7e,0xca] 115 movd %mm1, %edx 116 117 // rdar://7840289 118 // CHECK: pshufb CPI1_0(%rip), %xmm1 119 // CHECK: encoding: [0x66,0x0f,0x38,0x00,0x0d,A,A,A,A] 120 // CHECK: fixup A - offset: 5, value: CPI1_0-4 121 pshufb CPI1_0(%rip), %xmm1 122 123 // CHECK: sha1rnds4 $1, %xmm1, %xmm2 124 // CHECK: encoding: [0x0f,0x3a,0xcc,0xd1,0x01] 125 sha1rnds4 $1, %xmm1, %xmm2 126 127 // CHECK: sha1rnds4 $1, (%rax), %xmm2 128 // CHECK: encoding: [0x0f,0x3a,0xcc,0x10,0x01] 129 sha1rnds4 $1, (%rax), %xmm2 130 131 // CHECK: sha1nexte %xmm1, %xmm2 132 // CHECK: encoding: [0x0f,0x38,0xc8,0xd1] 133 sha1nexte %xmm1, %xmm2 134 135 // CHECK: sha1msg1 %xmm1, %xmm2 136 // CHECK: encoding: [0x0f,0x38,0xc9,0xd1] 137 sha1msg1 %xmm1, %xmm2 138 139 // CHECK: sha1msg1 (%rax), %xmm2 140 // CHECK: encoding: [0x0f,0x38,0xc9,0x10] 141 sha1msg1 (%rax), %xmm2 142 143 // CHECK: sha1msg2 %xmm1, %xmm2 144 // CHECK: encoding: [0x0f,0x38,0xca,0xd1] 145 sha1msg2 %xmm1, %xmm2 146 147 // CHECK: sha1msg2 (%rax), %xmm2 148 // CHECK: encoding: [0x0f,0x38,0xca,0x10] 149 sha1msg2 (%rax), %xmm2 150 151 // CHECK: sha256rnds2 (%rax), %xmm2 152 // CHECK: encoding: [0x0f,0x38,0xcb,0x10] 153 sha256rnds2 (%rax), %xmm2 154 155 // CHECK: sha256rnds2 %xmm1, %xmm2 156 // CHECK: encoding: [0x0f,0x38,0xcb,0xd1] 157 sha256rnds2 %xmm1, %xmm2 158 159 // CHECK: sha256rnds2 (%rax), %xmm2 160 // CHECK: encoding: [0x0f,0x38,0xcb,0x10] 161 sha256rnds2 %xmm0, (%rax), %xmm2 162 163 // CHECK: sha256rnds2 %xmm1, %xmm2 164 // CHECK: encoding: [0x0f,0x38,0xcb,0xd1] 165 sha256rnds2 %xmm0, %xmm1, %xmm2 166 167 // CHECK: sha256msg1 %xmm1, %xmm2 168 // CHECK: encoding: [0x0f,0x38,0xcc,0xd1] 169 sha256msg1 %xmm1, %xmm2 170 171 // CHECK: sha256msg1 (%rax), %xmm2 172 // CHECK: encoding: [0x0f,0x38,0xcc,0x10] 173 sha256msg1 (%rax), %xmm2 174 175 // CHECK: sha256msg2 %xmm1, %xmm2 176 // CHECK: encoding: [0x0f,0x38,0xcd,0xd1] 177 sha256msg2 %xmm1, %xmm2 178 179 // CHECK: sha256msg2 (%rax), %xmm2 180 // CHECK: encoding: [0x0f,0x38,0xcd,0x10] 181 sha256msg2 (%rax), %xmm2 182 183 // CHECK: movq 57005(,%riz), %rbx 184 // CHECK: encoding: [0x48,0x8b,0x1c,0x25,0xad,0xde,0x00,0x00] 185 movq 57005(,%riz), %rbx 186 187 // CHECK: movq 48879(,%riz), %rax 188 // CHECK: encoding: [0x48,0x8b,0x04,0x25,0xef,0xbe,0x00,0x00] 189 movq 48879(,%riz), %rax 190 191 // CHECK: movq -4(,%riz,8), %rax 192 // CHECK: encoding: [0x48,0x8b,0x04,0xe5,0xfc,0xff,0xff,0xff] 193 movq -4(,%riz,8), %rax 194 195 // CHECK: movq (%rcx,%riz), %rax 196 // CHECK: encoding: [0x48,0x8b,0x04,0x21] 197 movq (%rcx,%riz), %rax 198 199 // CHECK: movq (%rcx,%riz,8), %rax 200 // CHECK: encoding: [0x48,0x8b,0x04,0xe1] 201 movq (%rcx,%riz,8), %rax 202 203 // CHECK: fxsave64 (%rax) 204 // CHECK: encoding: [0x48,0x0f,0xae,0x00] 205 fxsaveq (%rax) 206 207 // CHECK: fxsave64 (%rax) 208 // CHECK: encoding: [0x48,0x0f,0xae,0x00] 209 fxsave64 (%rax) 210 211 // CHECK: fxrstor64 (%rax) 212 // CHECK: encoding: [0x48,0x0f,0xae,0x08] 213 fxrstorq (%rax) 214 215 // CHECK: fxrstor64 (%rax) 216 // CHECK: encoding: [0x48,0x0f,0xae,0x08] 217 fxrstor64 (%rax) 218 219 // CHECK: leave 220 // CHECK: encoding: [0xc9] 221 leave 222 223 // CHECK: leave 224 // CHECK: encoding: [0xc9] 225 leaveq 226 227 // CHECK: flds (%edi) 228 // CHECK: encoding: [0x67,0xd9,0x07] 229 flds (%edi) 230 231 // CHECK: filds (%edi) 232 // CHECK: encoding: [0x67,0xdf,0x07] 233 filds (%edi) 234 235 // CHECK: flds (%rdi) 236 // CHECK: encoding: [0xd9,0x07] 237 flds (%rdi) 238 239 // CHECK: filds (%rdi) 240 // CHECK: encoding: [0xdf,0x07] 241 filds (%rdi) 242 243 // CHECK: pmovmskb %xmm5, %ecx 244 // CHECK: encoding: [0x66,0x0f,0xd7,0xcd] 245 pmovmskb %xmm5,%rcx 246 247 // CHECK: pinsrw $3, %ecx, %xmm5 248 // CHECK: encoding: [0x66,0x0f,0xc4,0xe9,0x03] 249 pinsrw $3, %ecx, %xmm5 250 251 // CHECK: pinsrw $3, %ecx, %xmm5 252 // CHECK: encoding: [0x66,0x0f,0xc4,0xe9,0x03] 253 pinsrw $3, %rcx, %xmm5 254