summaryrefslogtreecommitdiffstats
path: root/src/compiler/nir/nir.c
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2019-06-25 20:33:46 -0500
committerJason Ekstrand <[email protected]>2019-07-10 00:20:59 +0000
commit3acddc733f1b71c3b02c4f881f3b4326bd06c764 (patch)
treed78bda02471cd4db3df4dde8befbc6b8472e8704 /src/compiler/nir/nir.c
parentce5581e23e54be91e4c1ad6a6c5990eca6677ceb (diff)
nir: Refactor nir_src_as_* constant functions
Now that we have the nir_const_value_as_* helpers, every one of these functions is effectively the same except for the suffix they use so we can easily define them with a repeated macro. This also means that they're inline and the fact that the nir_src is being passed by-value should no longer really hurt anything. Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'src/compiler/nir/nir.c')
-rw-r--r--src/compiler/nir/nir.c92
1 files changed, 0 insertions, 92 deletions
diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c
index e0fcc17526c..c7413aa64b0 100644
--- a/src/compiler/nir/nir.c
+++ b/src/compiler/nir/nir.c
@@ -1239,98 +1239,6 @@ nir_const_value_as_float(nir_const_value value, unsigned bit_size)
}
}
-int64_t
-nir_src_comp_as_int(nir_src src, unsigned comp)
-{
- assert(nir_src_is_const(src));
- nir_load_const_instr *load = nir_instr_as_load_const(src.ssa->parent_instr);
-
- assert(comp < load->def.num_components);
- switch (load->def.bit_size) {
- /* int1_t uses 0/-1 convention */
- case 1: return -(int)load->value[comp].b;
- case 8: return load->value[comp].i8;
- case 16: return load->value[comp].i16;
- case 32: return load->value[comp].i32;
- case 64: return load->value[comp].i64;
- default:
- unreachable("Invalid bit size");
- }
-}
-
-uint64_t
-nir_src_comp_as_uint(nir_src src, unsigned comp)
-{
- assert(nir_src_is_const(src));
- nir_load_const_instr *load = nir_instr_as_load_const(src.ssa->parent_instr);
-
- assert(comp < load->def.num_components);
- switch (load->def.bit_size) {
- case 1: return load->value[comp].b;
- case 8: return load->value[comp].u8;
- case 16: return load->value[comp].u16;
- case 32: return load->value[comp].u32;
- case 64: return load->value[comp].u64;
- default:
- unreachable("Invalid bit size");
- }
-}
-
-bool
-nir_src_comp_as_bool(nir_src src, unsigned comp)
-{
- int64_t i = nir_src_comp_as_int(src, comp);
-
- /* Booleans of any size use 0/-1 convention */
- assert(i == 0 || i == -1);
-
- return i;
-}
-
-double
-nir_src_comp_as_float(nir_src src, unsigned comp)
-{
- assert(nir_src_is_const(src));
- nir_load_const_instr *load = nir_instr_as_load_const(src.ssa->parent_instr);
-
- assert(comp < load->def.num_components);
- switch (load->def.bit_size) {
- case 16: return _mesa_half_to_float(load->value[comp].u16);
- case 32: return load->value[comp].f32;
- case 64: return load->value[comp].f64;
- default:
- unreachable("Invalid bit size");
- }
-}
-
-int64_t
-nir_src_as_int(nir_src src)
-{
- assert(nir_src_num_components(src) == 1);
- return nir_src_comp_as_int(src, 0);
-}
-
-uint64_t
-nir_src_as_uint(nir_src src)
-{
- assert(nir_src_num_components(src) == 1);
- return nir_src_comp_as_uint(src, 0);
-}
-
-bool
-nir_src_as_bool(nir_src src)
-{
- assert(nir_src_num_components(src) == 1);
- return nir_src_comp_as_bool(src, 0);
-}
-
-double
-nir_src_as_float(nir_src src)
-{
- assert(nir_src_num_components(src) == 1);
- return nir_src_comp_as_float(src, 0);
-}
-
nir_const_value *
nir_src_as_const_value(nir_src src)
{