From 8780706c62edaa8bf29b57763272d9fe29893265 Mon Sep 17 00:00:00 2001 From: Tim Rowley Date: Mon, 23 Jan 2017 11:30:13 -0600 Subject: [PATCH] swr: [rasterizer jitter] Change SimdVector representation to array Make all SimdVectors in LLVM represented as simdscalar[4] rather than a struct. Fixes issues with promotion of values from i32 to i64 to match register width. Reviewed-by: Bruce Cherniak --- src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp | 6 ++---- src/gallium/drivers/swr/rasterizer/jitter/JitManager.h | 2 -- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp b/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp index d77dffb..74ffd27 100644 --- a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp +++ b/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp @@ -133,8 +133,6 @@ JitManager::JitManager(uint32_t simdWidth, const char *arch, const char* core) mInt8Ty = Type::getInt8Ty(mContext); mInt32Ty = Type::getInt32Ty(mContext); // int type mInt64Ty = Type::getInt64Ty(mContext); // int type - mV4FP32Ty = StructType::get(mContext, std::vector(4, mFP32Ty), false); // vector4 float type (represented as structure) - mV4Int32Ty = StructType::get(mContext, std::vector(4, mInt32Ty), false); // vector4 int type // fetch function signature // typedef void(__cdecl *PFN_FETCH_FUNC)(SWR_FETCH_CONTEXT& fetchInfo, simdvertex& out); @@ -147,8 +145,8 @@ JitManager::JitManager(uint32_t simdWidth, const char *arch, const char* core) mSimtFP32Ty = VectorType::get(mFP32Ty, mVWidth); mSimtInt32Ty = VectorType::get(mInt32Ty, mVWidth); - mSimdVectorTy = StructType::get(mContext, std::vector(4, mSimtFP32Ty), false); - mSimdVectorInt32Ty = StructType::get(mContext, std::vector(4, mSimtInt32Ty), false); + mSimdVectorTy = ArrayType::get(mSimtFP32Ty, 4); + mSimdVectorInt32Ty = ArrayType::get(mSimtInt32Ty, 4); #if defined(_WIN32) // explicitly instantiate used symbols from potentially staticly linked libs diff --git a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.h b/src/gallium/drivers/swr/rasterizer/jitter/JitManager.h index ed7216b..e45ad14 100644 --- a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.h +++ b/src/gallium/drivers/swr/rasterizer/jitter/JitManager.h @@ -164,8 +164,6 @@ struct JitManager llvm::Type* mInt32Ty; llvm::Type* mInt64Ty; llvm::Type* mFP32Ty; - llvm::StructType* mV4FP32Ty; - llvm::StructType* mV4Int32Ty; llvm::Type* mSimtFP32Ty; llvm::Type* mSimtInt32Ty; -- 2.7.4