summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2016-06-14 14:46:25 -0700
committerJordan Justen <jordan.l.justen@intel.com>2016-08-18 16:33:49 -0700
commit79767345ffc3faecb8866710c9bdb8fed0b36937 (patch)
treeab988572e4ec2d029d5fffea89442a1b21eb249a
parente7cf0b2fce2fe149c471248552f44a6488195c3a (diff)
nir/builder: Add nir_ball_fequal and nir_bany_fnequal helpers.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
-rw-r--r--src/compiler/nir/nir_builder.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h
index affa29cb025..60d34f12631 100644
--- a/src/compiler/nir/nir_builder.h
+++ b/src/compiler/nir/nir_builder.h
@@ -253,6 +253,46 @@ nir_vec(nir_builder *build, nir_ssa_def **comp, unsigned num_components)
}
}
+static inline nir_ssa_def *
+nir_ball_fequal(nir_builder *b, nir_ssa_def *x, nir_ssa_def *y)
+{
+ assert(x->num_components == y->num_components);
+
+ switch (x->num_components) {
+ case 4:
+ return nir_ball_fequal4(b, x, y);
+ case 3:
+ return nir_ball_fequal3(b, x, y);
+ case 2:
+ return nir_ball_fequal2(b, x, y);
+ case 1:
+ return nir_feq(b, x, y);
+ default:
+ unreachable("bad component count");
+ return NULL;
+ }
+}
+
+static inline nir_ssa_def *
+nir_bany_fnequal(nir_builder *b, nir_ssa_def *x, nir_ssa_def *y)
+{
+ assert(x->num_components == y->num_components);
+
+ switch (x->num_components) {
+ case 4:
+ return nir_bany_fnequal4(b, x, y);
+ case 3:
+ return nir_bany_fnequal3(b, x, y);
+ case 2:
+ return nir_bany_fnequal2(b, x, y);
+ case 1:
+ return nir_fne(b, x, y);
+ default:
+ unreachable("bad component count");
+ return NULL;
+ }
+}
+
/**
* Similar to nir_fmov, but takes a nir_alu_src instead of a nir_ssa_def.
*/