이 코드를 감안할 때 :__attribute__ vector_size 란 무엇입니까?
using vec = uint32_t __attribute__ ((vector_size (16)));
이 MSVC 2015 년 다시 쓸 수있는 방법
?
이 코드를 감안할 때 :__attribute__ vector_size 란 무엇입니까?
using vec = uint32_t __attribute__ ((vector_size (16)));
이 MSVC 2015 년 다시 쓸 수있는 방법
?
64 비트보다 큰 정수형 & 플로트 타입을 생성하기위한 GCC 전용 확장이며, VC++에서 직접 대체 할 수는 없지만 대신 사용할 수있는 __m128d 유형이 있습니다. .
이는 SIMD 명령어에 대한 추상화 인 gcc vector extensions의 예입니다.
이 특정 라인은 총 16 바이트 길이의 벡터에 대해 유형 별칭 vec
을 만들고 32 비트 크기의 서명되지 않은 이가 터로 구성됩니다.
MSVC에는 동일한 확장명이없는 것으로 보입니다. SIMD의 사용은 alignment routines and inline assembly을 통해 지원됩니다. 따라서 정확하게 라인을 다시 쓰는 방법은없고 이 라인을 다시 쓰는 것만으로는 충분하지 않으며 유형을 사용하는 별칭이나 객체가 사용되는 라인도 사용됩니다.
MSVC는 OP가 찾고있는 것과 동일한 레이아웃으로 [__m128i] (https://msdn.microsoft.com/en-us/library/26232t5c.aspx) 데이터 형식을 제공합니다. '__m128i'유형의 변수도 16 바이트 경계에서 적절히 정렬됩니다. SIMD 명령어는 [compiler intrinsics] (https://msdn.microsoft.com/en-us/library/26td21ds.aspx)를 통해 지원됩니다. x64 컴파일러는 인라인 어셈블리를 지원하지 않으므로 인라인 어셈블리는 SIMD 코드를 구현하는 권장 방법이 아닙니다. – IInspectable
아마'__m128', 우리는 당신이 그것을 사용하여 볼 수 없습니다. –