# RUN: llvm-mc -triple x86_64 -disassemble %s | FileCheck %s --check-prefix=ATT # RUN: llvm-mc -triple x86_64 -disassemble -output-asm-variant=1 %s | FileCheck %s --check-prefix=INTEL ## MRMDestMem # ATT: vextractf32x4 $1, %zmm0, (%r16,%r17) # INTEL: vextractf32x4 xmmword ptr [r16 + r17], zmm0, 1 0x62,0xfb,0x79,0x48,0x19,0x04,0x08,0x01 # ATT: addq %r16, 123(%r17), %r18 # INTEL: add r18, qword ptr [r17 + 123], r16 0x62,0xec,0xec,0x10,0x01,0x41,0x7b ## MRMDestMemCC # ATT: cfcmovbq %r16, 123(%r17,%r18,4) # INTEL: cfcmovb qword ptr [r17 + 4*r18 + 123], r16 0x62,0xec,0xf8,0x0c,0x42,0x44,0x91,0x7b ## MRMSrcMem # ATT: vbroadcasti32x4 (%r16,%r17), %zmm0 # INTEL: vbroadcasti32x4 zmm0, xmmword ptr [r16 + r17] 0x62,0xfa,0x79,0x48,0x5a,0x04,0x08 # ATT: subq 123(%r16), %r17, %r18 # INTEL: sub r18, r17, qword ptr [r16 + 123] 0x62,0xec,0xec,0x10,0x2b,0x48,0x7b ## MRMSrcMemCC # ATT: cfcmovbq 123(%r16,%r17,4), %r18 # INTEL: cfcmovb r18, qword ptr [r16 + 4*r17 + 123] 0x62,0xec,0xf8,0x08,0x42,0x54,0x88,0x7b # ATT: cfcmovbq 123(%r16,%r17,4), %r18, %r19 # INTEL: cfcmovb r19, r18, qword ptr [r16 + 4*r17 + 123] 0x62,0xec,0xe0,0x14,0x42,0x54,0x88,0x7b ## MRM0m # ATT: vprorq $0, (%r16,%r17), %zmm0 # INTEL: vprorq zmm0, zmmword ptr [r16 + r17], 0 0x62,0xf9,0xf9,0x48,0x72,0x04,0x08,0x00 # ATT: addq $127, 123(%r16), %r17 # INTEL: add r17, qword ptr [r16 + 123], 127 0x62,0xfc,0xf4,0x10,0x83,0x40,0x7b,0x7f ## MRM1m # ATT: vprolq $0, (%r16,%r17), %zmm0 # INTEL: vprolq zmm0, zmmword ptr [r16 + r17], 0 0x62,0xf9,0xf9,0x48,0x72,0x0c,0x08,0x00 # ATT: orq $127, 123(%r16), %r17 # INTEL: or r17, qword ptr [r16 + 123], 127 0x62,0xfc,0xf4,0x10,0x83,0x48,0x7b,0x7f ## MRM2m # ATT: vpsrlq $0, (%r16,%r17), %zmm0 # INTEL: vpsrlq zmm0, zmmword ptr [r16 + r17], 0 0x62,0xf9,0xf9,0x48,0x73,0x14,0x08,0x00 # ATT: adcq $127, 123(%r16), %r17 # INTEL: adc r17, qword ptr [r16 + 123], 127 0x62,0xfc,0xf4,0x10,0x83,0x50,0x7b,0x7f ## MRM3m # ATT: vpsrldq $0, (%r16,%r17), %zmm0 # INTEL: vpsrldq zmm0, zmmword ptr [r16 + r17], 0 0x62,0xf9,0x79,0x48,0x73,0x1c,0x08,0x00 # ATT: sbbq $127, 123(%r16), %r17 # INTEL: sbb r17, qword ptr [r16 + 123], 127 0x62,0xfc,0xf4,0x10,0x83,0x58,0x7b,0x7f ## MRM4m # ATT: vpsraq $0, (%r16,%r17), %zmm0 # INTEL: vpsraq zmm0, zmmword ptr [r16 + r17], 0 0x62,0xf9,0xf9,0x48,0x72,0x24,0x08,0x00 # ATT: andq $127, 123(%r16), %r17 # INTEL: and r17, qword ptr [r16 + 123], 127 0x62,0xfc,0xf4,0x10,0x83,0x60,0x7b,0x7f ## MRM5m # ATT: vscatterpf0dps (%r16,%zmm0) {%k1} # INTEL: vscatterpf0dps {k1}, zmmword ptr [r16 + zmm0] 0x62,0xfa,0x7d,0x49,0xc6,0x2c,0x00 # ATT: subq $127, 123(%r16), %r17 # INTEL: sub r17, qword ptr [r16 + 123], 127 0x62,0xfc,0xf4,0x10,0x83,0x68,0x7b,0x7f ## MRM6m # ATT: vpsllq $0, (%r16,%r17), %zmm0 # INTEL: vpsllq zmm0, zmmword ptr [r16 + r17], 0 0x62,0xf9,0xf9,0x48,0x73,0x34,0x08,0x00 # ATT: xorq $127, 123(%r16), %r17 # INTEL: xor r17, qword ptr [r16 + 123], 127 0x62,0xfc,0xf4,0x10,0x83,0x70,0x7b,0x7f ## MRM7m # ATT: vpslldq $0, (%r16,%r17), %zmm0 # INTEL: vpslldq zmm0, zmmword ptr [r16 + r17], 0 0x62,0xf9,0x79,0x48,0x73,0x3c,0x08,0x00 # ATT: sarq $123, 291(%r16,%r17), %r18 # INTEL: sar r18, qword ptr [r16 + r17 + 291], 123 0x62,0xfc,0xe8,0x10,0xc1,0xbc,0x08,0x23,0x01,0x00,0x00,0x7b ## MRMDestMem4VOp3CC # ATT: cmpbexadd %r18d, %r22d, 291(%r28,%r29,4) # INTEL: cmpbexadd dword ptr [r28 + 4*r29 + 291], r22d, r18d 0x62,0x8a,0x69,0x00,0xe6,0xb4,0xac,0x23,0x01,0x00,0x00 ## MRMSrcMem4VOp3 # ATT: bzhiq %r19, 291(%r28,%r29,4), %r23 # INTEL: bzhi r23, qword ptr [r28 + 4*r29 + 291], r19 0x62,0x8a,0xe0,0x00,0xf5,0xbc,0xac,0x23,0x01,0x00,0x00 ## MRMDestReg # ATT: vextractps $1, %xmm16, %r16d # INTEL: vextractps r16d, xmm16, 1 0x62,0xeb,0x7d,0x08,0x17,0xc0,0x01 # ATT: {nf} addq %r16, %r17 # INTEL: {nf} add r17, r16 0x62,0xec,0xfc,0x0c,0x01,0xc1 ## MRMDestRegCC # ATT: cfcmovbq %r16, %r17 # INTEL: cfcmovb r17, r16 0x62,0xec,0xfc,0x0c,0x42,0xc1 ## MRMSrcReg # ATT: mulxq %r16, %r17, %r18 # INTEL: mulx r18, r17, r16 0x62,0xea,0xf7,0x00,0xf6,0xd0 ## MRMSrcRegCC # ATT: cfcmovbq %r16, %r17, %r18 # INTEL: cfcmovb r18, r17, r16 0x62,0xec,0xec,0x14,0x42,0xc8 # ATT: cfcmovlq %r16, %r17, %r18 # INTEL: cfcmovl r18, r17, r16 0x62,0xec,0xec,0x14,0x4c,0xc8 ## MRMSrcReg4VOp3 # ATT: bzhiq %r19, %r23, %r27 # INTEL: bzhi r27, r23, r19 0x62,0x6a,0xe4,0x00,0xf5,0xdf ## MRM0r # ATT: addq $127, %r16, %r17 # INTEL: add r17, r16, 127 0x62,0xfc,0xf4,0x10,0x83,0xc0,0x7f ## MRM1r # ATT: orq $127, %r16, %r17 # INTEL: or r17, r16, 127 0x62,0xfc,0xf4,0x10,0x83,0xc8,0x7f ## MRM2r # ATT: adcq $127, %r16, %r17 # INTEL: adc r17, r16, 127 0x62,0xfc,0xf4,0x10,0x83,0xd0,0x7f ## MRM3r # ATT: sbbq $127, %r16, %r17 # INTEL: sbb r17, r16, 127 0x62,0xfc,0xf4,0x10,0x83,0xd8,0x7f ## MRM4r # ATT: andq $127, %r16, %r17 # INTEL: and r17, r16, 127 0x62,0xfc,0xf4,0x10,0x83,0xe0,0x7f ## MRM5r # ATT: subq $127, %r16, %r17 # INTEL: sub r17, r16, 127 0x62,0xfc,0xf4,0x10,0x83,0xe8,0x7f ## MRM6r # ATT: xorq $127, %r16, %r17 # INTEL: xor r17, r16, 127 0x62,0xfc,0xf4,0x10,0x83,0xf0,0x7f ## MRM7r # ATT: sarq $123, %r16, %r17 # INTEL: sar r17, r16, 123 0x62,0xfc,0xf4,0x10,0xc1,0xf8,0x7b ## MRMXrCC # ATT: setzuo %r16b # INTEL: setzuo r16b 0x62,0xfc,0x7f,0x18,0x40,0xc0 ## MRMXmCC # ATT: setzuo (%r16,%r17) # INTEL: setzuo byte ptr [r16 + r17] 0x62,0xfc,0x7b,0x18,0x40,0x04,0x08 ## NoCD8 # ATT: {nf} negq 123(%r16) # INTEL: {nf} neg qword ptr [r16 + 123] 0x62,0xfc,0xfc,0x0c,0xf7,0x58,0x7b # ATT: {evex} notq 123(%r16) # INTEL: {evex} not qword ptr [r16 + 123] 0x62,0xfc,0xfc,0x08,0xf7,0x50,0x7b