nir: add iabs-lowering code
[mesa.git] / src / compiler / nir / nir.h
index 7432afd8d94051260a8d2eb78080bb3264ae01c9..aa7ff44985e98f3896242352ff23aa7a9ae223ef 100644 (file)
@@ -3042,6 +3042,9 @@ typedef struct nir_shader_compiler_options {
    /** enables rules to lower fsign to fsub and flt */
    bool lower_fsign;
 
+   /** enables rules to lower iabs to ineg+imax */
+   bool lower_iabs;
+
    /* lower fdph to fdot4 */
    bool lower_fdph;
 
@@ -4276,7 +4279,13 @@ bool nir_lower_subgroups(nir_shader *shader,
 
 bool nir_lower_system_values(nir_shader *shader);
 
-bool nir_lower_compute_system_values(nir_shader *shader);
+typedef struct nir_lower_compute_system_values_options {
+   bool has_base_global_invocation_id:1;
+   bool has_base_work_group_id:1;
+} nir_lower_compute_system_values_options;
+
+bool nir_lower_compute_system_values(nir_shader *shader,
+                                     const nir_lower_compute_system_values_options *options);
 
 enum PACKED nir_lower_tex_packing {
    nir_lower_tex_packing_none = 0,