'Type the intrinsic by the arguments.'

def generic(self, args, kws):

    from numba.targets.imputils import lower_builtin
    cache_key = (self.context, args, tuple(kws.items()))
    try:
        return self._impl_cache[cache_key]
    except KeyError:
        result = self._definition_func(self.context, *args, **kws)
        if (result is None):
            return
        [sig, imp] = result
        pysig = utils.pysignature(self._definition_func)
        parameters = list(pysig.parameters.values())[1:]
        sig.pysig = pysig.replace(parameters=parameters)
        self._impl_cache[cache_key] = sig
        self._overload_cache[sig.args] = imp
        lower_builtin(imp, *sig.args)(imp)
        return sig
