summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Natalie <jenatali@microsoft.com>2020-09-08 17:56:54 -0700
committerMarge Bot <eric+marge@anholt.net>2020-09-09 20:19:42 +0000
commit89401e58672e1251b954662f0f776a6e9bce6df8 (patch)
treed6982aad3b9c22416b8a823f03b8be973a76f26c
parentc5dd54e600bef006cdebcb9d045a737d3d9785e7 (diff)
nir: More NIR_MAX_VEC_COMPONENTS fixes
Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6655>
-rw-r--r--src/compiler/nir/nir_builder.h2
-rw-r--r--src/compiler/nir/nir_builtin_builder.c2
-rw-r--r--src/compiler/nir/nir_lower_io.c2
-rw-r--r--src/compiler/nir/nir_opt_copy_propagate.c2
4 files changed, 5 insertions, 3 deletions
diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h
index f9ac4c830a3..8451ce249d1 100644
--- a/src/compiler/nir/nir_builder.h
+++ b/src/compiler/nir/nir_builder.h
@@ -1026,7 +1026,7 @@ nir_ssa_for_src(nir_builder *build, nir_src src, int num_components)
nir_alu_src alu = { NIR_SRC_INIT };
alu.src = src;
- for (int j = 0; j < 4; j++)
+ for (int j = 0; j < NIR_MAX_VEC_COMPONENTS; j++)
alu.swizzle[j] = j;
return nir_mov_alu(build, alu, num_components);
diff --git a/src/compiler/nir/nir_builtin_builder.c b/src/compiler/nir/nir_builtin_builder.c
index 3a66eba2c8c..690fa98da25 100644
--- a/src/compiler/nir/nir_builtin_builder.c
+++ b/src/compiler/nir/nir_builtin_builder.c
@@ -74,6 +74,8 @@ nir_fast_length(nir_builder *b, nir_ssa_def *vec)
case 2: return nir_fsqrt(b, nir_fdot2(b, vec, vec));
case 3: return nir_fsqrt(b, nir_fdot3(b, vec, vec));
case 4: return nir_fsqrt(b, nir_fdot4(b, vec, vec));
+ case 8: return nir_fsqrt(b, nir_fdot8(b, vec, vec));
+ case 16: return nir_fsqrt(b, nir_fdot16(b, vec, vec));
default:
unreachable("Invalid number of components");
}
diff --git a/src/compiler/nir/nir_lower_io.c b/src/compiler/nir/nir_lower_io.c
index d2cd590f502..fbe8e51440e 100644
--- a/src/compiler/nir/nir_lower_io.c
+++ b/src/compiler/nir/nir_lower_io.c
@@ -1414,7 +1414,7 @@ nir_lower_explicit_io_instr(nir_builder *b,
if (intrin->intrinsic == nir_intrinsic_load_deref) {
nir_ssa_def *value;
if (vec_stride > scalar_size) {
- nir_ssa_def *comps[4] = { NULL, };
+ nir_ssa_def *comps[NIR_MAX_VEC_COMPONENTS] = { NULL, };
for (unsigned i = 0; i < intrin->num_components; i++) {
unsigned comp_offset = i * vec_stride;
nir_ssa_def *comp_addr = build_addr_iadd_imm(b, addr, addr_format,
diff --git a/src/compiler/nir/nir_opt_copy_propagate.c b/src/compiler/nir/nir_opt_copy_propagate.c
index 2f7e4bc49f7..e67bcf3c2ef 100644
--- a/src/compiler/nir/nir_opt_copy_propagate.c
+++ b/src/compiler/nir/nir_opt_copy_propagate.c
@@ -68,7 +68,7 @@ static bool
is_swizzleless_move(nir_alu_instr *instr)
{
if (is_move(instr)) {
- for (unsigned i = 0; i < 4; i++) {
+ for (unsigned i = 0; i < NIR_MAX_VEC_COMPONENTS; i++) {
if (!((instr->dest.write_mask >> i) & 1))
break;
if (instr->src[0].swizzle[i] != i)