diff --git a/loopy/kernel.py b/loopy/kernel.py index 5e2a060e64c7f2ea0f78d76b1aea697036b84168..4ac55c12a0160a0319322ea28d6adf731f8b3f7a 100644 --- a/loopy/kernel.py +++ b/loopy/kernel.py @@ -876,6 +876,12 @@ class LoopKernel(Record): # }}} + index_dtype = np.dtype(index_dtype) + if index_dtype.kind != 'i': + raise TypeError("index_dtype must be an integer") + if np.iinfo(index_dtype).min >= 0: + raise TypeError("index_dtype must be signed") + Record.__init__(self, device=device, domains=domains, instructions=parsed_instructions, @@ -897,7 +903,7 @@ class LoopKernel(Record): applied_iname_rewrites=applied_iname_rewrites, function_manglers=function_manglers, symbol_manglers=symbol_manglers, - index_dtype=np.dtype(index_dtype)) + index_dtype=index_dtype) # {{{ function mangling