From 94358cab56b7ffa8141b8fbe1131f5f8fef80398 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 12 Jan 2012 16:25:59 -0500 Subject: r600/llvm: Fix vector stores --- src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c | 9 ++++++--- 1 file 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); -- cgit v1.2.3