diff --git a/loopy/match.py b/loopy/match.py
index d285d464351e39e16ecdf96280fbebb4f6246f8e..053fc9d4883d97b9184d85429aac3b6507d28e0e 100644
--- a/loopy/match.py
+++ b/loopy/match.py
@@ -485,6 +485,10 @@ def parse_stack_match(smatch):
 
     if isinstance(smatch, StackMatch):
         return smatch
+    if isinstance(smatch, MatchExpressionBase):
+        return StackMatch(
+                StackItemMatchComponent(
+                    smatch, StackAllMatchComponent()))
 
     if smatch is None:
         return StackMatch(StackAllMatchComponent())