1// RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel %s | FileCheck %s
2
3_test:
4	xor	EAX, EAX
5	ret
6
7_main:
8// CHECK:	movl	$257, -4(%rsp)
9	mov	DWORD PTR [RSP - 4], 257
10// CHECK:	movl	$258, 4(%rsp)
11	mov	DWORD PTR [RSP + 4], 258
12// CHECK:	movq	$123, -16(%rsp)
13	mov	QWORD PTR [RSP - 16], 123
14// CHECK:	movb	$97, -17(%rsp)
15	mov	BYTE PTR [RSP - 17], 97
16// CHECK:	movl	-4(%rsp), %eax
17	mov	EAX, DWORD PTR [RSP - 4]
18// CHECK:	movq    (%rsp), %rax
19	mov     RAX, QWORD PTR [RSP]
20// CHECK:	movl	$-4, -4(%rsp)
21	mov	DWORD PTR [RSP - 4], -4
22// CHECK:	movq	0, %rcx
23	mov	RCX, QWORD PTR [0]
24// CHECK:	movl	-24(%rsp,%rax,4), %eax
25	mov	EAX, DWORD PTR [RSP + 4*RAX - 24]
26// CHECK:	movb	%dil, (%rdx,%rcx)
27	mov	BYTE PTR [RDX + RCX], DIL
28// CHECK:	movzwl	2(%rcx), %edi
29	movzx	EDI, WORD PTR [RCX + 2]
30// CHECK:	callq	_test
31	call	_test
32// CHECK:	andw	$12,	%ax
33	and	ax, 12
34// CHECK:	andw	$-12,	%ax
35	and	ax, -12
36// CHECK:	andw	$257,	%ax
37	and	ax, 257
38// CHECK:	andw	$-257,	%ax
39	and	ax, -257
40// CHECK:	andl	$12,	%eax
41	and	eax, 12
42// CHECK:	andl	$-12,	%eax
43	and	eax, -12
44// CHECK:	andl	$257,	%eax
45	and	eax, 257
46// CHECK:	andl	$-257,	%eax
47	and	eax, -257
48// CHECK:	andq	$12,	%rax
49	and	rax, 12
50// CHECK:	andq	$-12,	%rax
51	and	rax, -12
52// CHECK:	andq	$257,	%rax
53	and	rax, 257
54// CHECK:	andq	$-257,	%rax
55	and	rax, -257
56// CHECK:	fld	%st(0)
57	fld	ST(0)
58// CHECK:	movl	%fs:(%rdi), %eax
59        mov     EAX, DWORD PTR FS:[RDI]
60// CHECK:	leal	(,%rdi,4), %r8d
61        lea     R8D, DWORD PTR [4*RDI]
62// CHECK:        movl    _fnan(,%ecx,4), %ecx
63        mov     ECX, DWORD PTR [4*ECX + _fnan]
64// CHECK:       movq    %fs:320, %rax
65        mov     RAX, QWORD PTR FS:[320]
66// CHECK:       vpgatherdd %xmm8, (%r15,%xmm9,2), %xmm1
67        vpgatherdd XMM10, DWORD PTR [R15 + 2*XMM9], XMM8
68	ret
69