diff --git a/loopy/target/c/codegen/expression.py b/loopy/target/c/codegen/expression.py
index 6a596454018802c0a5a1e837272c106ffa7c55b3..55c8b8eeceb77f8fb0e4162ea15b665aee35b8ba 100644
--- a/loopy/target/c/codegen/expression.py
+++ b/loopy/target/c/codegen/expression.py
@@ -187,11 +187,11 @@ class LoopyCCodeMapper(RecursiveMapper):
                         ", ".join(self.rec(idx, PREC_NONE, 'i')
                             for idx in expr.index[::-1])))
 
-            if ary.dtype == np.float32:
+            if ary.dtype.numpy_dtype == np.float32:
                 return base_access+".x"
             if self.kernel.target.is_vector_dtype(ary.dtype):
                 return base_access
-            elif ary.dtype == np.float64:
+            elif ary.dtype.numpy_dtype == np.float64:
                 return "as_double(%s.xy)" % base_access
             else:
                 raise NotImplementedError(