diff --git a/loopy/kernel/tools.py b/loopy/kernel/tools.py
index cb72f283e2151fd8d097f19eb4e4876cc78ccd43..d7018a702e949f607f92122a30997cf281355906 100644
--- a/loopy/kernel/tools.py
+++ b/loopy/kernel/tools.py
@@ -102,7 +102,17 @@ def get_arguments_with_incomplete_dtype(knl):
 
 
 def add_and_infer_dtypes(knl, dtype_dict):
-    knl = add_dtypes(knl, dtype_dict)
+    processed_dtype_dict = {}
+
+    for k, v in six.iteritems(dtype_dict):
+        for subkey in k.split(","):
+            subkey = subkey.strip()
+            if subkey:
+                processed_dtype_dict[subkey] = v
+
+    print(processed_dtype_dict)
+
+    knl = add_dtypes(knl, processed_dtype_dict)
 
     from loopy.preprocess import infer_unknown_types
     return infer_unknown_types(knl, expect_completion=True)