elif type == 'SIMD16::vectori_t':
llvm_type = 'VectorType::get(Type::getInt32Ty(ctx), 16)'
elif type == 'simdvector':
- llvm_type = 'ArrayType::get(VectorType::get(Type::getFloatTy(ctx), pJitMgr->mVWidth), 4)'
+ llvm_type = 'ArrayType::get(VectorType::get(Type::getFloatTy(ctx), 8), 4)'
+ elif type == 'simd16vector':
+ llvm_type = 'ArrayType::get(VectorType::get(Type::getFloatTy(ctx), 16), 4)'
elif type == 'SIMD8::attrib_t':
llvm_type = 'ArrayType::get(VectorType::get(Type::getFloatTy(ctx), 8), 4)'
elif type == 'SIMD16::attrib_t':
#include "context.h"
#include <type_traits>
-#if ENABLE_AVX512_SIMD16
-// TODO: this belongs in state.h alongside the simdvector definition, but there is a llvm codegen issue
-struct simd16vertex
-{
- simd16vector attrib[SWR_VTX_NUM_SLOTS];
-};
-
-#endif
// Calculates the A and B coefficients for the 3 edges of the triangle
//
// maths for edge equations:
// SoAoSoA
struct simdvertex
{
- simdvector attrib[SWR_VTX_NUM_SLOTS];
+ simdvector attrib[SWR_VTX_NUM_SLOTS];
};
+#if ENABLE_AVX512_SIMD16
+struct simd16vertex
+{
+ simd16vector attrib[SWR_VTX_NUM_SLOTS];
+};
+
+#endif
//////////////////////////////////////////////////////////////////////////
/// SWR_VS_CONTEXT
/// @brief Input to vertex shader