msvc derleyicide aşağıdaki işlemleri verimli bir şekilde nasıl uygularım?msvc derleyici neon kayıtta 4 tamsayı değerleri nasıl yüklenir?
uint32x4_t temp = { 1, 2, 3, 4 };
Performansı optimize etmek için çalışırken, neon kaydında 4 farklı değer yüklemem gerekiyor. Yukarıdaki ifadeler, android clang için çalışır ancak uint32x4_t __n128 için typedef'ed olduğu için msvc derleyicide başarısız olur. aşağıdaki gibi
typedef union __declspec(intrin_type) _ADVSIMD_ALIGN(8) __n128
{
unsigned __int64 n128_u64[2];
unsigned __int32 n128_u32[4];
unsigned __int16 n128_u16[8];
unsigned __int8 n128_u8[16];
__int64 n128_i64[2];
__int32 n128_i32[4];
__int16 n128_i16[8];
__int8 n128_i8[16];
float n128_f32[4];
struct
{
__n64 low64;
__n64 high64;
} DUMMYNEONSTRUCT;
} __n128;
128 bitlik bir sabit tanımlamak, onu açıkça yüklemekten daha hızlı bir şekilde NEON yazmaçlarına almayacaktır (temp = vld1q_u32 (...)). – BitBank