diff options
author | Roland Scheidegger <[email protected]> | 2014-09-23 19:29:33 +0200 |
---|---|---|
committer | Roland Scheidegger <[email protected]> | 2014-09-23 21:46:00 +0200 |
commit | 5e1fcc625824ae962d5f658e151e6bc2665adce8 (patch) | |
tree | 7986f16ff98b5c2afef6955b0820a8818dbee611 /src/gallium/auxiliary | |
parent | 4ed23fd590b2de3dbf0a39e5f8374b395afd2902 (diff) |
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" <[email protected]>
Reviewed-by: Jose Fonseca <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.c | 12 |
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 4a9bc1f0ebe..722aa9a137d 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, |