[AVX512] Add vpermil variable version
[oota-llvm.git] / test / MC / AsmParser / macro-args.s
1 // RUN: llvm-mc -triple x86_64-apple-darwin10 %s | FileCheck %s
2
3 .macro GET   var,re2g
4     movl   \var@GOTOFF(%ebx),\re2g
5 .endm
6
7 .macro GET_DEFAULT var, re2g=%ebx, re3g=%ecx
8 movl 2(\re2g, \re3g, 2), \var
9 .endm
10
11 GET         is_sse, %eax
12 // CHECK: movl  is_sse@GOTOFF(%ebx), %eax
13
14 GET_DEFAULT %ebx, , %edx
15 // CHECK: movl  2(%ebx,%edx,2), %ebx
16
17 GET_DEFAULT %ebx, %edx
18 // CHECK: movl  2(%edx,%ecx,2), %ebx
19
20 .macro bar
21     .long $n
22 .endm
23
24 bar 1, 2, 3
25 bar
26
27 // CHECK: .long 3
28 // CHECK: .long 0
29
30
31 .macro top
32     middle _$0, $1
33 .endm
34 .macro middle
35      $0:
36     .if $n > 1
37         bottom $1
38     .endif
39 .endm
40 .macro bottom
41     .set fred, $0
42 .endm
43
44 .text
45
46 top foo
47 top bar, 42
48
49 // CHECK: _foo:
50 // CHECK-NOT: fred
51 // CHECK: _bar
52 // CHECK-NEXT: fred = 42
53
54
55 .macro foo
56 foo_$0_$1_$2_$3:
57   nop
58 .endm
59
60 foo 1, 2, 3, 4
61 foo 1, , 3, 4
62
63 // CHECK: foo_1_2_3_4:
64 // CHECK: foo_1__3_4: