summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-07-30 16:32:32 +0200
committerMarek Olšák <[email protected]>2016-08-03 17:46:46 +0200
commitc88b309fd5ad77c3fce64993285ebd9eada33d0e (patch)
tree566b8ffe91f7015f5e025d2b8a1ed4e9289278fc
parent42c5f839ad8419da41c151577d27ce33c5cada2b (diff)
radeonsi: don't set the last parameter component of llvm.AMDGPU.cube
LLVM doesn't use it. Reviewed-by: Nicolai Hähnle <[email protected]>
-rw-r--r--src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c
index e7354dec3d2..d75311ea7e5 100644
--- a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c
+++ b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c
@@ -902,7 +902,7 @@ static void kil_emit(const struct lp_build_tgsi_action *action,
}
static LLVMValueRef build_cube_intrinsic(struct gallivm_state *gallivm,
- LLVMValueRef in[4])
+ LLVMValueRef in[3])
{
if (HAVE_LLVM >= 0x0309) {
LLVMTypeRef f32 = LLVMTypeOf(in[0]);
@@ -919,7 +919,13 @@ static LLVMValueRef build_cube_intrinsic(struct gallivm_state *gallivm,
return lp_build_gather_values(gallivm, out, 4);
} else {
- LLVMValueRef vec = lp_build_gather_values(gallivm, in, 4);
+ LLVMValueRef c[4] = {
+ in[0],
+ in[1],
+ in[2],
+ LLVMGetUndef(LLVMTypeOf(in[0]))
+ };
+ LLVMValueRef vec = lp_build_gather_values(gallivm, c, 4);
return lp_build_intrinsic(gallivm->builder, "llvm.AMDGPU.cube",
LLVMTypeOf(vec), &vec, 1,