Mesa (master): radeonsi: don' t set the last parameter component of llvm.AMDGPU.cube

Marek Olšák mareko at kemper.freedesktop.org
Wed Aug 3 15:49:38 UTC 2016


Module: Mesa
Branch: master
Commit: c88b309fd5ad77c3fce64993285ebd9eada33d0e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c88b309fd5ad77c3fce64993285ebd9eada33d0e

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sat Jul 30 16:32:32 2016 +0200

radeonsi: don't set the last parameter component of llvm.AMDGPU.cube

LLVM doesn't use it.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c | 10 ++++++++--
 1 file 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 e7354de..d75311e 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,




More information about the mesa-commit mailing list