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