diff --git a/test/MC/AsmParser/x86_operands.s b/test/MC/AsmParser/x86_operands.s
new file mode 100644
index 00000000000..708f1bd3e88
--- /dev/null
+++ b/test/MC/AsmParser/x86_operands.s
@@ -0,0 +1,36 @@
+// FIXME: Actually test that we get the expected results.
+        
+// RUN: llvm-mc %s > %t
+
+# Immediates
+        push $1
+        push $(1+2)
+        push $a
+        push $1 + 2
+        
+# Disambiguation
+        push 4+4
+        push (4+4)
+        push (4+4)(%eax)
+        push 8(%eax)
+        push (%eax)
+        push (4+4)(,%eax)
+        
+# Indirect Memory Operands
+        push 1(%eax)
+        push 1(%eax,%ebx)
+        push 1(%eax,%ebx,)
+        push 1(%eax,%ebx,4)
+        push 1(,%ebx)
+        push 1(,%ebx,)
+        push 1(,%ebx,4)
+        push 1(,%ebx,(2+2))
+
+# '*'
+        call a
+        call *a
+        call *%eax
+        call 4(%eax) # FIXME: Warn or reject.
+        call *4(%eax)
+
+