1# RUN: llvm-mc -triple=x86_64 %s | FileCheck %s 2 3.macro empty, cond 4.endm 5empty ne 6 7# CHECK: .ascii "3 \003" 8.macro escape a 9.ascii "\a \\a" 10.endm 11escape 3 12 13.macro double first = -1, second = -1 14 .long \first 15 .long \second 16.endm 17 18# CHECK: .long -1 19# CHECK-NEXT: .long -1 20# CHECK-EMPTY: 21double 22# CHECK: .long -1 23# CHECK-NEXT: .long -1 24# CHECK-EMPTY: 25double , 26# CHECK: .long 1 27# CHECK-NEXT: .long -1 28double 1 29# CHECK: .long 2 30# CHECK-NEXT: .long 3 31double 2, 3 32# CHECK: .long -1 33# CHECK-NEXT: .long 4 34double , 4 35# CHECK: .long 5 36# CHECK-NEXT: .long 6 37double 5, second = 6 38# CHECK: .long 7 39# CHECK-NEXT: .long -1 40double first = 7 41# CHECK: .long -1 42# CHECK-NEXT: .long 8 43double second = 8 44# CHECK: .long 10 45# CHECK-NEXT: .long 9 46double second = 9, first = 10 47# CHECK: .long second+11 48# CHECK-NEXT: .long -1 49double second + 11 50# CHECK: .long -1 51# CHECK-NEXT: .long second+12 52double , second + 12 53# CHECK: .long second 54# CHECK-NEXT: .long -1 55double second 56 57.macro mixed arg0 = 0, arg1 = 1 arg2 = 2, arg3 = 3 58 .long \arg0 59 .long \arg1 60 .long \arg2 61 .long \arg3 62.endm 63 64# CHECK: .long 1 65# CHECK-NEXT: .long 2 66# CHECK-NEXT: .long 3 67# CHECK-NEXT: .long 3 68mixed 1, 2 3 69 70# CHECK: .long 1 71# CHECK-NEXT: .long 2 72# CHECK-NEXT: .long 3 73# CHECK-NEXT: .long 3 74mixed 1 2, 3 75 76# CHECK: .long 1 77# CHECK-NEXT: .long 2 78# CHECK-NEXT: .long 3 79# CHECK-NEXT: .long 4 80mixed 1 2, 3 4 81 82.macro ascii3 _a _b _c 83.ascii "\_a|\_b|\_c" 84.endm 85 86## 3 arguments. 87# CHECK: .ascii "a|b|c" 88ascii3 a, b, c 89# CHECK: .ascii "%1|%2|%3" 90ascii3 %1 %2 %3 91# CHECK: .ascii "1|2|3" 92ascii3 1, 2,3 93# CHECK: .ascii "1|2|3" 94ascii3 1,2 3 95# CHECK: .ascii "1|2|3" 96ascii3 1 2, 3 97# CHECK: .ascii "x-y|z|1" 98ascii3 x - y z 1 99 100## 2 arguments. 101# CHECK: .ascii "1|(2 3)|" 102ascii3 1, (2 3) 103# CHECK: .ascii "1|(2 3)|" 104ascii3 1 (2 3) 105