code: def test_XOR_inplace():
      dtype = [
          "int8",
          "int16",
          "int32",
          "int64",
      ]
  
      for dtype in dtype:
          x, y = vector(dtype=dtype), vector(dtype=dtype)
          l = _asarray([0, 0, 1, 1], dtype=dtype)
          r = _asarray([0, 1, 0, 1], dtype=dtype)
          ix = x
          ix = xor_inplace(ix, y)
          gn = inplace_func([x, y], ix)
          _ = gn(l, r)
          # test the in-place stuff
          assert np.all(l == np.asarray([0, 1, 1, 0])), l
  
file_path: pytensor/tests/tensor/test_inplace.py
imports: import numpy
  import pytest
  from pytensor import config
  from pytensor.misc.safe_asarray import _asarray
  from pytensor.scalar.basic import round_half_away_from_zero_vec, upcast
  from pytensor.tensor.inplace import abs_inplace, add_inplace, arccos_inplace, arccosh_inplace, arcsin_inplace, arcsinh_inplace, arctan2_inplace, arctan_inplace, arctanh_inplace, ceil_inplace, conj_inplace, cos_inplace, cosh_inplace, deg2rad_inplace, exp2_inplace, exp_inplace, expm1_inplace, floor_inplace, int_div_inplace, log1p_inplace, log2_inplace, log10_inplace, log_inplace, maximum_inplace, minimum_inplace, mod_inplace, mul_inplace, neg_inplace, pow_inplace, rad2deg_inplace, reciprocal_inplace, round_half_away_from_zero_inplace, round_half_to_even_inplace, sign_inplace, sin_inplace, sinh_inplace, sqr_inplace, sqrt_inplace, sub_inplace, tan_inplace, tanh_inplace, true_div_inplace, trunc_inplace, xor_inplace
  from pytensor.tensor.type import vector
  from tests import unittest_tools
  from tests.tensor.utils import _bad_build_broadcast_binary_normal, _bad_runtime_broadcast_binary_normal, _bad_runtime_reciprocal, _good_broadcast_binary_arctan2, _good_broadcast_binary_normal, _good_broadcast_div_mod_normal_float_inplace, _good_broadcast_pow_normal_float_pow, _good_broadcast_unary_arccosh, _good_broadcast_unary_arcsin_float, _good_broadcast_unary_arctanh, _good_broadcast_unary_normal, _good_broadcast_unary_normal_abs, _good_broadcast_unary_normal_float, _good_broadcast_unary_normal_float_no_complex, _good_broadcast_unary_normal_float_no_empty_no_complex, _good_broadcast_unary_normal_no_complex, _good_broadcast_unary_positive_float, _good_broadcast_unary_tan, _good_broadcast_unary_wide_float, _good_reciprocal_inplace, _numpy_true_div, angle_eps, check_floatX, copymod, div_grad_rtol, ignore_isfinite_mode, inplace_func, makeBroadcastTester, upcast_float16_ufunc
label_desc: Use image node_id 2 for calling a global function with example usage: test_XOR_inplace() without return types