1// RUN: llvm-mc -triple x86_64-linux-gnu %s | FileCheck %s
2.macro ifcc arg:vararg
3.if cc
4            \arg
5.endif
6.endm
7
8.macro ifcc2 arg0 arg1:vararg
9.if cc
10            movl \arg0, \arg1
11.endif
12.endm
13
14.macro ifcc3 arg0, arg1:vararg
15.if cc
16            movl \arg0, \arg1
17.endif
18.endm
19
20.macro ifcc4 arg0, arg1:vararg
21.if cc
22            movl \arg1, \arg0
23.endif
24.endm
25
26.text
27
28// CHECK: movl %esp, %ebp
29// CHECK: subl $0, %esp
30// CHECK: movl %eax, %ebx
31// CHECK: movl %ecx, %ebx
32// CHECK: movl %ecx, %eax
33// CHECK: movl %eax, %ecx
34// CHECK: movl %ecx, %eax
35// CHECK: movl %eax, %ecx
36.set cc,1
37  ifcc  movl    %esp, %ebp
38        subl $0, %esp
39
40  ifcc2 %eax %ebx
41  ifcc2 %ecx, %ebx
42  ifcc3 %ecx %eax
43  ifcc3 %eax, %ecx
44  ifcc4 %eax %ecx  ## test
45  ifcc4 %ecx, %eax ## test
46
47// CHECK-NOT movl
48// CHECK: subl $1, %esp
49.set cc,0
50  ifcc  movl    %esp, %ebp
51        subl $1, %esp
52