diff --git a/loopy/library/function.py b/loopy/library/function.py index efa590371bb632cbc9776078ea6b5c64f626d46a..f3d14516c981230283fa0f294ba4484eae26c49c 100644 --- a/loopy/library/function.py +++ b/loopy/library/function.py @@ -25,8 +25,9 @@ THE SOFTWARE. def default_function_mangler(kernel, name, arg_dtypes): from loopy.library.reduction import reduction_function_mangler + from loopy.library.tuple import tuple_function_mangler - manglers = [reduction_function_mangler] + manglers = [reduction_function_mangler, tuple_function_mangler] for mangler in manglers: result = mangler(kernel, name, arg_dtypes) if result is not None: diff --git a/loopy/type_inference.py b/loopy/type_inference.py index 78d817ce73724d90a6cc6f380b24290971f6c1e7..3fb165ead5634d1efbf899a5a05ef9be4355d672 100644 --- a/loopy/type_inference.py +++ b/loopy/type_inference.py @@ -442,7 +442,7 @@ def _infer_var_type(kernel, var_name, type_inf_mapper, subst_expander): result_i = comp_dtype_set break - assert found + assert found, var_name if result_i is not None: result.append(result_i) diff --git a/test/test_target.py b/test/test_target.py index b656383e7bbe008892f45159faadd2d195d67a3b..4b09829e163efebde878268881eff67b3dca8e5e 100644 --- a/test/test_target.py +++ b/test/test_target.py @@ -176,6 +176,19 @@ def test_random123(ctx_factory, tp): assert (0 <= out).all() +def test_tuple(): + knl = lp.make_kernel( + "{ [i]: 0 <= i < 10 }", + """ + a, b = make_tuple(1, 2) + """) + + print( + lp.generate_code( + lp.get_one_scheduled_kernel( + lp.preprocess_kernel(knl)))[0]) + + def test_clamp(ctx_factory): ctx = ctx_factory() queue = cl.CommandQueue(ctx)