summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2012-01-12 16:25:59 -0500
committerTom Stellard <thomas.stellard@amd.com>2012-01-12 16:25:59 -0500
commit94358cab56b7ffa8141b8fbe1131f5f8fef80398 (patch)
treefd3a4bc435d97b83431855fb2dbda977ee4b71ab
parent4f8f1c9fec2d5a4f15b09cc0553182d62d77fdad (diff)
r600/llvm: Fix vector stores
-rw-r--r--src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c
index b27abed0f52..065eb5cdc6a 100644
--- a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c
+++ b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c
@@ -146,10 +146,13 @@ emit_store(
LLVMBuilderRef builder = bld->bld_base.base.gallivm->builder;
LLVMValueRef temp_ptr;
unsigned chan, chan_index;
- LLVMTypeKind k = LLVMGetTypeKind(LLVMTypeOf(dst[0]));
+ boolean is_vec_store = FALSE;
+ if (dst[0]) {
+ LLVMTypeKind k = LLVMGetTypeKind(LLVMTypeOf(dst[0]));
+ is_vec_store = (k == LLVMVectorTypeKind);
+ }
- /* XXX: Better Check for vec types */
- if (k == LLVMVectorTypeKind) {
+ if (is_vec_store) {
LLVMValueRef values[4] = {};
FOR_EACH_DST0_ENABLED_CHANNEL(inst, chan) {
LLVMValueRef index = lp_build_const_int32(gallivm, chan);