Mesa (master): radeon/llvm: use integer comparison for IF

Vadim Girlin vadimg at kemper.freedesktop.org
Mon May 7 23:56:42 UTC 2012


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

Author: Vadim Girlin <vadimgirlin at gmail.com>
Date:   Mon May  7 13:14:58 2012 +0400

radeon/llvm: use integer comparison for IF

Replacing "float equal to 1.0f" with "int not equal to 0".
This should help for further optimization of boolean computations.

Signed-off-by: Vadim Girlin <vadimgirlin at gmail.com>

---

 .../drivers/radeon/radeon_setup_tgsi_llvm.c        |    6 ++++--
 1 files changed, 4 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 06af134..c9b4365 100644
--- a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c
+++ b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c
@@ -465,8 +465,10 @@ static void if_emit(
 	struct gallivm_state * gallivm = bld_base->base.gallivm;
 	LLVMValueRef cond;
 	LLVMBasicBlockRef if_block, else_block, endif_block;
-	cond = LLVMBuildFCmp(gallivm->builder, LLVMRealOEQ, emit_data->args[0],
-							bld_base->base.one, "");
+
+	cond = LLVMBuildICmp(gallivm->builder, LLVMIntNE,
+	        bitcast(bld_base, TGSI_TYPE_UNSIGNED, emit_data->args[0]),
+			bld_base->int_bld.zero, "");
 
 	endif_block = LLVMAppendBasicBlockInContext(gallivm->context,
 						ctx->main_fn, "ENDIF");




More information about the mesa-commit mailing list