| // RUN: llvm-mc -triple i386-apple-darwin10 %s 2>&1 | FileCheck %s | 
 |  | 
 | .macro abc a b:vararg | 
 | .globl "\a, \b" | 
 | .endm | 
 |  | 
 | // CHECK: .globl "zed0, zed1, zed2" | 
 | abc zed0, zed1, zed2 | 
 |  | 
 | .purgem abc | 
 |  | 
 | .macro ifcc arg:vararg | 
 | .if cc | 
 |             \arg | 
 | .endif | 
 | .endm | 
 |  | 
 | .macro ifcc2 arg0 arg1:vararg | 
 | .if cc | 
 |             movl \arg0, \arg1 | 
 | .endif | 
 | .endm | 
 |  | 
 | .macro ifcc3 arg0, arg1:vararg | 
 | .if cc | 
 |             movl \arg0, \arg1 | 
 | .endif | 
 | .endm | 
 |  | 
 | .macro ifcc4 arg0, arg1:vararg | 
 | .if cc | 
 |             movl \arg1, \arg0 | 
 | .endif | 
 | .endm | 
 |  | 
 | .text | 
 |  | 
 | // CHECK: movl %esp, %ebp | 
 | // CHECK: subl $0, %esp | 
 | // CHECK: movl %eax, %ebx | 
 | // CHECK: movl %ecx, %ebx | 
 | // CHECK: movl %ecx, %eax | 
 | // CHECK: movl %eax, %ecx | 
 | // CHECK: movl %ecx, %eax | 
 | // CHECK: movl %eax, %ecx | 
 | .set cc,1 | 
 |   ifcc  movl    %esp, %ebp | 
 |         subl $0, %esp | 
 |  | 
 |   ifcc2 %eax, %ebx | 
 |   ifcc2 %ecx, %ebx | 
 |   ifcc3 %ecx, %eax | 
 |   ifcc3 %eax, %ecx | 
 |   ifcc4 %eax, %ecx  ## test | 
 |   ifcc4 %ecx, %eax ## test | 
 |  | 
 | // CHECK-NOT: movl | 
 | // CHECK: subl $1, %esp | 
 | .set cc,0 | 
 |   ifcc  movl,    %esp, %ebp | 
 |         subl $1, %esp | 
 |  | 
 | .macro abc arg:vararg=nop | 
 |   \arg | 
 | .endm | 
 |  | 
 | .macro abcd arg0=%eax, arg1:vararg=%ebx | 
 |   movl \arg0, \arg1 | 
 | .endm | 
 |  | 
 | .text | 
 |  | 
 | // CHECK: nop | 
 |   abc | 
 | // CHECK: movl %eax, %ebx | 
 |   abcd , | 
 |  | 
 | .macro .make_macro start, end, name, body:vararg | 
 | \start \name | 
 | \body | 
 | \end | 
 | .endmacro | 
 |  | 
 | .make_macro .macro,.endmacro,.mybyte,.byte $0, $2, $1 | 
 |  | 
 | .data | 
 | // CHECK: .byte 10 | 
 | // CHECK: .byte 12 | 
 | // CHECK: .byte 11 | 
 | .mybyte 10,11,12 |