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