283 lines · plain
1// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s2 3// rdar://81271024// CHECK: movq %gs:(%rdi), %rax5// CHECK: encoding: [0x65,0x48,0x8b,0x07]6movq %gs:(%rdi), %rax7 8// CHECK: crc32b %bl, %eax9// CHECK: encoding: [0xf2,0x0f,0x38,0xf0,0xc3]10 crc32b %bl, %eax11 12// CHECK: crc32b 4(%rbx), %eax13// CHECK: encoding: [0xf2,0x0f,0x38,0xf0,0x43,0x04]14 crc32b 4(%rbx), %eax15 16// CHECK: crc32w %bx, %eax17// CHECK: encoding: [0x66,0xf2,0x0f,0x38,0xf1,0xc3]18 crc32w %bx, %eax19 20// CHECK: crc32w 4(%rbx), %eax21// CHECK: encoding: [0x66,0xf2,0x0f,0x38,0xf1,0x43,0x04]22 crc32w 4(%rbx), %eax23 24// CHECK: crc32l %ebx, %eax25// CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0xc3]26 crc32l %ebx, %eax27 28// CHECK: crc32l 4(%rbx), %eax29// CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0x43,0x04]30 crc32l 4(%rbx), %eax31 32// CHECK: crc32l 2125315823(%rbx,%rcx,8), %ecx33// CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0x8c,0xcb,0xef,0xbe,0xad,0x7e]34 crc32l 0x7eadbeef(%rbx,%rcx,8),%ecx35 36// CHECK: crc32l 69, %ecx37// CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0x0c,0x25,0x45,0x00,0x00,0x00]38 crc32l 0x45,%ecx39 40// CHECK: crc32l 32493, %ecx41// CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0x0c,0x25,0xed,0x7e,0x00,0x00]42 crc32l 0x7eed,%ecx43 44// CHECK: crc32l 3133065982, %ecx45// CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0x0c,0x25,0xfe,0xca,0xbe,0xba]46 crc32l 0xbabecafe,%ecx47 48// CHECK: crc32l %ecx, %ecx49// CHECK: encoding: [0xf2,0x0f,0x38,0xf1,0xc9]50 crc32l %ecx,%ecx51 52// CHECK: crc32b %r11b, %eax53// CHECK: encoding: [0xf2,0x41,0x0f,0x38,0xf0,0xc3]54 crc32b %r11b, %eax55 56// CHECK: crc32b 4(%rbx), %eax57// CHECK: encoding: [0xf2,0x0f,0x38,0xf0,0x43,0x04]58 crc32b 4(%rbx), %eax59 60// CHECK: crc32b %dil, %rax61// CHECK: encoding: [0xf2,0x48,0x0f,0x38,0xf0,0xc7]62 crc32b %dil,%rax63 64// CHECK: crc32b %r11b, %rax65// CHECK: encoding: [0xf2,0x49,0x0f,0x38,0xf0,0xc3]66 crc32b %r11b,%rax67 68// CHECK: crc32b 4(%rbx), %rax69// CHECK: encoding: [0xf2,0x48,0x0f,0x38,0xf0,0x43,0x04]70 crc32b 4(%rbx), %rax71 72// CHECK: crc32q %rbx, %rax73// CHECK: encoding: [0xf2,0x48,0x0f,0x38,0xf1,0xc3]74 crc32q %rbx, %rax75 76// CHECK: crc32q 4(%rbx), %rax77// CHECK: encoding: [0xf2,0x48,0x0f,0x38,0xf1,0x43,0x04]78 crc32q 4(%rbx), %rax79 80// CHECK: movq %r8, %mm181// CHECK: encoding: [0x49,0x0f,0x6e,0xc8]82movd %r8, %mm183 84// CHECK: movd %r8d, %mm185// CHECK: encoding: [0x41,0x0f,0x6e,0xc8]86movd %r8d, %mm187 88// CHECK: movq %rdx, %mm189// CHECK: encoding: [0x48,0x0f,0x6e,0xca]90movd %rdx, %mm191 92// CHECK: movd %edx, %mm193// CHECK: encoding: [0x0f,0x6e,0xca]94movd %edx, %mm195 96// CHECK: movq %mm1, %r897// CHECK: encoding: [0x49,0x0f,0x7e,0xc8]98movd %mm1, %r899 100// CHECK: movd %mm1, %r8d101// CHECK: encoding: [0x41,0x0f,0x7e,0xc8]102movd %mm1, %r8d103 104// CHECK: movq %mm1, %rdx105// CHECK: encoding: [0x48,0x0f,0x7e,0xca]106movd %mm1, %rdx107 108// CHECK: movd %mm1, %edx109// CHECK: encoding: [0x0f,0x7e,0xca]110movd %mm1, %edx111 112// CHECK: movd %mm1, (%rax)113// CHECK: encoding: [0x0f,0x7e,0x08]114movd %mm1, (%rax)115 116// CHECK: movd (%rax), %mm1117// CHECK: encoding: [0x0f,0x6e,0x08]118movd (%rax), %mm1119 120// CHECK: movq %r8, %mm1121// CHECK: encoding: [0x49,0x0f,0x6e,0xc8]122movq %r8, %mm1123 124// CHECK: movq %rdx, %mm1125// CHECK: encoding: [0x48,0x0f,0x6e,0xca]126movq %rdx, %mm1127 128// CHECK: movq %mm1, %r8129// CHECK: encoding: [0x49,0x0f,0x7e,0xc8]130movq %mm1, %r8131 132// CHECK: movq %mm1, %rdx133// CHECK: encoding: [0x48,0x0f,0x7e,0xca]134movq %mm1, %rdx135 136// CHECK: sha1rnds4 $1, %xmm1, %xmm2137// CHECK: encoding: [0x0f,0x3a,0xcc,0xd1,0x01]138sha1rnds4 $1, %xmm1, %xmm2139 140// CHECK: sha1rnds4 $1, (%rax), %xmm2141// CHECK: encoding: [0x0f,0x3a,0xcc,0x10,0x01]142sha1rnds4 $1, (%rax), %xmm2143 144// CHECK: sha1nexte %xmm1, %xmm2145// CHECK: encoding: [0x0f,0x38,0xc8,0xd1]146sha1nexte %xmm1, %xmm2147 148// CHECK: sha1msg1 %xmm1, %xmm2149// CHECK: encoding: [0x0f,0x38,0xc9,0xd1]150sha1msg1 %xmm1, %xmm2151 152// CHECK: sha1msg1 (%rax), %xmm2153// CHECK: encoding: [0x0f,0x38,0xc9,0x10]154sha1msg1 (%rax), %xmm2155 156// CHECK: sha1msg2 %xmm1, %xmm2157// CHECK: encoding: [0x0f,0x38,0xca,0xd1]158sha1msg2 %xmm1, %xmm2159 160// CHECK: sha1msg2 (%rax), %xmm2161// CHECK: encoding: [0x0f,0x38,0xca,0x10]162sha1msg2 (%rax), %xmm2163 164// CHECK: sha256rnds2 %xmm0, (%rax), %xmm2165// CHECK: encoding: [0x0f,0x38,0xcb,0x10]166sha256rnds2 (%rax), %xmm2167 168// CHECK: sha256rnds2 %xmm0, %xmm1, %xmm2169// CHECK: encoding: [0x0f,0x38,0xcb,0xd1]170sha256rnds2 %xmm1, %xmm2171 172// CHECK: sha256rnds2 %xmm0, (%rax), %xmm2173// CHECK: encoding: [0x0f,0x38,0xcb,0x10]174sha256rnds2 %xmm0, (%rax), %xmm2175 176// CHECK: sha256rnds2 %xmm0, %xmm1, %xmm2177// CHECK: encoding: [0x0f,0x38,0xcb,0xd1]178sha256rnds2 %xmm0, %xmm1, %xmm2179 180// CHECK: sha256msg1 %xmm1, %xmm2181// CHECK: encoding: [0x0f,0x38,0xcc,0xd1]182sha256msg1 %xmm1, %xmm2183 184// CHECK: sha256msg1 (%rax), %xmm2185// CHECK: encoding: [0x0f,0x38,0xcc,0x10]186sha256msg1 (%rax), %xmm2187 188// CHECK: sha256msg2 %xmm1, %xmm2189// CHECK: encoding: [0x0f,0x38,0xcd,0xd1]190sha256msg2 %xmm1, %xmm2191 192// CHECK: sha256msg2 (%rax), %xmm2193// CHECK: encoding: [0x0f,0x38,0xcd,0x10]194sha256msg2 (%rax), %xmm2195 196// CHECK: movq 57005(,%riz), %rbx197// CHECK: encoding: [0x48,0x8b,0x1c,0x25,0xad,0xde,0x00,0x00]198 movq 57005(,%riz), %rbx199 200// CHECK: movq 48879(,%riz), %rax201// CHECK: encoding: [0x48,0x8b,0x04,0x25,0xef,0xbe,0x00,0x00]202 movq 48879(,%riz), %rax203 204// CHECK: movq -4(,%riz,8), %rax205// CHECK: encoding: [0x48,0x8b,0x04,0xe5,0xfc,0xff,0xff,0xff]206 movq -4(,%riz,8), %rax207 208// CHECK: movq (%rcx,%riz), %rax209// CHECK: encoding: [0x48,0x8b,0x04,0x21]210 movq (%rcx,%riz), %rax211 212// CHECK: movq (%rcx,%riz,8), %rax213// CHECK: encoding: [0x48,0x8b,0x04,0xe1]214 movq (%rcx,%riz,8), %rax215 216// CHECK: fxsave64 (%rax)217// CHECK: encoding: [0x48,0x0f,0xae,0x00]218 fxsaveq (%rax)219 220// CHECK: fxsave64 (%rax)221// CHECK: encoding: [0x48,0x0f,0xae,0x00]222 fxsave64 (%rax)223 224// CHECK: fxrstor64 (%rax)225// CHECK: encoding: [0x48,0x0f,0xae,0x08]226 fxrstorq (%rax)227 228// CHECK: fxrstor64 (%rax)229// CHECK: encoding: [0x48,0x0f,0xae,0x08]230 fxrstor64 (%rax)231 232// CHECK: leave233// CHECK: encoding: [0xc9]234 leave235 236// CHECK: leave237// CHECK: encoding: [0xc9]238 leaveq239 240// CHECK: flds (%edi)241// CHECK: encoding: [0x67,0xd9,0x07]242 flds (%edi)243 244// CHECK: filds (%edi)245// CHECK: encoding: [0x67,0xdf,0x07]246 filds (%edi)247 248// CHECK: flds (%rdi)249// CHECK: encoding: [0xd9,0x07]250 flds (%rdi)251 252// CHECK: filds (%rdi)253// CHECK: encoding: [0xdf,0x07]254 filds (%rdi)255 256// CHECK: pmovmskb %xmm5, %ecx257// CHECK: encoding: [0x66,0x0f,0xd7,0xcd]258 pmovmskb %xmm5,%rcx259 260// CHECK: pinsrw $3, %ecx, %xmm5261// CHECK: encoding: [0x66,0x0f,0xc4,0xe9,0x03]262 pinsrw $3, %ecx, %xmm5263 264// CHECK: pinsrw $3, %ecx, %xmm5265// CHECK: encoding: [0x66,0x0f,0xc4,0xe9,0x03]266 pinsrw $3, %rcx, %xmm5267 268//CHECK: movq 12(%rdi), %rsi269//CHECK: encoding: [0x48,0x8b,0x77,0x0c]270 movq 16+0-4(%rdi),%rsi271 272//CHECK: movq 12(%rdi), %rsi273//CHECK: encoding: [0x48,0x8b,0x77,0x0c]274 movq (16+(0-4))(%rdi),%rsi275 276//CHECK: movq 12(%rdi), %rsi277//CHECK: encoding: [0x48,0x8b,0x77,0x0c]278 movq (16+0)-1+1-2+2-3+3-4+4-5+5-6+6-(4)(%rdi),%rsi279 280//CHECK: movq (,%eiz), %rax281//CHECK: encoding: [0x67,0x48,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]282 movq (,%eiz), %rax283