Revision control
++ // 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);
++ }
++ }