summaryrefslogtreecommitdiffstats
path: root/src/compiler
diff options
context:
space:
mode:
authorVasily Khoruzhick <[email protected]>2020-01-22 20:29:50 -0800
committerMarge Bot <[email protected]>2020-01-23 21:16:22 +0000
commit3c754900b5f689b821cbb1162b821ce12bcaf23e (patch)
treeb5189f364bf1ae8207f4bf446c9e8f301751f38a /src/compiler
parentcf2c5a56a1bc9f14e4c84db7a08739a195156844 (diff)
nir: don't emit ishl in _nir_mul_imm() if backend doesn't support bitops
Otherwise we'll have to lower it later. Reviewed-by: Jason Ekstrand <[email protected]> Reviewed-by: Erico Nunes <[email protected]> Signed-off-by: Vasily Khoruzhick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3529>
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/nir/nir_builder.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h
index 8b5923211db..fb90fc2cdca 100644
--- a/src/compiler/nir/nir_builder.h
+++ b/src/compiler/nir/nir_builder.h
@@ -656,7 +656,8 @@ _nir_mul_imm(nir_builder *build, nir_ssa_def *x, uint64_t y, bool amul)
return nir_imm_intN_t(build, 0, x->bit_size);
} else if (y == 1) {
return x;
- } else if (util_is_power_of_two_or_zero64(y)) {
+ } else if (!build->shader->options->lower_bitops &&
+ util_is_power_of_two_or_zero64(y)) {
return nir_ishl(build, x, nir_imm_int(build, ffsll(y) - 1));
} else if (amul) {
return nir_amul(build, x, nir_imm_intN_t(build, y, x->bit_size));