diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2012-01-12 16:25:59 -0500 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2012-01-12 16:25:59 -0500 |
commit | 94358cab56b7ffa8141b8fbe1131f5f8fef80398 (patch) | |
tree | fd3a4bc435d97b83431855fb2dbda977ee4b71ab | |
parent | 4f8f1c9fec2d5a4f15b09cc0553182d62d77fdad (diff) |
r600/llvm: Fix vector stores
-rw-r--r-- | src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c | 9 |
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); |