code: def check_argument_type(dtype, kernel_argument, i):
      
      types_map = {"uint8": ["uchar", "unsigned char", "uint8_t"],
                   "int8": ["char", "int8_t"],
                   "uint16": ["ushort", "unsigned short", "uint16_t"],
                   "int16": ["short", "int16_t"],
                   "uint32": ["uint", "unsigned int", "uint32_t"],
                   "int32": ["int", "int32_t"],   #discrepancy between OpenCL and C here, long may be 32bits in C
                   "uint64": ["ulong", "unsigned long", "uint64_t"],
                   "int64": ["long", "int64_t"],
                   "float16": ["half"],
                   "float32": ["float"],
                   "float64": ["double"]}
      if dtype in types_map:
          return any([substr in kernel_argument for substr in types_map[dtype]])
      else:
          return False
docs: check if the numpy.dtype matches the type used in the code