def test_mismatch_type_mod(self) -> None: with self.assertRaises(pt.TypeCheckError): pt.Program("module").add_func( "foo", (), pt.Int32_t, pt.Block([pt.Return(pt.Mod(pt.Int8(2), pt.Int32(2)))]), ) with self.assertRaises(pt.TypeCheckError): pt.Program("module").add_func( "foo", (), pt.Int32_t, pt.Block([pt.Return(pt.Mod(pt.Int32(2), pt.Int8(2)))]), ) with self.assertRaises(pt.TypeCheckError): pt.Program("module").add_func( "foo", (), pt.Int64_t, pt.Block([pt.Return(pt.Mod(pt.Int16(2), pt.Int64(2)))]), ) with self.assertRaises(pt.TypeCheckError): pt.Program("module").add_func( "foo", (), pt.Int64_t, pt.Block([pt.Return(pt.Mod(pt.Int64(2), pt.Int16(2)))]), )
def test_mismatch_type_deref(self) -> None: with self.assertRaises(pt.TypeCheckError): pt.Program("module").add_func( "foo", (), pt.Int32_t, pt.Block([pt.Return(pt.Deref(pt.Int64(123)))]), ) with self.assertRaises(pt.TypeCheckError): pt.Program("module").add_func( "foo", (ptr, ), (), pt.Block([ pt.DefineVar(v32, pt.Deref(pt.Var(ptr))), ]))
a64 = pt.Symbol(pt.Int64_t, "a64") b64 = pt.Symbol(pt.Int64_t, "b64") c64 = pt.Symbol(pt.Int64_t, "c64") d64 = pt.Symbol(pt.Int64_t, "d64") e64 = pt.Symbol(pt.Int64_t, "e64") f64 = pt.Symbol(pt.Int64_t, "f64") g64 = pt.Symbol(pt.Int64_t, "g64") h64 = pt.Symbol(pt.Int64_t, "h64") i64 = pt.Symbol(pt.Int64_t, "i64") program.add_func( "add_i64", (), pt.Int64_t, pt.Block([ pt.DefineVar(a64, pt.Add(pt.Int64(-11), pt.Int64(-4))), pt.DefineVar(b64, pt.Add(pt.Int64(-11), pt.Int64(0))), pt.DefineVar(c64, pt.Add(pt.Int64(-11), pt.Int64(7))), pt.DefineVar(d64, pt.Add(pt.Int64(0), pt.Int64(-5))), pt.DefineVar(e64, pt.Add(pt.Int64(0), pt.Int64(0))), pt.DefineVar(f64, pt.Add(pt.Int64(0), pt.Int64(3))), pt.DefineVar(g64, pt.Add(pt.Int64(7), pt.Int64(-8))), pt.DefineVar(h64, pt.Add(pt.Int64(7), pt.Int64(0))), pt.DefineVar(i64, pt.Add(pt.Int64(7), pt.Int64(8))), pt.Return( pt.Add( pt.Var(a64), pt.Add( pt.Var(b64), pt.Add( pt.Var(c64),
def test_above_bounds_i64(self) -> None: with self.assertRaises(pt.ValidateError): pt.Int64(2**63)
def test_below_bounds_i64(self) -> None: with self.assertRaises(pt.ValidateError): pt.Int64(-(2**63) - 1)
# Int32_t functions. program.add_func("return_m2_i32", (), pt.Int32_t, pt.Block([pt.Return(pt.Int32(-2))])) program.add_func("return_0_i32", (), pt.Int32_t, pt.Block([pt.Return(pt.Int32(0))])) program.add_func("return_2_i32", (), pt.Int32_t, pt.Block([pt.Return(pt.Int32(2))])) # Int64_t functions. program.add_func("return_m2_i64", (), pt.Int64_t, pt.Block([pt.Return(pt.Int64(-2))])) program.add_func("return_0_i64", (), pt.Int64_t, pt.Block([pt.Return(pt.Int64(0))])) program.add_func("return_2_i64", (), pt.Int64_t, pt.Block([pt.Return(pt.Int64(2))])) class ConstantsTestCase(unittest.TestCase): def setUp(self) -> None: self.engine = program.compile() # Int8_t return_m2_i8 = self.engine.get_function_address("return_m2_i8")
parent_ptr, point_ptr, domain_ptr, ), legion_logical_region_t, pt.Block([ pt.DefineVar( point1d, pt.Call("legion_domain_point_get_point_1d", [pt.Deref(pt.Var(point_ptr))])), pt.DefineVar( point1d_x, pt.GetElement(pt.Var(point1d), name="x"), ), pt.DefineVar(x, pt.GetElement(pt.Var(point1d_x), idx=0)), pt.DefineVar(x_plus_1, pt.Add(pt.Var(x), pt.Int64(1))), pt.DefineVar(point1d_x_plus_1_x), pt.Assign( pt.Var(point1d_x_plus_1_x), pt.SetElement(pt.Var(point1d_x_plus_1_x), pt.Var(x_plus_1), 0), ), pt.DefineVar(point1d_x_plus_1), pt.Assign( pt.Var(point1d_x_plus_1), pt.SetElement(pt.Var(point1d_x_plus_1), pt.Var(point1d_x_plus_1_x), name="x"), ), pt.DefineVar( domain_point_x_plus_1, pt.Call("legion_domain_point_from_point_1d",
# void free( void* ptr); program.add_func_decl("free", (Pointer_Int64_t, ), ()) # void* memset ( void* ptr, int value, size_t num ); program.add_func_decl("memset", (Pointer_Int64_t, pt.Int32_t, pt.Int64_t), Pointer_Int64_t) ptr = pt.Symbol(Pointer_Int64_t, "ptr") val = pt.Symbol(pt.Int64_t, "val") v32 = pt.Symbol(pt.Int32_t, "val") program.add_func( "malloc_free", (), pt.Int32_t, pt.Block([ pt.DefineVar(ptr, pt.Call("malloc", [pt.Int64(8)])), pt.Call("free", [pt.Var(ptr)]), pt.Return(pt.Int32(1)), ]), ) program.add_func( "malloc_memset", (), pt.Int64_t, pt.Block([ pt.DefineVar(ptr, pt.Call("malloc", [pt.Int64(8)])), pt.Assign( pt.Var(ptr), pt.Call("memset", [pt.Var(ptr), pt.Int32(0x3A),