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

Author: Zack Rusin <[email protected]>
Date:   Wed Mar 10 16:36:20 2010 -0500

gallivm: properly test the if condition and branch to the proper label

makes loops work

---

 src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c 
b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
index 085afe3..aa57289 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
@@ -301,7 +301,7 @@ static void lp_exec_endloop(struct lp_exec_mask *mask)
    endloop = lp_build_insert_new_block(mask->bld->builder, "endloop");
 
    LLVMBuildCondBr(mask->bld->builder,
-                   i1cond, endloop, mask->loop_block);
+                   i1cond, mask->loop_block, endloop);
 
    LLVMPositionBuilderAtEnd(mask->bld->builder, endloop);
 
@@ -1498,6 +1498,8 @@ emit_instruction(
 
    case TGSI_OPCODE_IF:
       tmp0 = emit_fetch(bld, inst, 0, CHAN_X);
+      tmp0 = lp_build_cmp(&bld->base, PIPE_FUNC_NOTEQUAL,
+                          tmp0, bld->base.zero);
       lp_exec_mask_cond_push(&bld->exec_mask, tmp0);
       break;
 

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to