123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // Copyright 2009-2021 Intel Corporation
- // SPDX-License-Identifier: Apache-2.0
- #pragma once
- #include "../sys/platform.h"
- #include "../sys/intrinsics.h"
- #include "../math/constants.h"
- #include "../sys/alloc.h"
- #include "varying.h"
- #include "vboolf16_avx512.h"
- #include "vint16_avx512.h"
- #include "vuint16_avx512.h"
- #include "vfloat16_avx512.h"
- #include "vboold8_avx512.h"
- #include "vllong8_avx512.h"
- #include "vdouble8_avx512.h"
- namespace embree
- {
- ////////////////////////////////////////////////////////////////////////////////
- /// Prefetching
- ////////////////////////////////////////////////////////////////////////////////
- #define PFHINT_L1 0
- #define PFHINT_L2 1
- #define PFHINT_NT 2
- template<const unsigned int mode>
- __forceinline void prefetch(const void * __restrict__ const m)
- {
- if (mode == PFHINT_L1)
- _mm_prefetch((const char*)m,_MM_HINT_T0);
- else if (mode == PFHINT_L2)
- _mm_prefetch((const char*)m,_MM_HINT_T1);
- else if (mode == PFHINT_NT)
- _mm_prefetch((const char*)m,_MM_HINT_NTA);
- }
- }
|