The Swift Package Index logo.Swift Package Index

Build Information

Successful build of mlx-swift, reference main (61b9e0), with Swift 6.4 for macOS (SPM) on 25 Sep 2026 16:29:03 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64

Build Log

  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:251:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<unsigned short, unsigned short, true, mlx::core::VectorScalar<mlx::core::detail::RightShift>>' requested here
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned short, unsigned short, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:490:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned short, mlx::core::detail::RightShift>' requested here
  490 |         binary_op<uint16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<unsigned short, unsigned short, mlx::core::ScalarVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:263:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<unsigned short, unsigned short, true, mlx::core::ScalarVector<mlx::core::detail::RightShift>>' requested here
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned short, unsigned short, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:490:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned short, mlx::core::detail::RightShift>' requested here
  490 |         binary_op<uint16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:191:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  191 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:196:19: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  196 |   auto a_rc_dim = leftmost_rc_dim(a_strides);
      |                   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned int, unsigned int, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:493:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned int, mlx::core::detail::RightShift>' requested here
  493 |         binary_op<uint32_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:201:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  201 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:206:18: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  206 |   auto a_s_dim = leftmost_s_dim(a_strides);
      |                  ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned int, unsigned int, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:493:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned int, mlx::core::detail::RightShift>' requested here
  493 |         binary_op<uint32_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:166:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  166 |     ScalarVector<Op>{}(a_ptr, b_ptr, out_ptr, b.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned int, unsigned int, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:493:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned int, mlx::core::detail::RightShift>' requested here
  493 |         binary_op<uint32_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:172:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  172 |     VectorScalar<Op>{}(a_ptr, b_ptr, out_ptr, a.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:178:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  178 |     VectorVector<Op>{}(a_ptr, b_ptr, out_ptr, a.size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:213:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  213 |   int dim = ndim;
      |       ~~~   ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:234:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  234 |     dim = ndim;
      |         ~ ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:244:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  240 |           a_ptr,
  241 |           b_ptr,
  242 |           out_ptr,
  243 |           dim,
  244 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:256:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  252 |           a_ptr,
  253 |           b_ptr,
  254 |           out_ptr,
  255 |           dim,
  256 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:268:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  264 |           a_ptr,
  265 |           b_ptr,
  266 |           out_ptr,
  267 |           dim,
  268 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:280:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  275 |       binary_op_dispatch_dims<T, U, false, Op>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  276 |           a_ptr,
  277 |           b_ptr,
  278 |           out_ptr,
  279 |           dim,
  280 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<unsigned int, unsigned int, mlx::core::VectorVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:239:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<unsigned int, unsigned int, true, mlx::core::VectorVector<mlx::core::detail::RightShift>>' requested here
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned int, unsigned int, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:493:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned int, mlx::core::detail::RightShift>' requested here
  493 |         binary_op<uint32_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<unsigned int, unsigned int, mlx::core::VectorScalar<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:251:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<unsigned int, unsigned int, true, mlx::core::VectorScalar<mlx::core::detail::RightShift>>' requested here
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned int, unsigned int, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:493:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned int, mlx::core::detail::RightShift>' requested here
  493 |         binary_op<uint32_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<unsigned int, unsigned int, mlx::core::ScalarVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:263:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<unsigned int, unsigned int, true, mlx::core::ScalarVector<mlx::core::detail::RightShift>>' requested here
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned int, unsigned int, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:493:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned int, mlx::core::detail::RightShift>' requested here
  493 |         binary_op<uint32_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:191:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  191 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:196:19: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  196 |   auto a_rc_dim = leftmost_rc_dim(a_strides);
      |                   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned long long, unsigned long long, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:496:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned long long, mlx::core::detail::RightShift>' requested here
  496 |         binary_op<uint64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:201:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  201 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:206:18: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  206 |   auto a_s_dim = leftmost_s_dim(a_strides);
      |                  ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned long long, unsigned long long, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:496:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned long long, mlx::core::detail::RightShift>' requested here
  496 |         binary_op<uint64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:166:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  166 |     ScalarVector<Op>{}(a_ptr, b_ptr, out_ptr, b.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned long long, unsigned long long, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:496:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned long long, mlx::core::detail::RightShift>' requested here
  496 |         binary_op<uint64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:172:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  172 |     VectorScalar<Op>{}(a_ptr, b_ptr, out_ptr, a.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:178:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  178 |     VectorVector<Op>{}(a_ptr, b_ptr, out_ptr, a.size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:213:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  213 |   int dim = ndim;
      |       ~~~   ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:234:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  234 |     dim = ndim;
      |         ~ ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:244:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  240 |           a_ptr,
  241 |           b_ptr,
  242 |           out_ptr,
  243 |           dim,
  244 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:256:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  252 |           a_ptr,
  253 |           b_ptr,
  254 |           out_ptr,
  255 |           dim,
  256 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:268:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  264 |           a_ptr,
  265 |           b_ptr,
  266 |           out_ptr,
  267 |           dim,
  268 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:280:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  275 |       binary_op_dispatch_dims<T, U, false, Op>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  276 |           a_ptr,
  277 |           b_ptr,
  278 |           out_ptr,
  279 |           dim,
  280 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<unsigned long long, unsigned long long, mlx::core::VectorVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:239:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<unsigned long long, unsigned long long, true, mlx::core::VectorVector<mlx::core::detail::RightShift>>' requested here
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned long long, unsigned long long, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:496:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned long long, mlx::core::detail::RightShift>' requested here
  496 |         binary_op<uint64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<unsigned long long, unsigned long long, mlx::core::VectorScalar<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:251:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<unsigned long long, unsigned long long, true, mlx::core::VectorScalar<mlx::core::detail::RightShift>>' requested here
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned long long, unsigned long long, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:496:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned long long, mlx::core::detail::RightShift>' requested here
  496 |         binary_op<uint64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<unsigned long long, unsigned long long, mlx::core::ScalarVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:263:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<unsigned long long, unsigned long long, true, mlx::core::ScalarVector<mlx::core::detail::RightShift>>' requested here
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned long long, unsigned long long, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:496:9: note: in instantiation of function template specialization 'mlx::core::binary_op<unsigned long long, mlx::core::detail::RightShift>' requested here
  496 |         binary_op<uint64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:191:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  191 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:196:19: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  196 |   auto a_rc_dim = leftmost_rc_dim(a_strides);
      |                   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<signed char, signed char, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:499:9: note: in instantiation of function template specialization 'mlx::core::binary_op<signed char, mlx::core::detail::RightShift>' requested here
  499 |         binary_op<int8_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:201:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  201 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:206:18: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  206 |   auto a_s_dim = leftmost_s_dim(a_strides);
      |                  ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<signed char, signed char, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:499:9: note: in instantiation of function template specialization 'mlx::core::binary_op<signed char, mlx::core::detail::RightShift>' requested here
  499 |         binary_op<int8_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:166:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  166 |     ScalarVector<Op>{}(a_ptr, b_ptr, out_ptr, b.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<signed char, signed char, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:499:9: note: in instantiation of function template specialization 'mlx::core::binary_op<signed char, mlx::core::detail::RightShift>' requested here
  499 |         binary_op<int8_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:172:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  172 |     VectorScalar<Op>{}(a_ptr, b_ptr, out_ptr, a.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:178:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  178 |     VectorVector<Op>{}(a_ptr, b_ptr, out_ptr, a.size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:213:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  213 |   int dim = ndim;
      |       ~~~   ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:234:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  234 |     dim = ndim;
      |         ~ ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:244:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  240 |           a_ptr,
  241 |           b_ptr,
  242 |           out_ptr,
  243 |           dim,
  244 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:256:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  252 |           a_ptr,
  253 |           b_ptr,
  254 |           out_ptr,
  255 |           dim,
  256 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:268:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  264 |           a_ptr,
  265 |           b_ptr,
  266 |           out_ptr,
  267 |           dim,
  268 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:280:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  275 |       binary_op_dispatch_dims<T, U, false, Op>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  276 |           a_ptr,
  277 |           b_ptr,
  278 |           out_ptr,
  279 |           dim,
  280 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<signed char, signed char, mlx::core::VectorVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:239:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<signed char, signed char, true, mlx::core::VectorVector<mlx::core::detail::RightShift>>' requested here
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<signed char, signed char, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:499:9: note: in instantiation of function template specialization 'mlx::core::binary_op<signed char, mlx::core::detail::RightShift>' requested here
  499 |         binary_op<int8_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<signed char, signed char, mlx::core::VectorScalar<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:251:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<signed char, signed char, true, mlx::core::VectorScalar<mlx::core::detail::RightShift>>' requested here
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<signed char, signed char, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:499:9: note: in instantiation of function template specialization 'mlx::core::binary_op<signed char, mlx::core::detail::RightShift>' requested here
  499 |         binary_op<int8_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<signed char, signed char, mlx::core::ScalarVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:263:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<signed char, signed char, true, mlx::core::ScalarVector<mlx::core::detail::RightShift>>' requested here
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<signed char, signed char, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:499:9: note: in instantiation of function template specialization 'mlx::core::binary_op<signed char, mlx::core::detail::RightShift>' requested here
  499 |         binary_op<int8_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:191:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  191 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:196:19: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  196 |   auto a_rc_dim = leftmost_rc_dim(a_strides);
      |                   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<short, short, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:502:9: note: in instantiation of function template specialization 'mlx::core::binary_op<short, mlx::core::detail::RightShift>' requested here
  502 |         binary_op<int16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:201:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  201 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:206:18: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  206 |   auto a_s_dim = leftmost_s_dim(a_strides);
      |                  ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<short, short, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:502:9: note: in instantiation of function template specialization 'mlx::core::binary_op<short, mlx::core::detail::RightShift>' requested here
  502 |         binary_op<int16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:166:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  166 |     ScalarVector<Op>{}(a_ptr, b_ptr, out_ptr, b.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<short, short, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:502:9: note: in instantiation of function template specialization 'mlx::core::binary_op<short, mlx::core::detail::RightShift>' requested here
  502 |         binary_op<int16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:172:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  172 |     VectorScalar<Op>{}(a_ptr, b_ptr, out_ptr, a.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:178:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  178 |     VectorVector<Op>{}(a_ptr, b_ptr, out_ptr, a.size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:213:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  213 |   int dim = ndim;
      |       ~~~   ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:234:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  234 |     dim = ndim;
      |         ~ ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:244:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  240 |           a_ptr,
  241 |           b_ptr,
  242 |           out_ptr,
  243 |           dim,
  244 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:256:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  252 |           a_ptr,
  253 |           b_ptr,
  254 |           out_ptr,
  255 |           dim,
  256 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:268:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  264 |           a_ptr,
  265 |           b_ptr,
  266 |           out_ptr,
  267 |           dim,
  268 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:280:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  275 |       binary_op_dispatch_dims<T, U, false, Op>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  276 |           a_ptr,
  277 |           b_ptr,
  278 |           out_ptr,
  279 |           dim,
  280 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<short, short, mlx::core::VectorVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:239:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<short, short, true, mlx::core::VectorVector<mlx::core::detail::RightShift>>' requested here
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<short, short, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:502:9: note: in instantiation of function template specialization 'mlx::core::binary_op<short, mlx::core::detail::RightShift>' requested here
  502 |         binary_op<int16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<short, short, mlx::core::VectorScalar<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:251:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<short, short, true, mlx::core::VectorScalar<mlx::core::detail::RightShift>>' requested here
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<short, short, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:502:9: note: in instantiation of function template specialization 'mlx::core::binary_op<short, mlx::core::detail::RightShift>' requested here
  502 |         binary_op<int16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<short, short, mlx::core::ScalarVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:263:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<short, short, true, mlx::core::ScalarVector<mlx::core::detail::RightShift>>' requested here
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<short, short, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:502:9: note: in instantiation of function template specialization 'mlx::core::binary_op<short, mlx::core::detail::RightShift>' requested here
  502 |         binary_op<int16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:191:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  191 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:196:19: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  196 |   auto a_rc_dim = leftmost_rc_dim(a_strides);
      |                   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<int, int, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:505:9: note: in instantiation of function template specialization 'mlx::core::binary_op<int, mlx::core::detail::RightShift>' requested here
  505 |         binary_op<int32_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:201:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  201 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:206:18: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  206 |   auto a_s_dim = leftmost_s_dim(a_strides);
      |                  ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<int, int, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:505:9: note: in instantiation of function template specialization 'mlx::core::binary_op<int, mlx::core::detail::RightShift>' requested here
  505 |         binary_op<int32_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:166:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  166 |     ScalarVector<Op>{}(a_ptr, b_ptr, out_ptr, b.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<int, int, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:505:9: note: in instantiation of function template specialization 'mlx::core::binary_op<int, mlx::core::detail::RightShift>' requested here
  505 |         binary_op<int32_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:172:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  172 |     VectorScalar<Op>{}(a_ptr, b_ptr, out_ptr, a.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:178:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  178 |     VectorVector<Op>{}(a_ptr, b_ptr, out_ptr, a.size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:213:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  213 |   int dim = ndim;
      |       ~~~   ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:234:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  234 |     dim = ndim;
      |         ~ ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:244:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  240 |           a_ptr,
  241 |           b_ptr,
  242 |           out_ptr,
  243 |           dim,
  244 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:256:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  252 |           a_ptr,
  253 |           b_ptr,
  254 |           out_ptr,
  255 |           dim,
  256 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:268:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  264 |           a_ptr,
  265 |           b_ptr,
  266 |           out_ptr,
  267 |           dim,
  268 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:280:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  275 |       binary_op_dispatch_dims<T, U, false, Op>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  276 |           a_ptr,
  277 |           b_ptr,
  278 |           out_ptr,
  279 |           dim,
  280 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<int, int, mlx::core::VectorVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:239:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<int, int, true, mlx::core::VectorVector<mlx::core::detail::RightShift>>' requested here
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<int, int, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:505:9: note: in instantiation of function template specialization 'mlx::core::binary_op<int, mlx::core::detail::RightShift>' requested here
  505 |         binary_op<int32_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<int, int, mlx::core::VectorScalar<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:251:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<int, int, true, mlx::core::VectorScalar<mlx::core::detail::RightShift>>' requested here
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<int, int, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:505:9: note: in instantiation of function template specialization 'mlx::core::binary_op<int, mlx::core::detail::RightShift>' requested here
  505 |         binary_op<int32_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<int, int, mlx::core::ScalarVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:263:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<int, int, true, mlx::core::ScalarVector<mlx::core::detail::RightShift>>' requested here
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<int, int, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:505:9: note: in instantiation of function template specialization 'mlx::core::binary_op<int, mlx::core::detail::RightShift>' requested here
  505 |         binary_op<int32_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:191:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  191 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:196:19: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  196 |   auto a_rc_dim = leftmost_rc_dim(a_strides);
      |                   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<long long, long long, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:508:9: note: in instantiation of function template specialization 'mlx::core::binary_op<long long, mlx::core::detail::RightShift>' requested here
  508 |         binary_op<int64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:201:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  201 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:206:18: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  206 |   auto a_s_dim = leftmost_s_dim(a_strides);
      |                  ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<long long, long long, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:508:9: note: in instantiation of function template specialization 'mlx::core::binary_op<long long, mlx::core::detail::RightShift>' requested here
  508 |         binary_op<int64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:166:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  166 |     ScalarVector<Op>{}(a_ptr, b_ptr, out_ptr, b.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<long long, long long, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:508:9: note: in instantiation of function template specialization 'mlx::core::binary_op<long long, mlx::core::detail::RightShift>' requested here
  508 |         binary_op<int64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:172:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  172 |     VectorScalar<Op>{}(a_ptr, b_ptr, out_ptr, a.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:178:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  178 |     VectorVector<Op>{}(a_ptr, b_ptr, out_ptr, a.size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:213:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  213 |   int dim = ndim;
      |       ~~~   ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:234:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  234 |     dim = ndim;
      |         ~ ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:244:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  240 |           a_ptr,
  241 |           b_ptr,
  242 |           out_ptr,
  243 |           dim,
  244 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:256:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  252 |           a_ptr,
  253 |           b_ptr,
  254 |           out_ptr,
  255 |           dim,
  256 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:268:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  264 |           a_ptr,
  265 |           b_ptr,
  266 |           out_ptr,
  267 |           dim,
  268 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:280:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  275 |       binary_op_dispatch_dims<T, U, false, Op>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  276 |           a_ptr,
  277 |           b_ptr,
  278 |           out_ptr,
  279 |           dim,
  280 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<long long, long long, mlx::core::VectorVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:239:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<long long, long long, true, mlx::core::VectorVector<mlx::core::detail::RightShift>>' requested here
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<long long, long long, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:508:9: note: in instantiation of function template specialization 'mlx::core::binary_op<long long, mlx::core::detail::RightShift>' requested here
  508 |         binary_op<int64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<long long, long long, mlx::core::VectorScalar<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:251:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<long long, long long, true, mlx::core::VectorScalar<mlx::core::detail::RightShift>>' requested here
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<long long, long long, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:508:9: note: in instantiation of function template specialization 'mlx::core::binary_op<long long, mlx::core::detail::RightShift>' requested here
  508 |         binary_op<int64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<long long, long long, mlx::core::ScalarVector<mlx::core::detail::RightShift>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:263:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<long long, long long, true, mlx::core::ScalarVector<mlx::core::detail::RightShift>>' requested here
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<long long, long long, mlx::core::detail::RightShift>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:508:9: note: in instantiation of function template specialization 'mlx::core::binary_op<long long, mlx::core::detail::RightShift>' requested here
  508 |         binary_op<int64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:257:7: note: in instantiation of function template specialization 'mlx::core::binary_int_op_cpu<mlx::core::detail::RightShift>' requested here
  257 |       binary_int_op_cpu(a, b, out, detail::RightShift(), stream());
      |       ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:191:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  191 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:196:19: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  196 |   auto a_rc_dim = leftmost_rc_dim(a_strides);
      |                   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<__fp16, __fp16, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:444:9: note: in instantiation of function template specialization 'mlx::core::binary_op<__fp16, mlx::core::detail::ArcTan2>' requested here
  444 |         binary_op<float16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:201:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  201 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:206:18: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  206 |   auto a_s_dim = leftmost_s_dim(a_strides);
      |                  ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<__fp16, __fp16, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:444:9: note: in instantiation of function template specialization 'mlx::core::binary_op<__fp16, mlx::core::detail::ArcTan2>' requested here
  444 |         binary_op<float16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:166:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  166 |     ScalarVector<Op>{}(a_ptr, b_ptr, out_ptr, b.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<__fp16, __fp16, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:444:9: note: in instantiation of function template specialization 'mlx::core::binary_op<__fp16, mlx::core::detail::ArcTan2>' requested here
  444 |         binary_op<float16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:172:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  172 |     VectorScalar<Op>{}(a_ptr, b_ptr, out_ptr, a.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:178:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  178 |     VectorVector<Op>{}(a_ptr, b_ptr, out_ptr, a.size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:213:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  213 |   int dim = ndim;
      |       ~~~   ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:234:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  234 |     dim = ndim;
      |         ~ ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:244:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  240 |           a_ptr,
  241 |           b_ptr,
  242 |           out_ptr,
  243 |           dim,
  244 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:256:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  252 |           a_ptr,
  253 |           b_ptr,
  254 |           out_ptr,
  255 |           dim,
  256 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:268:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  264 |           a_ptr,
  265 |           b_ptr,
  266 |           out_ptr,
  267 |           dim,
  268 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:280:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  275 |       binary_op_dispatch_dims<T, U, false, Op>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  276 |           a_ptr,
  277 |           b_ptr,
  278 |           out_ptr,
  279 |           dim,
  280 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<__fp16, __fp16, mlx::core::VectorVector<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:239:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<__fp16, __fp16, true, mlx::core::VectorVector<mlx::core::detail::ArcTan2>>' requested here
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<__fp16, __fp16, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:444:9: note: in instantiation of function template specialization 'mlx::core::binary_op<__fp16, mlx::core::detail::ArcTan2>' requested here
  444 |         binary_op<float16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<__fp16, __fp16, mlx::core::VectorScalar<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:251:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<__fp16, __fp16, true, mlx::core::VectorScalar<mlx::core::detail::ArcTan2>>' requested here
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<__fp16, __fp16, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:444:9: note: in instantiation of function template specialization 'mlx::core::binary_op<__fp16, mlx::core::detail::ArcTan2>' requested here
  444 |         binary_op<float16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<__fp16, __fp16, mlx::core::ScalarVector<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:263:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<__fp16, __fp16, true, mlx::core::ScalarVector<mlx::core::detail::ArcTan2>>' requested here
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<__fp16, __fp16, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:444:9: note: in instantiation of function template specialization 'mlx::core::binary_op<__fp16, mlx::core::detail::ArcTan2>' requested here
  444 |         binary_op<float16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:191:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  191 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:196:19: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  196 |   auto a_rc_dim = leftmost_rc_dim(a_strides);
      |                   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<float, float, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:447:9: note: in instantiation of function template specialization 'mlx::core::binary_op<float, mlx::core::detail::ArcTan2>' requested here
  447 |         binary_op<float, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:201:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  201 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:206:18: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  206 |   auto a_s_dim = leftmost_s_dim(a_strides);
      |                  ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<float, float, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:447:9: note: in instantiation of function template specialization 'mlx::core::binary_op<float, mlx::core::detail::ArcTan2>' requested here
  447 |         binary_op<float, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:166:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  166 |     ScalarVector<Op>{}(a_ptr, b_ptr, out_ptr, b.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<float, float, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:447:9: note: in instantiation of function template specialization 'mlx::core::binary_op<float, mlx::core::detail::ArcTan2>' requested here
  447 |         binary_op<float, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:172:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  172 |     VectorScalar<Op>{}(a_ptr, b_ptr, out_ptr, a.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:178:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  178 |     VectorVector<Op>{}(a_ptr, b_ptr, out_ptr, a.size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:213:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  213 |   int dim = ndim;
      |       ~~~   ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:234:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  234 |     dim = ndim;
      |         ~ ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:244:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  240 |           a_ptr,
  241 |           b_ptr,
  242 |           out_ptr,
  243 |           dim,
  244 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:256:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  252 |           a_ptr,
  253 |           b_ptr,
  254 |           out_ptr,
  255 |           dim,
  256 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:268:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  264 |           a_ptr,
  265 |           b_ptr,
  266 |           out_ptr,
  267 |           dim,
  268 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:280:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  275 |       binary_op_dispatch_dims<T, U, false, Op>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  276 |           a_ptr,
  277 |           b_ptr,
  278 |           out_ptr,
  279 |           dim,
  280 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<float, float, mlx::core::VectorVector<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:239:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<float, float, true, mlx::core::VectorVector<mlx::core::detail::ArcTan2>>' requested here
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<float, float, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:447:9: note: in instantiation of function template specialization 'mlx::core::binary_op<float, mlx::core::detail::ArcTan2>' requested here
  447 |         binary_op<float, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<float, float, mlx::core::VectorScalar<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:251:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<float, float, true, mlx::core::VectorScalar<mlx::core::detail::ArcTan2>>' requested here
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<float, float, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:447:9: note: in instantiation of function template specialization 'mlx::core::binary_op<float, mlx::core::detail::ArcTan2>' requested here
  447 |         binary_op<float, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<float, float, mlx::core::ScalarVector<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:263:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<float, float, true, mlx::core::ScalarVector<mlx::core::detail::ArcTan2>>' requested here
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<float, float, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:447:9: note: in instantiation of function template specialization 'mlx::core::binary_op<float, mlx::core::detail::ArcTan2>' requested here
  447 |         binary_op<float, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:191:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  191 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:196:19: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  196 |   auto a_rc_dim = leftmost_rc_dim(a_strides);
      |                   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<double, double, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:450:9: note: in instantiation of function template specialization 'mlx::core::binary_op<double, mlx::core::detail::ArcTan2>' requested here
  450 |         binary_op<double, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:201:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  201 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:206:18: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  206 |   auto a_s_dim = leftmost_s_dim(a_strides);
      |                  ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<double, double, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:450:9: note: in instantiation of function template specialization 'mlx::core::binary_op<double, mlx::core::detail::ArcTan2>' requested here
  450 |         binary_op<double, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:166:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  166 |     ScalarVector<Op>{}(a_ptr, b_ptr, out_ptr, b.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<double, double, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:450:9: note: in instantiation of function template specialization 'mlx::core::binary_op<double, mlx::core::detail::ArcTan2>' requested here
  450 |         binary_op<double, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:172:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  172 |     VectorScalar<Op>{}(a_ptr, b_ptr, out_ptr, a.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:178:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  178 |     VectorVector<Op>{}(a_ptr, b_ptr, out_ptr, a.size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:213:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  213 |   int dim = ndim;
      |       ~~~   ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:234:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  234 |     dim = ndim;
      |         ~ ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:244:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  240 |           a_ptr,
  241 |           b_ptr,
  242 |           out_ptr,
  243 |           dim,
  244 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:256:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  252 |           a_ptr,
  253 |           b_ptr,
  254 |           out_ptr,
  255 |           dim,
  256 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:268:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  264 |           a_ptr,
  265 |           b_ptr,
  266 |           out_ptr,
  267 |           dim,
  268 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:280:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  275 |       binary_op_dispatch_dims<T, U, false, Op>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  276 |           a_ptr,
  277 |           b_ptr,
  278 |           out_ptr,
  279 |           dim,
  280 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<double, double, mlx::core::VectorVector<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:239:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<double, double, true, mlx::core::VectorVector<mlx::core::detail::ArcTan2>>' requested here
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<double, double, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:450:9: note: in instantiation of function template specialization 'mlx::core::binary_op<double, mlx::core::detail::ArcTan2>' requested here
  450 |         binary_op<double, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<double, double, mlx::core::VectorScalar<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:251:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<double, double, true, mlx::core::VectorScalar<mlx::core::detail::ArcTan2>>' requested here
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<double, double, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:450:9: note: in instantiation of function template specialization 'mlx::core::binary_op<double, mlx::core::detail::ArcTan2>' requested here
  450 |         binary_op<double, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<double, double, mlx::core::ScalarVector<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:263:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<double, double, true, mlx::core::ScalarVector<mlx::core::detail::ArcTan2>>' requested here
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<double, double, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:450:9: note: in instantiation of function template specialization 'mlx::core::binary_op<double, mlx::core::detail::ArcTan2>' requested here
  450 |         binary_op<double, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:191:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  191 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:196:19: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  196 |   auto a_rc_dim = leftmost_rc_dim(a_strides);
      |                   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::_MLX_BFloat16, mlx::core::_MLX_BFloat16, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:453:9: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::_MLX_BFloat16, mlx::core::detail::ArcTan2>' requested here
  453 |         binary_op<bfloat16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:201:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  201 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:206:18: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  206 |   auto a_s_dim = leftmost_s_dim(a_strides);
      |                  ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::_MLX_BFloat16, mlx::core::_MLX_BFloat16, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:453:9: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::_MLX_BFloat16, mlx::core::detail::ArcTan2>' requested here
  453 |         binary_op<bfloat16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:166:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  166 |     ScalarVector<Op>{}(a_ptr, b_ptr, out_ptr, b.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::_MLX_BFloat16, mlx::core::_MLX_BFloat16, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:453:9: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::_MLX_BFloat16, mlx::core::detail::ArcTan2>' requested here
  453 |         binary_op<bfloat16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:172:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  172 |     VectorScalar<Op>{}(a_ptr, b_ptr, out_ptr, a.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:178:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  178 |     VectorVector<Op>{}(a_ptr, b_ptr, out_ptr, a.size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:213:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  213 |   int dim = ndim;
      |       ~~~   ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:234:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  234 |     dim = ndim;
      |         ~ ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:244:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  240 |           a_ptr,
  241 |           b_ptr,
  242 |           out_ptr,
  243 |           dim,
  244 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:256:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  252 |           a_ptr,
  253 |           b_ptr,
  254 |           out_ptr,
  255 |           dim,
  256 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:268:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  264 |           a_ptr,
  265 |           b_ptr,
  266 |           out_ptr,
  267 |           dim,
  268 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:280:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  275 |       binary_op_dispatch_dims<T, U, false, Op>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  276 |           a_ptr,
  277 |           b_ptr,
  278 |           out_ptr,
  279 |           dim,
  280 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<mlx::core::_MLX_BFloat16, mlx::core::_MLX_BFloat16, mlx::core::VectorVector<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:239:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<mlx::core::_MLX_BFloat16, mlx::core::_MLX_BFloat16, true, mlx::core::VectorVector<mlx::core::detail::ArcTan2>>' requested here
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::_MLX_BFloat16, mlx::core::_MLX_BFloat16, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:453:9: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::_MLX_BFloat16, mlx::core::detail::ArcTan2>' requested here
  453 |         binary_op<bfloat16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<mlx::core::_MLX_BFloat16, mlx::core::_MLX_BFloat16, mlx::core::VectorScalar<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:251:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<mlx::core::_MLX_BFloat16, mlx::core::_MLX_BFloat16, true, mlx::core::VectorScalar<mlx::core::detail::ArcTan2>>' requested here
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::_MLX_BFloat16, mlx::core::_MLX_BFloat16, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:453:9: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::_MLX_BFloat16, mlx::core::detail::ArcTan2>' requested here
  453 |         binary_op<bfloat16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<mlx::core::_MLX_BFloat16, mlx::core::_MLX_BFloat16, mlx::core::ScalarVector<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:263:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<mlx::core::_MLX_BFloat16, mlx::core::_MLX_BFloat16, true, mlx::core::ScalarVector<mlx::core::detail::ArcTan2>>' requested here
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::_MLX_BFloat16, mlx::core::_MLX_BFloat16, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:453:9: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::_MLX_BFloat16, mlx::core::detail::ArcTan2>' requested here
  453 |         binary_op<bfloat16_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:191:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  191 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:196:19: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  196 |   auto a_rc_dim = leftmost_rc_dim(a_strides);
      |                   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::complex64_t, mlx::core::complex64_t, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:456:9: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::complex64_t, mlx::core::detail::ArcTan2>' requested here
  456 |         binary_op<complex64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:201:32: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  201 |     int d = arr_strides.size() - 1;
      |         ~   ~~~~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:206:18: note: in instantiation of function template specialization 'mlx::core::binary_op(const array &, const array &, array &, BinaryOpType)::(anonymous class)::operator()<mlx::core::SmallVector<long long>>' requested here
  206 |   auto a_s_dim = leftmost_s_dim(a_strides);
      |                  ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::complex64_t, mlx::core::complex64_t, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:456:9: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::complex64_t, mlx::core::detail::ArcTan2>' requested here
  456 |         binary_op<complex64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:166:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  166 |     ScalarVector<Op>{}(a_ptr, b_ptr, out_ptr, b.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::complex64_t, mlx::core::complex64_t, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:456:9: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::complex64_t, mlx::core::detail::ArcTan2>' requested here
  456 |         binary_op<complex64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:172:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  172 |     VectorScalar<Op>{}(a_ptr, b_ptr, out_ptr, a.data_size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:178:49: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  178 |     VectorVector<Op>{}(a_ptr, b_ptr, out_ptr, a.size());
      |     ~~~~~~~~~~~~                              ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:213:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  213 |   int dim = ndim;
      |       ~~~   ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:234:11: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  234 |     dim = ndim;
      |         ~ ^~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:244:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  240 |           a_ptr,
  241 |           b_ptr,
  242 |           out_ptr,
  243 |           dim,
  244 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:256:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  252 |           a_ptr,
  253 |           b_ptr,
  254 |           out_ptr,
  255 |           dim,
  256 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:268:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  264 |           a_ptr,
  265 |           b_ptr,
  266 |           out_ptr,
  267 |           dim,
  268 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:280:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  275 |       binary_op_dispatch_dims<T, U, false, Op>(
      |       ~~~~~~~~~~~~~~~~~~~~~~~
  276 |           a_ptr,
  277 |           b_ptr,
  278 |           out_ptr,
  279 |           dim,
  280 |           a.size(),
      |           ~~^~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<mlx::core::complex64_t, mlx::core::complex64_t, mlx::core::VectorVector<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:239:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<mlx::core::complex64_t, mlx::core::complex64_t, true, mlx::core::VectorVector<mlx::core::detail::ArcTan2>>' requested here
  239 |       binary_op_dispatch_dims<T, U, true, VectorVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::complex64_t, mlx::core::complex64_t, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:456:9: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::complex64_t, mlx::core::detail::ArcTan2>' requested here
  456 |         binary_op<complex64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<mlx::core::complex64_t, mlx::core::complex64_t, mlx::core::VectorScalar<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:251:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<mlx::core::complex64_t, mlx::core::complex64_t, true, mlx::core::VectorScalar<mlx::core::detail::ArcTan2>>' requested here
  251 |       binary_op_dispatch_dims<T, U, true, VectorScalar<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::complex64_t, mlx::core::complex64_t, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:456:9: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::complex64_t, mlx::core::detail::ArcTan2>' requested here
  456 |         binary_op<complex64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
In file included from /Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:8:
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:97:25: warning: implicit conversion loses integer precision: 'long long' to 'int' [-Wshorten-64-to-32]
   97 |         Op{}(a, b, out, stride_out);
      |         ~~              ^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:121:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dims<mlx::core::complex64_t, mlx::core::complex64_t, mlx::core::ScalarVector<mlx::core::detail::ArcTan2>, 1, true>' requested here
  121 |       binary_op_dims<T, U, Op, 1, Strided>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:263:7: note: in instantiation of function template specialization 'mlx::core::binary_op_dispatch_dims<mlx::core::complex64_t, mlx::core::complex64_t, true, mlx::core::ScalarVector<mlx::core::detail::ArcTan2>>' requested here
  263 |       binary_op_dispatch_dims<T, U, true, ScalarVector<Op>>(
      |       ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:291:3: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::complex64_t, mlx::core::complex64_t, mlx::core::detail::ArcTan2>' requested here
  291 |   binary_op<T, T, Op>(a, b, out, bopt);
      |   ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.h:456:9: note: in instantiation of function template specialization 'mlx::core::binary_op<mlx::core::complex64_t, mlx::core::detail::ArcTan2>' requested here
  456 |         binary_op<complex64_t, Op>(a, b, out, bopt);
      |         ^
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx/mlx/backend/cpu/binary.cpp:266:3: note: in instantiation of function template specialization 'mlx::core::binary_float_op_cpu<mlx::core::detail::ArcTan2>' requested here
  266 |   binary_float_op_cpu(a, b, out, detail::ArcTan2(), stream());
      |   ^
3999 warnings generated.
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:1407:34: warning: conditional downcast from 'T?' to 'T' does nothing
1405 |             // note: this gives a warning but it does in fact do something
1406 |             // in the case where this is e.g. ParameterInfo<MLXArray?>
1407 |             if let value = value as? T {
     |                                  `- warning: conditional downcast from 'T?' to 'T' does nothing
1408 |                 return value
1409 |             } else {
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:1520:36: warning: conditional downcast from 'T?' to 'T' does nothing
1518 |             // note: this gives a warning but it does in fact do something
1519 |             // in the case where this is e.g. ModuleInfo<Linear?>
1520 |             if let module = module as? T {
     |                                    `- warning: conditional downcast from 'T?' to 'T' does nothing
1521 |                 return module
1522 |             } else {
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:293:13: warning: default will never be executed
 291 |                 return isAllNone ? .none : .array(result)
 292 |
 293 |             default:
     |             `- warning: default will never be executed
 294 |                 fatalError("Unexpected leaf \(vk) = \(v)")
 295 |             }
Build complete.
{
  "cxx_language_standard" : "gnu++20",
  "dependencies" : [
    {
      "identity" : "swift-numerics",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-numerics"
    }
  ],
  "manifest_display_name" : "mlx-swift",
  "name" : "mlx-swift",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "tvos",
      "version" : "17.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "MLX",
      "targets" : [
        "MLX"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "MLXRandom",
      "targets" : [
        "MLXRandom"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "MLXNN",
      "targets" : [
        "MLXNN"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "MLXOptimizers",
      "targets" : [
        "MLXOptimizers"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "MLXFFT",
      "targets" : [
        "MLXFFT"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "MLXLinalg",
      "targets" : [
        "MLXLinalg"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "MLXFast",
      "targets" : [
        "MLXFast"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Tutorial",
      "targets" : [
        "Tutorial"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "Example1",
      "targets" : [
        "Example1"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "CustomFunctionExampleSimple",
      "targets" : [
        "CustomFunctionExampleSimple"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "CustomFunctionExample",
      "targets" : [
        "CustomFunctionExample"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Tutorial",
      "module_type" : "SwiftTarget",
      "name" : "Tutorial",
      "path" : "Source/Examples",
      "product_memberships" : [
        "Tutorial"
      ],
      "sources" : [
        "Tutorial.swift"
      ],
      "target_dependencies" : [
        "MLX"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "MLXTests",
      "module_type" : "SwiftTarget",
      "name" : "MLXTests",
      "path" : "Tests/MLXTests",
      "sources" : [
        "ArrayAtTests.swift",
        "DTypeTests.swift",
        "ErrorTests.swift",
        "ExportTests.swift",
        "IntegrationTests.swift",
        "LinalgTests.swift",
        "LossTests.swift",
        "MLXArray+IndexingTests.swift",
        "MLXArray+InitTests.swift",
        "MLXArray+NormlizerTests.swift",
        "MLXArray+OpsTests.swift",
        "MLXArrayTests.swift",
        "MLXFastKernelTests.swift",
        "MLXRandomTests.swift",
        "MemoryTests.swift",
        "ModuleTests.swift",
        "NestedTests.swift",
        "OpsTests.swift",
        "OptimizerTests.swift",
        "PoolingTests.swift",
        "QuantizationTests.swift",
        "SaveTests.swift",
        "StreamTests.swift",
        "SubclassTests.swift",
        "TransformTests.swift",
        "UpsampleTests.swift",
        "Utils.swift",
        "WiredMemoryTests.swift"
      ],
      "target_dependencies" : [
        "MLX",
        "MLXNN",
        "MLXOptimizers"
      ],
      "type" : "test"
    },
    {
      "c99name" : "MLXRandom",
      "module_type" : "SwiftTarget",
      "name" : "MLXRandom",
      "path" : "Source/MLXRandom",
      "product_memberships" : [
        "MLXRandom"
      ],
      "sources" : [
        "Random.swift"
      ],
      "target_dependencies" : [
        "MLX"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MLXOptimizers",
      "module_type" : "SwiftTarget",
      "name" : "MLXOptimizers",
      "path" : "Source/MLXOptimizers",
      "product_memberships" : [
        "MLXOptimizers"
      ],
      "sources" : [
        "Optimizers.swift"
      ],
      "target_dependencies" : [
        "MLX",
        "MLXNN"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MLXNN",
      "module_type" : "SwiftTarget",
      "name" : "MLXNN",
      "path" : "Source/MLXNN",
      "product_memberships" : [
        "MLXNN",
        "MLXOptimizers"
      ],
      "sources" : [
        "Activations.swift",
        "Cache.swift",
        "Containers.swift",
        "Convolution.swift",
        "ConvolutionTransposed.swift",
        "Dropout.swift",
        "Embedding.swift",
        "Linear.swift",
        "Losses.swift",
        "Module.swift",
        "Normalization.swift",
        "Pooling.swift",
        "PositionalEncoding.swift",
        "Quantized.swift",
        "Recurrent.swift",
        "Transformer.swift",
        "Upsample.swift",
        "ValueAndGrad.swift"
      ],
      "target_dependencies" : [
        "MLX"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MLXLinalg",
      "module_type" : "SwiftTarget",
      "name" : "MLXLinalg",
      "path" : "Source/MLXLinalg",
      "product_memberships" : [
        "MLXLinalg"
      ],
      "sources" : [
        "Linalg.swift"
      ],
      "target_dependencies" : [
        "MLX"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MLXFast",
      "module_type" : "SwiftTarget",
      "name" : "MLXFast",
      "path" : "Source/MLXFast",
      "product_memberships" : [
        "MLXFast"
      ],
      "sources" : [
        "MLXFast.swift",
        "MLXFastKernel.swift"
      ],
      "target_dependencies" : [
        "MLX",
        "Cmlx"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MLXFFT",
      "module_type" : "SwiftTarget",
      "name" : "MLXFFT",
      "path" : "Source/MLXFFT",
      "product_memberships" : [
        "MLXFFT"
      ],
      "sources" : [
        "FFT.swift"
      ],
      "target_dependencies" : [
        "MLX"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MLX",
      "module_type" : "SwiftTarget",
      "name" : "MLX",
      "path" : "Source/MLX",
      "product_dependencies" : [
        "Numerics"
      ],
      "product_memberships" : [
        "MLX",
        "MLXRandom",
        "MLXNN",
        "MLXOptimizers",
        "MLXFFT",
        "MLXLinalg",
        "MLXFast",
        "Tutorial",
        "Example1",
        "CustomFunctionExampleSimple",
        "CustomFunctionExample"
      ],
      "sources" : [
        "ArrayAt.swift",
        "Cmlx+Util.swift",
        "DType.swift",
        "Device.swift",
        "ErrorHandler.swift",
        "Export.swift",
        "FFT.swift",
        "Factory.swift",
        "Foundation+Util.swift",
        "GPU+Metal.swift",
        "IO.swift",
        "Linalg.swift",
        "MLXArray+Bytes.swift",
        "MLXArray+Indexing.swift",
        "MLXArray+Init.swift",
        "MLXArray+Metal.swift",
        "MLXArray+Normalizer.swift",
        "MLXArray+Ops.swift",
        "MLXArray.swift",
        "MLXCustomFunction.swift",
        "MLXFast.swift",
        "MLXFastKernel.swift",
        "Memory.swift",
        "Nested.swift",
        "Ops+Array.swift",
        "Ops.swift",
        "ParameterTypes.swift",
        "Protocols.swift",
        "Random.swift",
        "State.swift",
        "Stream.swift",
        "Transforms+Compile.swift",
        "Transforms+Eval.swift",
        "Transforms+Grad.swift",
        "Transforms+Internal.swift",
        "Transforms+Vmap.swift",
        "Transforms.swift",
        "WiredMemory.swift"
      ],
      "target_dependencies" : [
        "Cmlx"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Example1",
      "module_type" : "SwiftTarget",
      "name" : "Example1",
      "path" : "Source/Examples",
      "product_memberships" : [
        "Example1"
      ],
      "sources" : [
        "Example1.swift"
      ],
      "target_dependencies" : [
        "MLX"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "CustomFunctionExampleSimple",
      "module_type" : "SwiftTarget",
      "name" : "CustomFunctionExampleSimple",
      "path" : "Source/Examples",
      "product_memberships" : [
        "CustomFunctionExampleSimple"
      ],
      "sources" : [
        "CustomFunctionExampleSimple.swift"
      ],
      "target_dependencies" : [
        "MLX"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "CustomFunctionExample",
      "module_type" : "SwiftTarget",
      "name" : "CustomFunctionExample",
      "path" : "Source/Examples",
      "product_memberships" : [
        "CustomFunctionExample"
      ],
      "sources" : [
        "CustomFunctionExample.swift"
      ],
      "target_dependencies" : [
        "MLX"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "CmlxTests",
      "module_type" : "SwiftTarget",
      "name" : "CmlxTests",
      "path" : "Tests/CmlxTests",
      "sources" : [
        "CmlxTests.swift"
      ],
      "target_dependencies" : [
        "Cmlx"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Cmlx",
      "module_type" : "ClangTarget",
      "name" : "Cmlx",
      "path" : "Source/Cmlx",
      "product_memberships" : [
        "MLX",
        "MLXRandom",
        "MLXNN",
        "MLXOptimizers",
        "MLXFFT",
        "MLXLinalg",
        "MLXFast",
        "Tutorial",
        "Example1",
        "CustomFunctionExampleSimple",
        "CustomFunctionExample"
      ],
      "sources" : [
        "fmt/src/format.cc",
        "framework/Cmlx.m",
        "mlx-c/mlx/c/array.cpp",
        "mlx-c/mlx/c/closure.cpp",
        "mlx-c/mlx/c/compile.cpp",
        "mlx-c/mlx/c/cuda.cpp",
        "mlx-c/mlx/c/device.cpp",
        "mlx-c/mlx/c/error.cpp",
        "mlx-c/mlx/c/export.cpp",
        "mlx-c/mlx/c/fast.cpp",
        "mlx-c/mlx/c/fft.cpp",
        "mlx-c/mlx/c/io.cpp",
        "mlx-c/mlx/c/io_types.cpp",
        "mlx-c/mlx/c/linalg.cpp",
        "mlx-c/mlx/c/map.cpp",
        "mlx-c/mlx/c/memory.cpp",
        "mlx-c/mlx/c/metal.cpp",
        "mlx-c/mlx/c/ops.cpp",
        "mlx-c/mlx/c/random.cpp",
        "mlx-c/mlx/c/stream.cpp",
        "mlx-c/mlx/c/string.cpp",
        "mlx-c/mlx/c/transforms.cpp",
        "mlx-c/mlx/c/transforms_impl.cpp",
        "mlx-c/mlx/c/vector.cpp",
        "mlx-c/mlx/c/version.cpp",
        "mlx-conditional/compiled_conditional.cpp",
        "mlx-generated/arange.cpp",
        "mlx-generated/binary.cpp",
        "mlx-generated/binary_ops.cpp",
        "mlx-generated/binary_two.cpp",
        "mlx-generated/compiled_preamble.cpp",
        "mlx-generated/conv.cpp",
        "mlx-generated/copy.cpp",
        "mlx-generated/fft.cpp",
        "mlx-generated/fp_quantized.cpp",
        "mlx-generated/fp_quantized_nax.cpp",
        "mlx-generated/gather.cpp",
        "mlx-generated/gather_axis.cpp",
        "mlx-generated/gather_front.cpp",
        "mlx-generated/gemm.cpp",
        "mlx-generated/gemm_nax.cpp",
        "mlx-generated/gemv_masked.cpp",
        "mlx-generated/hadamard.cpp",
        "mlx-generated/logsumexp.cpp",
        "mlx-generated/masked_scatter.cpp",
        "mlx-generated/quantized.cpp",
        "mlx-generated/quantized_nax.cpp",
        "mlx-generated/quantized_utils.cpp",
        "mlx-generated/reduce.cpp",
        "mlx-generated/reduce_utils.cpp",
        "mlx-generated/scan.cpp",
        "mlx-generated/scatter.cpp",
        "mlx-generated/scatter_axis.cpp",
        "mlx-generated/softmax.cpp",
        "mlx-generated/sort.cpp",
        "mlx-generated/steel_attention.cpp",
        "mlx-generated/steel_attention_nax.cpp",
        "mlx-generated/steel_conv.cpp",
        "mlx-generated/steel_conv_3d.cpp",
        "mlx-generated/steel_conv_general.cpp",
        "mlx-generated/steel_gemm_fused.cpp",
        "mlx-generated/steel_gemm_fused_nax.cpp",
        "mlx-generated/steel_gemm_gather.cpp",
        "mlx-generated/steel_gemm_gather_nax.cpp",
        "mlx-generated/steel_gemm_masked.cpp",
        "mlx-generated/steel_gemm_segmented.cpp",
        "mlx-generated/steel_gemm_splitk.cpp",
        "mlx-generated/steel_gemm_splitk_nax.cpp",
        "mlx-generated/ternary.cpp",
        "mlx-generated/ternary_ops.cpp",
        "mlx-generated/unary.cpp",
        "mlx-generated/unary_ops.cpp",
        "mlx-generated/utils.cpp",
        "mlx/mlx/array.cpp",
        "mlx/mlx/backend/common/broadcasting.cpp",
        "mlx/mlx/backend/common/common.cpp",
        "mlx/mlx/backend/common/compiled.cpp",
        "mlx/mlx/backend/common/load.cpp",
        "mlx/mlx/backend/common/reduce.cpp",
        "mlx/mlx/backend/common/slicing.cpp",
        "mlx/mlx/backend/common/utils.cpp",
        "mlx/mlx/backend/cpu/arg_reduce.cpp",
        "mlx/mlx/backend/cpu/binary.cpp",
        "mlx/mlx/backend/cpu/cholesky.cpp",
        "mlx/mlx/backend/cpu/conv.cpp",
        "mlx/mlx/backend/cpu/copy.cpp",
        "mlx/mlx/backend/cpu/device_info.cpp",
        "mlx/mlx/backend/cpu/distributed.cpp",
        "mlx/mlx/backend/cpu/eig.cpp",
        "mlx/mlx/backend/cpu/eigh.cpp",
        "mlx/mlx/backend/cpu/encoder.cpp",
        "mlx/mlx/backend/cpu/eval.cpp",
        "mlx/mlx/backend/cpu/fft.cpp",
        "mlx/mlx/backend/cpu/gemms/bnns.cpp",
        "mlx/mlx/backend/cpu/gemms/cblas.cpp",
        "mlx/mlx/backend/cpu/hadamard.cpp",
        "mlx/mlx/backend/cpu/indexing.cpp",
        "mlx/mlx/backend/cpu/inverse.cpp",
        "mlx/mlx/backend/cpu/jit_compiler.cpp",
        "mlx/mlx/backend/cpu/logsumexp.cpp",
        "mlx/mlx/backend/cpu/luf.cpp",
        "mlx/mlx/backend/cpu/masked_mm.cpp",
        "mlx/mlx/backend/cpu/matmul.cpp",
        "mlx/mlx/backend/cpu/primitives.cpp",
        "mlx/mlx/backend/cpu/qrf.cpp",
        "mlx/mlx/backend/cpu/quantized.cpp",
        "mlx/mlx/backend/cpu/reduce.cpp",
        "mlx/mlx/backend/cpu/scan.cpp",
        "mlx/mlx/backend/cpu/select.cpp",
        "mlx/mlx/backend/cpu/softmax.cpp",
        "mlx/mlx/backend/cpu/sort.cpp",
        "mlx/mlx/backend/cpu/svd.cpp",
        "mlx/mlx/backend/cpu/threefry.cpp",
        "mlx/mlx/backend/cpu/unary.cpp",
        "mlx/mlx/backend/cuda/no_cuda.cpp",
        "mlx/mlx/backend/gpu/copy.cpp",
        "mlx/mlx/backend/gpu/primitives.cpp",
        "mlx/mlx/backend/gpu/slicing.cpp",
        "mlx/mlx/backend/metal/allocator.cpp",
        "mlx/mlx/backend/metal/binary.cpp",
        "mlx/mlx/backend/metal/compiled.cpp",
        "mlx/mlx/backend/metal/conv.cpp",
        "mlx/mlx/backend/metal/copy.cpp",
        "mlx/mlx/backend/metal/custom_kernel.cpp",
        "mlx/mlx/backend/metal/device.cpp",
        "mlx/mlx/backend/metal/device_info.cpp",
        "mlx/mlx/backend/metal/distributed.cpp",
        "mlx/mlx/backend/metal/eval.cpp",
        "mlx/mlx/backend/metal/event.cpp",
        "mlx/mlx/backend/metal/fence.cpp",
        "mlx/mlx/backend/metal/fft.cpp",
        "mlx/mlx/backend/metal/hadamard.cpp",
        "mlx/mlx/backend/metal/indexing.cpp",
        "mlx/mlx/backend/metal/jit_kernels.cpp",
        "mlx/mlx/backend/metal/logsumexp.cpp",
        "mlx/mlx/backend/metal/matmul.cpp",
        "mlx/mlx/backend/metal/metal.cpp",
        "mlx/mlx/backend/metal/normalization.cpp",
        "mlx/mlx/backend/metal/primitives.cpp",
        "mlx/mlx/backend/metal/quantized.cpp",
        "mlx/mlx/backend/metal/reduce.cpp",
        "mlx/mlx/backend/metal/resident.cpp",
        "mlx/mlx/backend/metal/rope.cpp",
        "mlx/mlx/backend/metal/scaled_dot_product_attention.cpp",
        "mlx/mlx/backend/metal/scan.cpp",
        "mlx/mlx/backend/metal/slicing.cpp",
        "mlx/mlx/backend/metal/softmax.cpp",
        "mlx/mlx/backend/metal/sort.cpp",
        "mlx/mlx/backend/metal/ternary.cpp",
        "mlx/mlx/backend/metal/unary.cpp",
        "mlx/mlx/backend/metal/utils.cpp",
        "mlx/mlx/compile.cpp",
        "mlx/mlx/device.cpp",
        "mlx/mlx/distributed/distributed.cpp",
        "mlx/mlx/distributed/jaccl/no_jaccl.cpp",
        "mlx/mlx/distributed/mpi/no_mpi.cpp",
        "mlx/mlx/distributed/nccl/no_nccl.cpp",
        "mlx/mlx/distributed/ops.cpp",
        "mlx/mlx/distributed/primitives.cpp",
        "mlx/mlx/distributed/ring/no_ring.cpp",
        "mlx/mlx/distributed/utils.cpp",
        "mlx/mlx/dtype.cpp",
        "mlx/mlx/dtype_utils.cpp",
        "mlx/mlx/einsum.cpp",
        "mlx/mlx/export.cpp",
        "mlx/mlx/fast.cpp",
        "mlx/mlx/fft.cpp",
        "mlx/mlx/graph_utils.cpp",
        "mlx/mlx/io/load.cpp",
        "mlx/mlx/io/no_gguf.cpp",
        "mlx/mlx/io/safetensors.cpp",
        "mlx/mlx/linalg.cpp",
        "mlx/mlx/ops.cpp",
        "mlx/mlx/primitives.cpp",
        "mlx/mlx/random.cpp",
        "mlx/mlx/scheduler.cpp",
        "mlx/mlx/transforms.cpp",
        "mlx/mlx/utils.cpp",
        "mlx/mlx/version.cpp"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.12"
}
Done.