where are 64 int and uint extension in simd/Metal?

where do i get acess to 64-bit uints and ints?


why are the full set of simd instructions implemented? where is vector_double8? or float16?


import simd

import Metal

import MetalKit


var temp: = vector_ulong3(0,0,0)


returns error


Use of undeclared type 'vector_long3'



the documents says


* types within the simd:: namespace:

*

* scalar type derived vector types

* ----------------------------------------------------------------------

* 8-bit int simd::charN, where N is 2, 3, 4, 8, 16, or 32.

* (unsigned) simd::ucharN, where N is 2, 3, 4, 8, 16, or 32.

* 16-bit int simd::shortN, where N is 2, 3, 4, 8, 16, or 32.

* (unsigned) simd::ushortN, where N is 2, 3, 4, 8, 16, or 32.

* 32-bit int simd::intN, where N is 2, 3, 4, 8, or 16.

* (unsigned) simd::uintN, where N is 2, 3, 4, 8, or 16.

* float simd::floatN, where N is 2, 3, 4, 8, or 16.

* 64-bit int simd::longN, where N is 2, 3, 4, or 8.

* (unsigned) simd::ulongN, where N is 2, 3, 4, or 8.

* double simd::doubleN, where N is 2, 3, 4, or 8.

*

*/


/ The function of this header fundamentally depends on the ext_vector_type

* attribute. There is no fallback if these attributes are not supported by

* your compiler. */


public typealias vector_int2 = int2

public typealias vector_int3 = int3

public typealias vector_int4 = int4


public typealias vector_uint2 = uint2

public typealias vector_uint3 = uint3

public typealias vector_uint4 = uint4

Replies

64-bit signed and unsigned integer scalar and vector types (with some exceptions such as size_t) are not supported by the Metal shading language. Similarly, double precision floating-point scalar and vector types are not supported either.