llvm/llvm/test/MC/Disassembler/X86/apx/evex-format.txt

# 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