AMDGPU: Emit functions sizes
[oota-llvm.git] / test / MC / AsmParser / macro-args.s
index 4b878999e42479b34831c83b3871c4d30e301af2..3269369be0209fb0422399b40bc0edbb7c91ec97 100644 (file)
@@ -4,10 +4,18 @@
     movl   \var@GOTOFF(%ebx),\re2g
 .endm
 
+.macro GET_DEFAULT var, re2g=%ebx, re3g=%ecx
+movl 2(\re2g, \re3g, 2), \var
+.endm
+
+GET         is_sse, %eax
+// CHECK: movl  is_sse@GOTOFF(%ebx), %eax
 
-GET    is_sse, %eax
+GET_DEFAULT %ebx, , %edx
+// CHECK: movl  2(%ebx,%edx,2), %ebx
 
-// CHECK: movl is_sse@GOTOFF(%ebx), %eax
+GET_DEFAULT %ebx, %edx
+// CHECK: movl  2(%edx,%ecx,2), %ebx
 
 .macro bar
     .long $n
@@ -18,3 +26,39 @@ bar
 
 // CHECK: .long 3
 // CHECK: .long 0
+
+
+.macro top
+    middle _$0, $1
+.endm
+.macro middle
+     $0:
+    .if $n > 1
+        bottom $1
+    .endif
+.endm
+.macro bottom
+    .set fred, $0
+.endm
+
+.text
+
+top foo
+top bar, 42
+
+// CHECK: _foo:
+// CHECK-NOT: fred
+// CHECK: _bar
+// CHECK-NEXT: fred = 42
+
+
+.macro foo
+foo_$0_$1_$2_$3:
+  nop
+.endm
+
+foo 1, 2, 3, 4
+foo 1, , 3, 4
+
+// CHECK: foo_1_2_3_4:
+// CHECK: foo_1__3_4: