diff options
author | Jason Ekstrand <[email protected]> | 2018-10-18 11:59:40 -0500 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-12-16 21:03:02 +0000 |
commit | 3191a823726053242696a7d96f37abd5475fadcc (patch) | |
tree | 0a0e4df0a26cdb134392f0453c2ab28ab8a76be3 /src/compiler/nir/nir_search.c | |
parent | 2fe8708ffda532fe13aab96a19bc1fb9c3fec68f (diff) |
nir: Add support for 1-bit data types
This commit adds support for 1-bit Booleans and integers. Booleans
obviously take a value of true or false. Because we have to define the
semantics of 1-bit signed and unsigned integers, we define uint1_t to
take values of 0 and 1 and int1_t to take values of 0 and -1. 1-bit
arithmetic is then well-defined in the usual way, just with fewer bits.
The definition of int1_t and uint1_t doesn't usually matter but we do
need something for purposes of constant folding.
Reviewed-by: Eric Anholt <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Tested-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/compiler/nir/nir_search.c')
-rw-r--r-- | src/compiler/nir/nir_search.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/nir/nir_search.c b/src/compiler/nir/nir_search.c index c7954b39415..50f5464cef8 100644 --- a/src/compiler/nir/nir_search.c +++ b/src/compiler/nir/nir_search.c @@ -476,8 +476,9 @@ construct_value(nir_builder *build, break; case nir_type_bool: - cval = nir_imm_bool(build, c->data.u); + cval = nir_imm_boolN_t(build, c->data.u, bit_size); break; + default: unreachable("Invalid alu source type"); } |