summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorRoland Scheidegger <sroland@vmware.com>2014-09-23 19:29:33 +0200
committerRoland Scheidegger <sroland@vmware.com>2014-09-23 21:46:00 +0200
commit5e1fcc625824ae962d5f658e151e6bc2665adce8 (patch)
tree7986f16ff98b5c2afef6955b0820a8818dbee611 /src/gallium
parent4ed23fd590b2de3dbf0a39e5f8374b395afd2902 (diff)
downloadexternal_mesa3d-5e1fcc625824ae962d5f658e151e6bc2665adce8.zip
external_mesa3d-5e1fcc625824ae962d5f658e151e6bc2665adce8.tar.gz
external_mesa3d-5e1fcc625824ae962d5f658e151e6bc2665adce8.tar.bz2
gallivm: fix idiv
ffeb77c7b0552a8624e46e65d6347240ac5ae84d had a typo which turned all signed integer divisions into unsigned ones. Oops. This gets us back the 51 little piglits (all from glsl built-in-functions, fs/vs/gs-op-div-int-ivec2 and similar). Cc: "10.2 10.3" <mesa-stable@lists.freedesktop.org> Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.c
index 4a9bc1f..722aa9a 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.c
@@ -1252,18 +1252,16 @@ idiv_emit_cpu(
LLVMValueRef div_mask = lp_build_cmp(&bld_base->uint_bld,
PIPE_FUNC_EQUAL, emit_data->args[1],
bld_base->uint_bld.zero);
- /* We want to make sure that we never divide/mod by zero to not
- * generate sigfpe. We don't want to crash just because the
+ /* We want to make sure that we never divide/mod by zero to not
+ * generate sigfpe. We don't want to crash just because the
* shader is doing something weird. */
LLVMValueRef divisor = LLVMBuildOr(builder,
div_mask,
emit_data->args[1], "");
- LLVMValueRef result = lp_build_div(&bld_base->uint_bld,
+ LLVMValueRef result = lp_build_div(&bld_base->int_bld,
emit_data->args[0], divisor);
-
LLVMValueRef not_div_mask = LLVMBuildNot(builder,
div_mask,"");
-
/* idiv by zero doesn't have a guaranteed return value chose 0 for now. */
emit_data->output[emit_data->chan] = LLVMBuildAnd(builder,
not_div_mask,
@@ -1693,8 +1691,8 @@ udiv_emit_cpu(
LLVMValueRef div_mask = lp_build_cmp(&bld_base->uint_bld,
PIPE_FUNC_EQUAL, emit_data->args[1],
bld_base->uint_bld.zero);
- /* We want to make sure that we never divide/mod by zero to not
- * generate sigfpe. We don't want to crash just because the
+ /* We want to make sure that we never divide/mod by zero to not
+ * generate sigfpe. We don't want to crash just because the
* shader is doing something weird. */
LLVMValueRef divisor = LLVMBuildOr(builder,
div_mask,