#pragma once
#include "../sys/platform.h"
namespace embree
{
template<int N>
struct vfloat_impl
{ … };
template<int N>
struct vdouble_impl
{ … };
template<int N>
struct vint_impl
{ … };
template<int N>
struct vuint_impl
{ … };
template<int N>
struct vllong_impl
{ … };
template<int N> struct vboolf_impl { … };
template<int N> struct vboold_impl { … };
#if defined(__AVX512VL__)
const int VSIZEX = 8;
const int VSIZEL = 16;
#elif defined(__AVX__)
const int VSIZEX = 8;
const int VSIZEL = 8;
#else
const int VSIZEX = …;
const int VSIZEL = …;
#endif
template<int N>
struct vtypes { … };
template<>
struct vtypes<1> { … };
vbool;
vboolf;
vboold;
vint;
vuint;
vllong;
vreal;
vfloat;
vdouble;
vfloat4;
vdouble4;
vreal4;
vint4;
vuint4;
vllong4;
vbool4;
vboolf4;
vboold4;
vfloat8;
vdouble8;
vreal8;
vint8;
vuint8;
vllong8;
vbool8;
vboolf8;
vboold8;
vfloat16;
vdouble16;
vreal16;
vint16;
vuint16;
vllong16;
vbool16;
vboolf16;
vboold16;
vfloatx;
vdoublex;
vrealx;
vintx;
vuintx;
vllongx;
vboolx;
vboolfx;
vbooldx;
}