nir: Add glsl_base_type unsigned -> signed version helper
authorJesse Natalie <jenatali@microsoft.com>
Mon, 22 Jun 2020 22:00:20 +0000 (15:00 -0700)
committerMarge Bot <eric+marge@anholt.net>
Fri, 25 Sep 2020 20:09:08 +0000 (20:09 +0000)
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>

src/compiler/glsl_types.h

index 8058425..d3ca3c8 100644 (file)
@@ -218,6 +218,27 @@ glsl_unsigned_base_type_of(enum glsl_base_type type)
    }
 }
 
+static inline enum glsl_base_type
+glsl_signed_base_type_of(enum glsl_base_type type)
+{
+   switch (type) {
+   case GLSL_TYPE_UINT:
+      return GLSL_TYPE_INT;
+   case GLSL_TYPE_UINT8:
+      return GLSL_TYPE_INT8;
+   case GLSL_TYPE_UINT16:
+      return GLSL_TYPE_INT16;
+   case GLSL_TYPE_UINT64:
+      return GLSL_TYPE_INT64;
+   default:
+      assert(type == GLSL_TYPE_INT ||
+             type == GLSL_TYPE_INT8 ||
+             type == GLSL_TYPE_INT16 ||
+             type == GLSL_TYPE_INT64);
+      return type;
+   }
+}
+
 enum glsl_sampler_dim {
    GLSL_SAMPLER_DIM_1D = 0,
    GLSL_SAMPLER_DIM_2D,