HDK
|
Go to the source code of this file.
Macros | |
#define | CPU_HAS_AVX_INSTR 1 |
#define | VM_AVX_STYLE 1 |
#define | V8SF(A) (v8sf)A |
#define | V8SI(A) (v8si)A |
#define | _mm256_set_m128i(v0, v1) _mm256_insertf128_si256(_mm256_castsi128_si256(v1), (v0), 1) |
#define | VM_SHUFFLE_MASK_AVX(a0, a1, b0, b1) ((b1)<<6|(b0)<<4 | (a1)<<2|(a0)) |
#define | SSE_WRAPPER_I(NAME, OP) |
#define | VM_EXTRACT_AVX vm_extract_avx |
#define | VM_INSERT_AVX vm_insert_avx |
#define | VM_SPLATS_AVX vm_splats_avx |
#define | VM_LOAD_AVX vm_load_avx |
#define | VM_STORE_AVX vm_store_avx |
#define | VM_ZERO_AVX vm_zero_avx |
#define | VM_IZERO_AVX vm_izero_avx |
#define | VM_CMPLT_AVX(A, B) V8SI(_mm256_cmp_ps(A,B,_CMP_LT_OQ)) |
#define | VM_CMPLE_AVX(A, B) V8SI(_mm256_cmp_ps(A,B,_CMP_LE_OQ)) |
#define | VM_CMPGT_AVX(A, B) V8SI(_mm256_cmp_ps(A,B,_CMP_GT_OQ)) |
#define | VM_CMPGE_AVX(A, B) V8SI(_mm256_cmp_ps(A,B,_CMP_GE_OQ)) |
#define | VM_CMPEQ_AVX(A, B) V8SI(_mm256_cmp_ps(A,B,_CMP_EQ_OQ)) |
#define | VM_CMPNE_AVX(A, B) V8SI(_mm256_cmp_ps(A,B,_CMP_NEQ_OQ)) |
#define | VM_ICMPLT_AVX vm_int_cmplt_avx |
#define | VM_ICMPGT_AVX _mm256_cmpgt_epi32 |
#define | VM_ICMPEQ_AVX _mm256_cmpeq_epi32 |
#define | VM_IADD_AVX _mm256_add_epi32 |
#define | VM_ISUB_AVX _mm256_sub_epi32 |
#define | VM_IMUL_AVX _mm256_mullo_epi32 |
#define | VM_ADD_AVX _mm256_add_ps |
#define | VM_SUB_AVX _mm256_sub_ps |
#define | VM_MUL_AVX _mm256_mul_ps |
#define | VM_DIV_AVX _mm256_div_ps |
#define | VM_SQRT_AVX _mm256_sqrt_ps |
#define | VM_ISQRT_AVX _mm256_rsqrt_ps |
#define | VM_INVERT_AVX _mm256_rcp_ps |
#define | VM_ABS_AVX vm_abs_avx |
#define | VM_FDIV_AVX vm_fdiv_avx |
#define | VM_NEG_AVX vm_negate_avx |
#define | VM_FSQRT_AVX vm_fsqrt_avx |
#define | VM_MADD_AVX vm_madd_avx |
#define | VM_MIN_AVX _mm256_min_ps |
#define | VM_MAX_AVX _mm256_max_ps |
#define | VM_AND_AVX _mm256_and_si256 |
#define | VM_ANDNOT_AVX _mm256_andnot_si256 |
#define | VM_OR_AVX _mm256_or_si256 |
#define | VM_XOR_AVX _mm256_xor_si256 |
#define | VM_ALLBITS_AVX vm_allbits_avx |
#define | VM_SHUFFLE_AVX vm_shuffle_avx |
#define | VM_SSE_ROUND_MASK_AVX 0x6000 |
#define | VM_SSE_ROUND_ZERO_AVX 0x6000 |
#define | VM_SSE_ROUND_UP_AVX 0x4000 |
#define | VM_SSE_ROUND_DOWN_AVX 0x2000 |
#define | VM_SSE_ROUND_NEAR_AVX 0x0000 |
#define | GETROUND_AVX() (_mm_getcsr()&VM_SSE_ROUND_MASK_AVX) |
#define | SETROUND_AVX(x) (_mm_setcsr(x|(_mm_getcsr()&~VM_SSE_ROUND_MASK_AVX))) |
#define | VM_P_FLOOR_AVX() |
#define | VM_FLOOR_AVX _mm256_cvtps_epi32 |
#define | VM_INT_AVX _mm256_cvttps_epi32 |
#define | VM_E_FLOOR_AVX() SETROUND_AVX(rounding); |
#define | VM_IFLOAT_AVX _mm256_cvtepi32_ps |
#define | VM_SHIFTLEFT_AVX(A, C) _mm256_sll_epi32(A,_mm_setr_epi32(C,0,0,0)) |
#define | VM_SHIFTRIGHT_AVX(A, C) _mm256_srl_epi32(A,_mm_setr_epi32(C,0,0,0)) |
#define | _PI32AVX_CONST(Name, Val) |
#define | _PS256_CONST(Name, Val) |
#define | _PS256_CONST_TYPE(Name, Type, Val) |
#define | COPY_IMM_TO_XMM(imm_, xmm0_, xmm1_) |
#define | COPY_XMM_TO_IMM(xmm0_, xmm1_, imm_) |
#define | VM_SINCOS_AVX vm_sincos_avx |
#define | VM_SIN_AVX vm_sin_avx |
#define | VM_COS_AVX vm_cos_avx |
#define | VM_TAN_AVX vm_tan_avx |
Typedefs | |
typedef __m256 | v8sf |
typedef __m256i | v8si |
Definition at line 62 of file VM_AVXFunc.h.
#define _PI32AVX_CONST | ( | Name, | |
Val | |||
) |
#define _PS256_CONST | ( | Name, | |
Val | |||
) |
#define _PS256_CONST_TYPE | ( | Name, | |
Type, | |||
Val | |||
) |
#define COPY_IMM_TO_XMM | ( | imm_, | |
xmm0_, | |||
xmm1_ | |||
) |
#define COPY_XMM_TO_IMM | ( | xmm0_, | |
xmm1_, | |||
imm_ | |||
) |
#define CPU_HAS_AVX_INSTR 1 |
Definition at line 18 of file VM_AVXFunc.h.
#define GETROUND_AVX | ( | ) | (_mm_getcsr()&VM_SSE_ROUND_MASK_AVX) |
Definition at line 365 of file VM_AVXFunc.h.
#define SETROUND_AVX | ( | x | ) | (_mm_setcsr(x|(_mm_getcsr()&~VM_SSE_ROUND_MASK_AVX))) |
Definition at line 366 of file VM_AVXFunc.h.
#define SSE_WRAPPER_I | ( | NAME, | |
OP | |||
) |
Definition at line 286 of file VM_AVXFunc.h.
#define V8SF | ( | A | ) | (v8sf)A |
Definition at line 58 of file VM_AVXFunc.h.
#define V8SI | ( | A | ) | (v8si)A |
Definition at line 59 of file VM_AVXFunc.h.
#define VM_ABS_AVX vm_abs_avx |
Definition at line 339 of file VM_AVXFunc.h.
#define VM_ADD_AVX _mm256_add_ps |
Definition at line 332 of file VM_AVXFunc.h.
#define VM_ALLBITS_AVX vm_allbits_avx |
Definition at line 354 of file VM_AVXFunc.h.
#define VM_AND_AVX _mm256_and_si256 |
Definition at line 349 of file VM_AVXFunc.h.
#define VM_ANDNOT_AVX _mm256_andnot_si256 |
Definition at line 350 of file VM_AVXFunc.h.
#define VM_AVX_STYLE 1 |
Definition at line 19 of file VM_AVXFunc.h.
#define VM_CMPEQ_AVX | ( | A, | |
B | |||
) | V8SI(_mm256_cmp_ps(A,B,_CMP_EQ_OQ)) |
Definition at line 321 of file VM_AVXFunc.h.
#define VM_CMPGE_AVX | ( | A, | |
B | |||
) | V8SI(_mm256_cmp_ps(A,B,_CMP_GE_OQ)) |
Definition at line 320 of file VM_AVXFunc.h.
#define VM_CMPGT_AVX | ( | A, | |
B | |||
) | V8SI(_mm256_cmp_ps(A,B,_CMP_GT_OQ)) |
Definition at line 319 of file VM_AVXFunc.h.
#define VM_CMPLE_AVX | ( | A, | |
B | |||
) | V8SI(_mm256_cmp_ps(A,B,_CMP_LE_OQ)) |
Definition at line 318 of file VM_AVXFunc.h.
#define VM_CMPLT_AVX | ( | A, | |
B | |||
) | V8SI(_mm256_cmp_ps(A,B,_CMP_LT_OQ)) |
Definition at line 317 of file VM_AVXFunc.h.
#define VM_CMPNE_AVX | ( | A, | |
B | |||
) | V8SI(_mm256_cmp_ps(A,B,_CMP_NEQ_OQ)) |
Definition at line 322 of file VM_AVXFunc.h.
#define VM_COS_AVX vm_cos_avx |
Definition at line 621 of file VM_AVXFunc.h.
#define VM_DIV_AVX _mm256_div_ps |
Definition at line 335 of file VM_AVXFunc.h.
#define VM_E_FLOOR_AVX | ( | ) | SETROUND_AVX(rounding); |
Definition at line 375 of file VM_AVXFunc.h.
#define VM_EXTRACT_AVX vm_extract_avx |
Definition at line 309 of file VM_AVXFunc.h.
#define VM_FDIV_AVX vm_fdiv_avx |
Definition at line 341 of file VM_AVXFunc.h.
#define VM_FLOOR_AVX _mm256_cvtps_epi32 |
Definition at line 373 of file VM_AVXFunc.h.
#define VM_FSQRT_AVX vm_fsqrt_avx |
Definition at line 343 of file VM_AVXFunc.h.
#define VM_IADD_AVX _mm256_add_epi32 |
Definition at line 328 of file VM_AVXFunc.h.
#define VM_ICMPEQ_AVX _mm256_cmpeq_epi32 |
Definition at line 326 of file VM_AVXFunc.h.
#define VM_ICMPGT_AVX _mm256_cmpgt_epi32 |
Definition at line 325 of file VM_AVXFunc.h.
#define VM_ICMPLT_AVX vm_int_cmplt_avx |
Definition at line 324 of file VM_AVXFunc.h.
#define VM_IFLOAT_AVX _mm256_cvtepi32_ps |
Definition at line 378 of file VM_AVXFunc.h.
#define VM_IMUL_AVX _mm256_mullo_epi32 |
Definition at line 330 of file VM_AVXFunc.h.
#define VM_INSERT_AVX vm_insert_avx |
Definition at line 310 of file VM_AVXFunc.h.
#define VM_INT_AVX _mm256_cvttps_epi32 |
Definition at line 374 of file VM_AVXFunc.h.
#define VM_INVERT_AVX _mm256_rcp_ps |
Definition at line 338 of file VM_AVXFunc.h.
#define VM_ISQRT_AVX _mm256_rsqrt_ps |
Definition at line 337 of file VM_AVXFunc.h.
#define VM_ISUB_AVX _mm256_sub_epi32 |
Definition at line 329 of file VM_AVXFunc.h.
#define VM_IZERO_AVX vm_izero_avx |
Definition at line 315 of file VM_AVXFunc.h.
#define VM_LOAD_AVX vm_load_avx |
Definition at line 312 of file VM_AVXFunc.h.
#define VM_MADD_AVX vm_madd_avx |
Definition at line 344 of file VM_AVXFunc.h.
#define VM_MAX_AVX _mm256_max_ps |
Definition at line 347 of file VM_AVXFunc.h.
#define VM_MIN_AVX _mm256_min_ps |
Definition at line 346 of file VM_AVXFunc.h.
#define VM_MUL_AVX _mm256_mul_ps |
Definition at line 334 of file VM_AVXFunc.h.
#define VM_NEG_AVX vm_negate_avx |
Definition at line 342 of file VM_AVXFunc.h.
#define VM_OR_AVX _mm256_or_si256 |
Definition at line 351 of file VM_AVXFunc.h.
#define VM_P_FLOOR_AVX | ( | ) |
Definition at line 371 of file VM_AVXFunc.h.
#define VM_SHIFTLEFT_AVX | ( | A, | |
C | |||
) | _mm256_sll_epi32(A,_mm_setr_epi32(C,0,0,0)) |
Definition at line 381 of file VM_AVXFunc.h.
#define VM_SHIFTRIGHT_AVX | ( | A, | |
C | |||
) | _mm256_srl_epi32(A,_mm_setr_epi32(C,0,0,0)) |
Definition at line 382 of file VM_AVXFunc.h.
#define VM_SHUFFLE_AVX vm_shuffle_avx |
Definition at line 356 of file VM_AVXFunc.h.
#define VM_SHUFFLE_MASK_AVX | ( | a0, | |
a1, | |||
b0, | |||
b1 | |||
) | ((b1)<<6|(b0)<<4 | (a1)<<2|(a0)) |
Definition at line 66 of file VM_AVXFunc.h.
#define VM_SIN_AVX vm_sin_avx |
Definition at line 620 of file VM_AVXFunc.h.
#define VM_SINCOS_AVX vm_sincos_avx |
Definition at line 619 of file VM_AVXFunc.h.
#define VM_SPLATS_AVX vm_splats_avx |
Definition at line 311 of file VM_AVXFunc.h.
#define VM_SQRT_AVX _mm256_sqrt_ps |
Definition at line 336 of file VM_AVXFunc.h.
#define VM_SSE_ROUND_DOWN_AVX 0x2000 |
Definition at line 362 of file VM_AVXFunc.h.
#define VM_SSE_ROUND_MASK_AVX 0x6000 |
Definition at line 359 of file VM_AVXFunc.h.
#define VM_SSE_ROUND_NEAR_AVX 0x0000 |
Definition at line 363 of file VM_AVXFunc.h.
#define VM_SSE_ROUND_UP_AVX 0x4000 |
Definition at line 361 of file VM_AVXFunc.h.
#define VM_SSE_ROUND_ZERO_AVX 0x6000 |
Definition at line 360 of file VM_AVXFunc.h.
#define VM_STORE_AVX vm_store_avx |
Definition at line 313 of file VM_AVXFunc.h.
#define VM_SUB_AVX _mm256_sub_ps |
Definition at line 333 of file VM_AVXFunc.h.
#define VM_TAN_AVX vm_tan_avx |
Definition at line 622 of file VM_AVXFunc.h.
#define VM_XOR_AVX _mm256_xor_si256 |
Definition at line 352 of file VM_AVXFunc.h.
#define VM_ZERO_AVX vm_zero_avx |
Definition at line 314 of file VM_AVXFunc.h.
typedef __m256 v8sf |
Definition at line 22 of file VM_AVXFunc.h.
typedef __m256i v8si |
Definition at line 23 of file VM_AVXFunc.h.