godot/thirdparty/embree/common/simd/avx512.h
jfons 767e374dce Upgrade Embree to the latest official release.
Since Embree v3.13.0 supports AARCH64, switch back to the
official repo instead of using Embree-aarch64.

`thirdparty/embree/patches/godot-changes.patch` should now contain
an accurate diff of the changes done to the library.
2021-05-21 17:00:24 +02:00

42 lines
1 KiB
C++

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