196c5ddc4Srjs#include "midgard_nir.h" 296c5ddc4Srjs 396c5ddc4Srjs#include "nir.h" 496c5ddc4Srjs#include "nir_builder.h" 596c5ddc4Srjs#include "nir_search.h" 696c5ddc4Srjs#include "nir_search_helpers.h" 796c5ddc4Srjs 896c5ddc4Srjs/* What follows is NIR algebraic transform code for the following 1 996c5ddc4Srjs * transforms: 1096c5ddc4Srjs * ('~fadd', ('fadd', 'a', 'b'), 'a') => ('fadd', ('fadd', 'a', 'a'), 'b') 1196c5ddc4Srjs */ 1296c5ddc4Srjs 1396c5ddc4Srjs 1496c5ddc4Srjs static const nir_search_variable search0_0_0 = { 1596c5ddc4Srjs { nir_search_value_variable, -2 }, 1696c5ddc4Srjs 0, /* a */ 1796c5ddc4Srjs false, 1896c5ddc4Srjs nir_type_invalid, 1996c5ddc4Srjs NULL, 2096c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 2196c5ddc4Srjs}; 2296c5ddc4Srjs 2396c5ddc4Srjsstatic const nir_search_variable search0_0_1 = { 2496c5ddc4Srjs { nir_search_value_variable, -2 }, 2596c5ddc4Srjs 1, /* b */ 2696c5ddc4Srjs false, 2796c5ddc4Srjs nir_type_invalid, 2896c5ddc4Srjs NULL, 2996c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 3096c5ddc4Srjs}; 3196c5ddc4Srjsstatic const nir_search_expression search0_0 = { 3296c5ddc4Srjs { nir_search_value_expression, -2 }, 3396c5ddc4Srjs false, false, 3496c5ddc4Srjs 1, 1, 3596c5ddc4Srjs nir_op_fadd, 3696c5ddc4Srjs { &search0_0_0.value, &search0_0_1.value }, 3796c5ddc4Srjs NULL, 3896c5ddc4Srjs}; 3996c5ddc4Srjs 4096c5ddc4Srjs/* search0_1 -> search0_0_0 in the cache */ 4196c5ddc4Srjsstatic const nir_search_expression search0 = { 4296c5ddc4Srjs { nir_search_value_expression, -2 }, 4396c5ddc4Srjs true, false, 4496c5ddc4Srjs 0, 2, 4596c5ddc4Srjs nir_op_fadd, 4696c5ddc4Srjs { &search0_0.value, &search0_0_0.value }, 4796c5ddc4Srjs NULL, 4896c5ddc4Srjs}; 4996c5ddc4Srjs 5096c5ddc4Srjs /* replace0_0_0 -> search0_0_0 in the cache */ 5196c5ddc4Srjs 5296c5ddc4Srjs/* replace0_0_1 -> search0_0_0 in the cache */ 5396c5ddc4Srjsstatic const nir_search_expression replace0_0 = { 5496c5ddc4Srjs { nir_search_value_expression, -2 }, 5596c5ddc4Srjs false, false, 5696c5ddc4Srjs -1, 0, 5796c5ddc4Srjs nir_op_fadd, 5896c5ddc4Srjs { &search0_0_0.value, &search0_0_0.value }, 5996c5ddc4Srjs NULL, 6096c5ddc4Srjs}; 6196c5ddc4Srjs 6296c5ddc4Srjs/* replace0_1 -> search0_0_1 in the cache */ 6396c5ddc4Srjsstatic const nir_search_expression replace0 = { 6496c5ddc4Srjs { nir_search_value_expression, -2 }, 6596c5ddc4Srjs false, false, 6696c5ddc4Srjs 0, 1, 6796c5ddc4Srjs nir_op_fadd, 6896c5ddc4Srjs { &replace0_0.value, &search0_0_1.value }, 6996c5ddc4Srjs NULL, 7096c5ddc4Srjs}; 7196c5ddc4Srjs 7296c5ddc4Srjs 7396c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_early_state3_xforms[] = { 7496c5ddc4Srjs { &search0, &replace0.value, 0 }, 7596c5ddc4Srjs}; 7696c5ddc4Srjs 7796c5ddc4Srjsstatic const struct per_op_table midgard_nir_lower_algebraic_early_table[nir_num_search_ops] = { 7896c5ddc4Srjs [nir_op_fadd] = { 7996c5ddc4Srjs .filter = (uint16_t []) { 8096c5ddc4Srjs 0, 8196c5ddc4Srjs 0, 8296c5ddc4Srjs 1, 8396c5ddc4Srjs 1, 8496c5ddc4Srjs }, 8596c5ddc4Srjs 8696c5ddc4Srjs .num_filtered_states = 2, 8796c5ddc4Srjs .table = (uint16_t []) { 8896c5ddc4Srjs 8996c5ddc4Srjs 2, 9096c5ddc4Srjs 3, 9196c5ddc4Srjs 3, 9296c5ddc4Srjs 3, 9396c5ddc4Srjs }, 9496c5ddc4Srjs }, 9596c5ddc4Srjs}; 9696c5ddc4Srjs 9796c5ddc4Srjsconst struct transform *midgard_nir_lower_algebraic_early_transforms[] = { 9896c5ddc4Srjs NULL, 9996c5ddc4Srjs NULL, 10096c5ddc4Srjs NULL, 10196c5ddc4Srjs midgard_nir_lower_algebraic_early_state3_xforms, 10296c5ddc4Srjs}; 10396c5ddc4Srjs 10496c5ddc4Srjsconst uint16_t midgard_nir_lower_algebraic_early_transform_counts[] = { 10596c5ddc4Srjs 0, 10696c5ddc4Srjs 0, 10796c5ddc4Srjs 0, 10896c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_early_state3_xforms), 10996c5ddc4Srjs}; 11096c5ddc4Srjs 11196c5ddc4Srjsbool 11296c5ddc4Srjsmidgard_nir_lower_algebraic_early(nir_shader *shader) 11396c5ddc4Srjs{ 11496c5ddc4Srjs bool progress = false; 11596c5ddc4Srjs bool condition_flags[1]; 11696c5ddc4Srjs const nir_shader_compiler_options *options = shader->options; 11796c5ddc4Srjs const shader_info *info = &shader->info; 11896c5ddc4Srjs (void) options; 11996c5ddc4Srjs (void) info; 12096c5ddc4Srjs 12196c5ddc4Srjs condition_flags[0] = true; 12296c5ddc4Srjs 12396c5ddc4Srjs nir_foreach_function(function, shader) { 12496c5ddc4Srjs if (function->impl) { 12596c5ddc4Srjs progress |= nir_algebraic_impl(function->impl, condition_flags, 12696c5ddc4Srjs midgard_nir_lower_algebraic_early_transforms, 12796c5ddc4Srjs midgard_nir_lower_algebraic_early_transform_counts, 12896c5ddc4Srjs midgard_nir_lower_algebraic_early_table); 12996c5ddc4Srjs } 13096c5ddc4Srjs } 13196c5ddc4Srjs 13296c5ddc4Srjs return progress; 13396c5ddc4Srjs} 13496c5ddc4Srjs 13596c5ddc4Srjs 13696c5ddc4Srjs#include "nir.h" 13796c5ddc4Srjs#include "nir_builder.h" 13896c5ddc4Srjs#include "nir_search.h" 13996c5ddc4Srjs#include "nir_search_helpers.h" 14096c5ddc4Srjs 14196c5ddc4Srjs/* What follows is NIR algebraic transform code for the following 54 14296c5ddc4Srjs * transforms: 14396c5ddc4Srjs * ('ineg', 'a') => ('isub', 0, 'a') 14496c5ddc4Srjs * ('fsub', 'a', 'b') => ('fadd', 'a', ('fneg', 'b')) 14596c5ddc4Srjs * ('b32csel', 'a', 'b@32', 0) => ('iand', 'a', 'b') 14696c5ddc4Srjs * ('b32csel', 'a', 0, 'b@32') => ('iand', ('inot', 'a'), 'b') 14796c5ddc4Srjs * ('~fmin', ('fmax', 'a', -1.0), 1.0) => ('fsat_signed_mali', 'a') 14896c5ddc4Srjs * ('~fmax', ('fmin', 'a', 1.0), -1.0) => ('fsat_signed_mali', 'a') 14996c5ddc4Srjs * ('fmax', 'a', 0.0) => ('fclamp_pos_mali', 'a') 15096c5ddc4Srjs * ('ishl', 'a@16', 'b') => ('u2u16', ('ishl', ('u2u32', 'a'), 'b')) 15196c5ddc4Srjs * ('ishr', 'a@16', 'b') => ('i2i16', ('ishr', ('i2i32', 'a'), 'b')) 15296c5ddc4Srjs * ('ushr', 'a@16', 'b') => ('u2u16', ('ushr', ('u2u32', 'a'), 'b')) 15396c5ddc4Srjs * ('ishl', 'a@8', 'b') => ('u2u8', ('u2u16', ('ishl', ('u2u32', ('u2u16', 'a')), 'b'))) 15496c5ddc4Srjs * ('ishr', 'a@8', 'b') => ('i2i8', ('i2i16', ('ishr', ('i2i32', ('i2i16', 'a')), 'b'))) 15596c5ddc4Srjs * ('ushr', 'a@8', 'b') => ('u2u8', ('u2u16', ('ushr', ('u2u32', ('u2u16', 'a')), 'b'))) 15696c5ddc4Srjs * ('fmul', 'a', 2.0) => ('fadd', 'a', 'a') 15796c5ddc4Srjs * ('ufind_msb', 'a@8') => ('isub', 31, ('uclz', ('u2u32', 'a'))) 15896c5ddc4Srjs * ('ufind_msb', 'a@16') => ('isub', 31, ('uclz', ('u2u32', 'a'))) 15996c5ddc4Srjs * ('ufind_msb', 'a@32') => ('isub', 31, ('uclz', 'a')) 16096c5ddc4Srjs * ('u2u8', 'a@32') => ('u2u8', ('u2u16', 'a')) 16196c5ddc4Srjs * ('u2u8', 'a@64') => ('u2u8', ('u2u16', ('u2u32', 'a'))) 16296c5ddc4Srjs * ('u2u16', 'a@64') => ('u2u16', ('u2u32', 'a')) 16396c5ddc4Srjs * ('u2u32', 'a@8') => ('u2u32', ('u2u16', 'a')) 16496c5ddc4Srjs * ('u2u64', 'a@8') => ('u2u64', ('u2u32', ('u2u16', 'a'))) 16596c5ddc4Srjs * ('u2u64', 'a@16') => ('u2u64', ('u2u32', 'a')) 16696c5ddc4Srjs * ('i2i8', 'a@32') => ('i2i8', ('i2i16', 'a')) 16796c5ddc4Srjs * ('i2i8', 'a@64') => ('i2i8', ('i2i16', ('i2i32', 'a'))) 16896c5ddc4Srjs * ('i2i16', 'a@64') => ('i2i16', ('i2i32', 'a')) 16996c5ddc4Srjs * ('i2i32', 'a@8') => ('i2i32', ('i2i16', 'a')) 17096c5ddc4Srjs * ('i2i64', 'a@8') => ('i2i64', ('i2i32', ('i2i16', 'a'))) 17196c5ddc4Srjs * ('i2i64', 'a@16') => ('i2i64', ('i2i32', 'a')) 17296c5ddc4Srjs * ('f2f16', 'a@64') => ('f2f16', ('f2f32', 'a')) 17396c5ddc4Srjs * ('f2f64', 'a@16') => ('f2f64', ('f2f32', 'a')) 17496c5ddc4Srjs * ('i2f16', 'a@64') => ('f2f16', ('f2f32', ('i2f64', 'a'))) 17596c5ddc4Srjs * ('i2f32', 'a@8') => ('i2f32', ('i2i32', ('i2i16', 'a'))) 17696c5ddc4Srjs * ('i2f64', 'a@8') => ('i2f64', ('i2i64', ('i2i32', ('i2i16', 'a')))) 17796c5ddc4Srjs * ('i2f64', 'a@16') => ('i2f64', ('i2i64', ('i2i32', 'a'))) 17896c5ddc4Srjs * ('u2f16', 'a@64') => ('f2f16', ('f2f32', ('u2f64', 'a'))) 17996c5ddc4Srjs * ('u2f32', 'a@8') => ('u2f32', ('u2u32', ('u2u16', 'a'))) 18096c5ddc4Srjs * ('u2f64', 'a@8') => ('u2f64', ('u2u64', ('u2u32', ('u2u16', 'a')))) 18196c5ddc4Srjs * ('u2f64', 'a@16') => ('u2f64', ('u2u64', ('u2u32', 'a'))) 18296c5ddc4Srjs * ('f2i8', 'a@32') => ('i2i8', ('i2i16', ('f2i32', 'a'))) 18396c5ddc4Srjs * ('f2i8', 'a@64') => ('i2i8', ('i2i16', ('i2i32', ('f2i64', 'a')))) 18496c5ddc4Srjs * ('f2i16', 'a@64') => ('i2i16', ('i2i32', ('f2i64', 'a'))) 18596c5ddc4Srjs * ('f2i64', 'a@16') => ('f2i64', ('f2f64', ('f2f32', 'a'))) 18696c5ddc4Srjs * ('f2u8', 'a@32') => ('u2u8', ('u2u16', ('f2u32', 'a'))) 18796c5ddc4Srjs * ('f2u8', 'a@64') => ('u2u8', ('u2u16', ('u2u32', ('f2u64', 'a')))) 18896c5ddc4Srjs * ('f2u16', 'a@64') => ('u2u16', ('u2u32', ('f2u64', 'a'))) 18996c5ddc4Srjs * ('f2u64', 'a@16') => ('f2u64', ('f2f64', ('f2f32', 'a'))) 19096c5ddc4Srjs * ('fge', 'a', '#b') => ('inot', ('flt', 'a', 'b')) 19196c5ddc4Srjs * ('fge32', 'a', '#b') => ('inot', ('flt32', 'a', 'b')) 19296c5ddc4Srjs * ('ige32', 'a', '#b') => ('inot', ('ilt32', 'a', 'b')) 19396c5ddc4Srjs * ('uge32', 'a', '#b') => ('inot', ('ult32', 'a', 'b')) 19496c5ddc4Srjs * ('flt32', '#a', 'b') => ('inot', ('fge32', 'a', 'b')) 19596c5ddc4Srjs * ('ilt32', '#a', 'b') => ('inot', ('ige32', 'a', 'b')) 19696c5ddc4Srjs * ('ult32', '#a', 'b') => ('inot', ('uge32', 'a', 'b')) 19796c5ddc4Srjs */ 19896c5ddc4Srjs 19996c5ddc4Srjs 20096c5ddc4Srjs static const nir_search_variable search1_0 = { 20196c5ddc4Srjs { nir_search_value_variable, -1 }, 20296c5ddc4Srjs 0, /* a */ 20396c5ddc4Srjs false, 20496c5ddc4Srjs nir_type_invalid, 20596c5ddc4Srjs NULL, 20696c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 20796c5ddc4Srjs}; 20896c5ddc4Srjsstatic const nir_search_expression search1 = { 20996c5ddc4Srjs { nir_search_value_expression, -1 }, 21096c5ddc4Srjs false, false, 21196c5ddc4Srjs -1, 0, 21296c5ddc4Srjs nir_op_ineg, 21396c5ddc4Srjs { &search1_0.value }, 21496c5ddc4Srjs NULL, 21596c5ddc4Srjs}; 21696c5ddc4Srjs 21796c5ddc4Srjs static const nir_search_constant replace1_0 = { 21896c5ddc4Srjs { nir_search_value_constant, -1 }, 21996c5ddc4Srjs nir_type_int, { 0x0 /* 0 */ }, 22096c5ddc4Srjs}; 22196c5ddc4Srjs 22296c5ddc4Srjs/* replace1_1 -> search1_0 in the cache */ 22396c5ddc4Srjsstatic const nir_search_expression replace1 = { 22496c5ddc4Srjs { nir_search_value_expression, -1 }, 22596c5ddc4Srjs false, false, 22696c5ddc4Srjs -1, 0, 22796c5ddc4Srjs nir_op_isub, 22896c5ddc4Srjs { &replace1_0.value, &search1_0.value }, 22996c5ddc4Srjs NULL, 23096c5ddc4Srjs}; 23196c5ddc4Srjs 23296c5ddc4Srjs static const nir_search_variable search2_0 = { 23396c5ddc4Srjs { nir_search_value_variable, -2 }, 23496c5ddc4Srjs 0, /* a */ 23596c5ddc4Srjs false, 23696c5ddc4Srjs nir_type_invalid, 23796c5ddc4Srjs NULL, 23896c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 23996c5ddc4Srjs}; 24096c5ddc4Srjs 24196c5ddc4Srjsstatic const nir_search_variable search2_1 = { 24296c5ddc4Srjs { nir_search_value_variable, -2 }, 24396c5ddc4Srjs 1, /* b */ 24496c5ddc4Srjs false, 24596c5ddc4Srjs nir_type_invalid, 24696c5ddc4Srjs NULL, 24796c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 24896c5ddc4Srjs}; 24996c5ddc4Srjsstatic const nir_search_expression search2 = { 25096c5ddc4Srjs { nir_search_value_expression, -2 }, 25196c5ddc4Srjs false, false, 25296c5ddc4Srjs -1, 0, 25396c5ddc4Srjs nir_op_fsub, 25496c5ddc4Srjs { &search2_0.value, &search2_1.value }, 25596c5ddc4Srjs NULL, 25696c5ddc4Srjs}; 25796c5ddc4Srjs 25896c5ddc4Srjs /* replace2_0 -> search2_0 in the cache */ 25996c5ddc4Srjs 26096c5ddc4Srjs/* replace2_1_0 -> search2_1 in the cache */ 26196c5ddc4Srjsstatic const nir_search_expression replace2_1 = { 26296c5ddc4Srjs { nir_search_value_expression, -2 }, 26396c5ddc4Srjs false, false, 26496c5ddc4Srjs -1, 0, 26596c5ddc4Srjs nir_op_fneg, 26696c5ddc4Srjs { &search2_1.value }, 26796c5ddc4Srjs NULL, 26896c5ddc4Srjs}; 26996c5ddc4Srjsstatic const nir_search_expression replace2 = { 27096c5ddc4Srjs { nir_search_value_expression, -2 }, 27196c5ddc4Srjs false, false, 27296c5ddc4Srjs 0, 1, 27396c5ddc4Srjs nir_op_fadd, 27496c5ddc4Srjs { &search2_0.value, &replace2_1.value }, 27596c5ddc4Srjs NULL, 27696c5ddc4Srjs}; 27796c5ddc4Srjs 27896c5ddc4Srjs static const nir_search_variable search3_0 = { 27996c5ddc4Srjs { nir_search_value_variable, 32 }, 28096c5ddc4Srjs 0, /* a */ 28196c5ddc4Srjs false, 28296c5ddc4Srjs nir_type_invalid, 28396c5ddc4Srjs NULL, 28496c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 28596c5ddc4Srjs}; 28696c5ddc4Srjs 28796c5ddc4Srjsstatic const nir_search_variable search3_1 = { 28896c5ddc4Srjs { nir_search_value_variable, 32 }, 28996c5ddc4Srjs 1, /* b */ 29096c5ddc4Srjs false, 29196c5ddc4Srjs nir_type_invalid, 29296c5ddc4Srjs NULL, 29396c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 29496c5ddc4Srjs}; 29596c5ddc4Srjs 29696c5ddc4Srjsstatic const nir_search_constant search3_2 = { 29796c5ddc4Srjs { nir_search_value_constant, 32 }, 29896c5ddc4Srjs nir_type_int, { 0x0 /* 0 */ }, 29996c5ddc4Srjs}; 30096c5ddc4Srjsstatic const nir_search_expression search3 = { 30196c5ddc4Srjs { nir_search_value_expression, 32 }, 30296c5ddc4Srjs false, false, 30396c5ddc4Srjs -1, 0, 30496c5ddc4Srjs nir_op_b32csel, 30596c5ddc4Srjs { &search3_0.value, &search3_1.value, &search3_2.value }, 30696c5ddc4Srjs NULL, 30796c5ddc4Srjs}; 30896c5ddc4Srjs 30996c5ddc4Srjs /* replace3_0 -> search3_0 in the cache */ 31096c5ddc4Srjs 31196c5ddc4Srjs/* replace3_1 -> search3_1 in the cache */ 31296c5ddc4Srjsstatic const nir_search_expression replace3 = { 31396c5ddc4Srjs { nir_search_value_expression, 32 }, 31496c5ddc4Srjs false, false, 31596c5ddc4Srjs 0, 1, 31696c5ddc4Srjs nir_op_iand, 31796c5ddc4Srjs { &search3_0.value, &search3_1.value }, 31896c5ddc4Srjs NULL, 31996c5ddc4Srjs}; 32096c5ddc4Srjs 32196c5ddc4Srjs /* search4_0 -> search3_0 in the cache */ 32296c5ddc4Srjs 32396c5ddc4Srjs/* search4_1 -> search3_2 in the cache */ 32496c5ddc4Srjs 32596c5ddc4Srjs/* search4_2 -> search3_1 in the cache */ 32696c5ddc4Srjsstatic const nir_search_expression search4 = { 32796c5ddc4Srjs { nir_search_value_expression, 32 }, 32896c5ddc4Srjs false, false, 32996c5ddc4Srjs -1, 0, 33096c5ddc4Srjs nir_op_b32csel, 33196c5ddc4Srjs { &search3_0.value, &search3_2.value, &search3_1.value }, 33296c5ddc4Srjs NULL, 33396c5ddc4Srjs}; 33496c5ddc4Srjs 33596c5ddc4Srjs /* replace4_0_0 -> search3_0 in the cache */ 33696c5ddc4Srjsstatic const nir_search_expression replace4_0 = { 33796c5ddc4Srjs { nir_search_value_expression, 32 }, 33896c5ddc4Srjs false, false, 33996c5ddc4Srjs -1, 0, 34096c5ddc4Srjs nir_op_inot, 34196c5ddc4Srjs { &search3_0.value }, 34296c5ddc4Srjs NULL, 34396c5ddc4Srjs}; 34496c5ddc4Srjs 34596c5ddc4Srjs/* replace4_1 -> search3_1 in the cache */ 34696c5ddc4Srjsstatic const nir_search_expression replace4 = { 34796c5ddc4Srjs { nir_search_value_expression, 32 }, 34896c5ddc4Srjs false, false, 34996c5ddc4Srjs 0, 1, 35096c5ddc4Srjs nir_op_iand, 35196c5ddc4Srjs { &replace4_0.value, &search3_1.value }, 35296c5ddc4Srjs NULL, 35396c5ddc4Srjs}; 35496c5ddc4Srjs 35596c5ddc4Srjs /* search5_0_0 -> search1_0 in the cache */ 35696c5ddc4Srjs 35796c5ddc4Srjsstatic const nir_search_constant search5_0_1 = { 35896c5ddc4Srjs { nir_search_value_constant, -1 }, 35996c5ddc4Srjs nir_type_float, { 0xbff0000000000000 /* -1.0 */ }, 36096c5ddc4Srjs}; 36196c5ddc4Srjsstatic const nir_search_expression search5_0 = { 36296c5ddc4Srjs { nir_search_value_expression, -1 }, 36396c5ddc4Srjs false, false, 36496c5ddc4Srjs 1, 1, 36596c5ddc4Srjs nir_op_fmax, 36696c5ddc4Srjs { &search1_0.value, &search5_0_1.value }, 36796c5ddc4Srjs NULL, 36896c5ddc4Srjs}; 36996c5ddc4Srjs 37096c5ddc4Srjsstatic const nir_search_constant search5_1 = { 37196c5ddc4Srjs { nir_search_value_constant, -1 }, 37296c5ddc4Srjs nir_type_float, { 0x3ff0000000000000 /* 1.0 */ }, 37396c5ddc4Srjs}; 37496c5ddc4Srjsstatic const nir_search_expression search5 = { 37596c5ddc4Srjs { nir_search_value_expression, -1 }, 37696c5ddc4Srjs true, false, 37796c5ddc4Srjs 0, 2, 37896c5ddc4Srjs nir_op_fmin, 37996c5ddc4Srjs { &search5_0.value, &search5_1.value }, 38096c5ddc4Srjs NULL, 38196c5ddc4Srjs}; 38296c5ddc4Srjs 38396c5ddc4Srjs /* replace5_0 -> search1_0 in the cache */ 38496c5ddc4Srjsstatic const nir_search_expression replace5 = { 38596c5ddc4Srjs { nir_search_value_expression, -1 }, 38696c5ddc4Srjs false, false, 38796c5ddc4Srjs -1, 0, 38896c5ddc4Srjs nir_op_fsat_signed_mali, 38996c5ddc4Srjs { &search1_0.value }, 39096c5ddc4Srjs NULL, 39196c5ddc4Srjs}; 39296c5ddc4Srjs 39396c5ddc4Srjs /* search6_0_0 -> search1_0 in the cache */ 39496c5ddc4Srjs 39596c5ddc4Srjs/* search6_0_1 -> search5_1 in the cache */ 39696c5ddc4Srjsstatic const nir_search_expression search6_0 = { 39796c5ddc4Srjs { nir_search_value_expression, -1 }, 39896c5ddc4Srjs false, false, 39996c5ddc4Srjs 1, 1, 40096c5ddc4Srjs nir_op_fmin, 40196c5ddc4Srjs { &search1_0.value, &search5_1.value }, 40296c5ddc4Srjs NULL, 40396c5ddc4Srjs}; 40496c5ddc4Srjs 40596c5ddc4Srjs/* search6_1 -> search5_0_1 in the cache */ 40696c5ddc4Srjsstatic const nir_search_expression search6 = { 40796c5ddc4Srjs { nir_search_value_expression, -1 }, 40896c5ddc4Srjs true, false, 40996c5ddc4Srjs 0, 2, 41096c5ddc4Srjs nir_op_fmax, 41196c5ddc4Srjs { &search6_0.value, &search5_0_1.value }, 41296c5ddc4Srjs NULL, 41396c5ddc4Srjs}; 41496c5ddc4Srjs 41596c5ddc4Srjs /* replace6_0 -> search1_0 in the cache */ 41696c5ddc4Srjs/* replace6 -> replace5 in the cache */ 41796c5ddc4Srjs 41896c5ddc4Srjs /* search7_0 -> search1_0 in the cache */ 41996c5ddc4Srjs 42096c5ddc4Srjsstatic const nir_search_constant search7_1 = { 42196c5ddc4Srjs { nir_search_value_constant, -1 }, 42296c5ddc4Srjs nir_type_float, { 0x0 /* 0.0 */ }, 42396c5ddc4Srjs}; 42496c5ddc4Srjsstatic const nir_search_expression search7 = { 42596c5ddc4Srjs { nir_search_value_expression, -1 }, 42696c5ddc4Srjs false, false, 42796c5ddc4Srjs 0, 1, 42896c5ddc4Srjs nir_op_fmax, 42996c5ddc4Srjs { &search1_0.value, &search7_1.value }, 43096c5ddc4Srjs NULL, 43196c5ddc4Srjs}; 43296c5ddc4Srjs 43396c5ddc4Srjs /* replace7_0 -> search1_0 in the cache */ 43496c5ddc4Srjsstatic const nir_search_expression replace7 = { 43596c5ddc4Srjs { nir_search_value_expression, -1 }, 43696c5ddc4Srjs false, false, 43796c5ddc4Srjs -1, 0, 43896c5ddc4Srjs nir_op_fclamp_pos_mali, 43996c5ddc4Srjs { &search1_0.value }, 44096c5ddc4Srjs NULL, 44196c5ddc4Srjs}; 44296c5ddc4Srjs 44396c5ddc4Srjs static const nir_search_variable search8_0 = { 44496c5ddc4Srjs { nir_search_value_variable, 16 }, 44596c5ddc4Srjs 0, /* a */ 44696c5ddc4Srjs false, 44796c5ddc4Srjs nir_type_invalid, 44896c5ddc4Srjs NULL, 44996c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 45096c5ddc4Srjs}; 45196c5ddc4Srjs 45296c5ddc4Srjs/* search8_1 -> search3_1 in the cache */ 45396c5ddc4Srjsstatic const nir_search_expression search8 = { 45496c5ddc4Srjs { nir_search_value_expression, 16 }, 45596c5ddc4Srjs false, false, 45696c5ddc4Srjs -1, 0, 45796c5ddc4Srjs nir_op_ishl, 45896c5ddc4Srjs { &search8_0.value, &search3_1.value }, 45996c5ddc4Srjs NULL, 46096c5ddc4Srjs}; 46196c5ddc4Srjs 46296c5ddc4Srjs /* replace8_0_0_0 -> search8_0 in the cache */ 46396c5ddc4Srjsstatic const nir_search_expression replace8_0_0 = { 46496c5ddc4Srjs { nir_search_value_expression, 32 }, 46596c5ddc4Srjs false, false, 46696c5ddc4Srjs -1, 0, 46796c5ddc4Srjs nir_op_u2u32, 46896c5ddc4Srjs { &search8_0.value }, 46996c5ddc4Srjs NULL, 47096c5ddc4Srjs}; 47196c5ddc4Srjs 47296c5ddc4Srjs/* replace8_0_1 -> search3_1 in the cache */ 47396c5ddc4Srjsstatic const nir_search_expression replace8_0 = { 47496c5ddc4Srjs { nir_search_value_expression, 32 }, 47596c5ddc4Srjs false, false, 47696c5ddc4Srjs -1, 0, 47796c5ddc4Srjs nir_op_ishl, 47896c5ddc4Srjs { &replace8_0_0.value, &search3_1.value }, 47996c5ddc4Srjs NULL, 48096c5ddc4Srjs}; 48196c5ddc4Srjsstatic const nir_search_expression replace8 = { 48296c5ddc4Srjs { nir_search_value_expression, 16 }, 48396c5ddc4Srjs false, false, 48496c5ddc4Srjs -1, 0, 48596c5ddc4Srjs nir_op_u2u16, 48696c5ddc4Srjs { &replace8_0.value }, 48796c5ddc4Srjs NULL, 48896c5ddc4Srjs}; 48996c5ddc4Srjs 49096c5ddc4Srjs /* search9_0 -> search8_0 in the cache */ 49196c5ddc4Srjs 49296c5ddc4Srjs/* search9_1 -> search3_1 in the cache */ 49396c5ddc4Srjsstatic const nir_search_expression search9 = { 49496c5ddc4Srjs { nir_search_value_expression, 16 }, 49596c5ddc4Srjs false, false, 49696c5ddc4Srjs -1, 0, 49796c5ddc4Srjs nir_op_ishr, 49896c5ddc4Srjs { &search8_0.value, &search3_1.value }, 49996c5ddc4Srjs NULL, 50096c5ddc4Srjs}; 50196c5ddc4Srjs 50296c5ddc4Srjs /* replace9_0_0_0 -> search8_0 in the cache */ 50396c5ddc4Srjsstatic const nir_search_expression replace9_0_0 = { 50496c5ddc4Srjs { nir_search_value_expression, 32 }, 50596c5ddc4Srjs false, false, 50696c5ddc4Srjs -1, 0, 50796c5ddc4Srjs nir_op_i2i32, 50896c5ddc4Srjs { &search8_0.value }, 50996c5ddc4Srjs NULL, 51096c5ddc4Srjs}; 51196c5ddc4Srjs 51296c5ddc4Srjs/* replace9_0_1 -> search3_1 in the cache */ 51396c5ddc4Srjsstatic const nir_search_expression replace9_0 = { 51496c5ddc4Srjs { nir_search_value_expression, 32 }, 51596c5ddc4Srjs false, false, 51696c5ddc4Srjs -1, 0, 51796c5ddc4Srjs nir_op_ishr, 51896c5ddc4Srjs { &replace9_0_0.value, &search3_1.value }, 51996c5ddc4Srjs NULL, 52096c5ddc4Srjs}; 52196c5ddc4Srjsstatic const nir_search_expression replace9 = { 52296c5ddc4Srjs { nir_search_value_expression, 16 }, 52396c5ddc4Srjs false, false, 52496c5ddc4Srjs -1, 0, 52596c5ddc4Srjs nir_op_i2i16, 52696c5ddc4Srjs { &replace9_0.value }, 52796c5ddc4Srjs NULL, 52896c5ddc4Srjs}; 52996c5ddc4Srjs 53096c5ddc4Srjs /* search10_0 -> search8_0 in the cache */ 53196c5ddc4Srjs 53296c5ddc4Srjs/* search10_1 -> search3_1 in the cache */ 53396c5ddc4Srjsstatic const nir_search_expression search10 = { 53496c5ddc4Srjs { nir_search_value_expression, 16 }, 53596c5ddc4Srjs false, false, 53696c5ddc4Srjs -1, 0, 53796c5ddc4Srjs nir_op_ushr, 53896c5ddc4Srjs { &search8_0.value, &search3_1.value }, 53996c5ddc4Srjs NULL, 54096c5ddc4Srjs}; 54196c5ddc4Srjs 54296c5ddc4Srjs /* replace10_0_0_0 -> search8_0 in the cache */ 54396c5ddc4Srjs/* replace10_0_0 -> replace8_0_0 in the cache */ 54496c5ddc4Srjs 54596c5ddc4Srjs/* replace10_0_1 -> search3_1 in the cache */ 54696c5ddc4Srjsstatic const nir_search_expression replace10_0 = { 54796c5ddc4Srjs { nir_search_value_expression, 32 }, 54896c5ddc4Srjs false, false, 54996c5ddc4Srjs -1, 0, 55096c5ddc4Srjs nir_op_ushr, 55196c5ddc4Srjs { &replace8_0_0.value, &search3_1.value }, 55296c5ddc4Srjs NULL, 55396c5ddc4Srjs}; 55496c5ddc4Srjsstatic const nir_search_expression replace10 = { 55596c5ddc4Srjs { nir_search_value_expression, 16 }, 55696c5ddc4Srjs false, false, 55796c5ddc4Srjs -1, 0, 55896c5ddc4Srjs nir_op_u2u16, 55996c5ddc4Srjs { &replace10_0.value }, 56096c5ddc4Srjs NULL, 56196c5ddc4Srjs}; 56296c5ddc4Srjs 56396c5ddc4Srjs static const nir_search_variable search11_0 = { 56496c5ddc4Srjs { nir_search_value_variable, 8 }, 56596c5ddc4Srjs 0, /* a */ 56696c5ddc4Srjs false, 56796c5ddc4Srjs nir_type_invalid, 56896c5ddc4Srjs NULL, 56996c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 57096c5ddc4Srjs}; 57196c5ddc4Srjs 57296c5ddc4Srjs/* search11_1 -> search3_1 in the cache */ 57396c5ddc4Srjsstatic const nir_search_expression search11 = { 57496c5ddc4Srjs { nir_search_value_expression, 8 }, 57596c5ddc4Srjs false, false, 57696c5ddc4Srjs -1, 0, 57796c5ddc4Srjs nir_op_ishl, 57896c5ddc4Srjs { &search11_0.value, &search3_1.value }, 57996c5ddc4Srjs NULL, 58096c5ddc4Srjs}; 58196c5ddc4Srjs 58296c5ddc4Srjs /* replace11_0_0_0_0_0 -> search11_0 in the cache */ 58396c5ddc4Srjsstatic const nir_search_expression replace11_0_0_0_0 = { 58496c5ddc4Srjs { nir_search_value_expression, 16 }, 58596c5ddc4Srjs false, false, 58696c5ddc4Srjs -1, 0, 58796c5ddc4Srjs nir_op_u2u16, 58896c5ddc4Srjs { &search11_0.value }, 58996c5ddc4Srjs NULL, 59096c5ddc4Srjs}; 59196c5ddc4Srjsstatic const nir_search_expression replace11_0_0_0 = { 59296c5ddc4Srjs { nir_search_value_expression, 32 }, 59396c5ddc4Srjs false, false, 59496c5ddc4Srjs -1, 0, 59596c5ddc4Srjs nir_op_u2u32, 59696c5ddc4Srjs { &replace11_0_0_0_0.value }, 59796c5ddc4Srjs NULL, 59896c5ddc4Srjs}; 59996c5ddc4Srjs 60096c5ddc4Srjs/* replace11_0_0_1 -> search3_1 in the cache */ 60196c5ddc4Srjsstatic const nir_search_expression replace11_0_0 = { 60296c5ddc4Srjs { nir_search_value_expression, 32 }, 60396c5ddc4Srjs false, false, 60496c5ddc4Srjs -1, 0, 60596c5ddc4Srjs nir_op_ishl, 60696c5ddc4Srjs { &replace11_0_0_0.value, &search3_1.value }, 60796c5ddc4Srjs NULL, 60896c5ddc4Srjs}; 60996c5ddc4Srjsstatic const nir_search_expression replace11_0 = { 61096c5ddc4Srjs { nir_search_value_expression, 16 }, 61196c5ddc4Srjs false, false, 61296c5ddc4Srjs -1, 0, 61396c5ddc4Srjs nir_op_u2u16, 61496c5ddc4Srjs { &replace11_0_0.value }, 61596c5ddc4Srjs NULL, 61696c5ddc4Srjs}; 61796c5ddc4Srjsstatic const nir_search_expression replace11 = { 61896c5ddc4Srjs { nir_search_value_expression, 8 }, 61996c5ddc4Srjs false, false, 62096c5ddc4Srjs -1, 0, 62196c5ddc4Srjs nir_op_u2u8, 62296c5ddc4Srjs { &replace11_0.value }, 62396c5ddc4Srjs NULL, 62496c5ddc4Srjs}; 62596c5ddc4Srjs 62696c5ddc4Srjs /* search12_0 -> search11_0 in the cache */ 62796c5ddc4Srjs 62896c5ddc4Srjs/* search12_1 -> search3_1 in the cache */ 62996c5ddc4Srjsstatic const nir_search_expression search12 = { 63096c5ddc4Srjs { nir_search_value_expression, 8 }, 63196c5ddc4Srjs false, false, 63296c5ddc4Srjs -1, 0, 63396c5ddc4Srjs nir_op_ishr, 63496c5ddc4Srjs { &search11_0.value, &search3_1.value }, 63596c5ddc4Srjs NULL, 63696c5ddc4Srjs}; 63796c5ddc4Srjs 63896c5ddc4Srjs /* replace12_0_0_0_0_0 -> search11_0 in the cache */ 63996c5ddc4Srjsstatic const nir_search_expression replace12_0_0_0_0 = { 64096c5ddc4Srjs { nir_search_value_expression, 16 }, 64196c5ddc4Srjs false, false, 64296c5ddc4Srjs -1, 0, 64396c5ddc4Srjs nir_op_i2i16, 64496c5ddc4Srjs { &search11_0.value }, 64596c5ddc4Srjs NULL, 64696c5ddc4Srjs}; 64796c5ddc4Srjsstatic const nir_search_expression replace12_0_0_0 = { 64896c5ddc4Srjs { nir_search_value_expression, 32 }, 64996c5ddc4Srjs false, false, 65096c5ddc4Srjs -1, 0, 65196c5ddc4Srjs nir_op_i2i32, 65296c5ddc4Srjs { &replace12_0_0_0_0.value }, 65396c5ddc4Srjs NULL, 65496c5ddc4Srjs}; 65596c5ddc4Srjs 65696c5ddc4Srjs/* replace12_0_0_1 -> search3_1 in the cache */ 65796c5ddc4Srjsstatic const nir_search_expression replace12_0_0 = { 65896c5ddc4Srjs { nir_search_value_expression, 32 }, 65996c5ddc4Srjs false, false, 66096c5ddc4Srjs -1, 0, 66196c5ddc4Srjs nir_op_ishr, 66296c5ddc4Srjs { &replace12_0_0_0.value, &search3_1.value }, 66396c5ddc4Srjs NULL, 66496c5ddc4Srjs}; 66596c5ddc4Srjsstatic const nir_search_expression replace12_0 = { 66696c5ddc4Srjs { nir_search_value_expression, 16 }, 66796c5ddc4Srjs false, false, 66896c5ddc4Srjs -1, 0, 66996c5ddc4Srjs nir_op_i2i16, 67096c5ddc4Srjs { &replace12_0_0.value }, 67196c5ddc4Srjs NULL, 67296c5ddc4Srjs}; 67396c5ddc4Srjsstatic const nir_search_expression replace12 = { 67496c5ddc4Srjs { nir_search_value_expression, 8 }, 67596c5ddc4Srjs false, false, 67696c5ddc4Srjs -1, 0, 67796c5ddc4Srjs nir_op_i2i8, 67896c5ddc4Srjs { &replace12_0.value }, 67996c5ddc4Srjs NULL, 68096c5ddc4Srjs}; 68196c5ddc4Srjs 68296c5ddc4Srjs /* search13_0 -> search11_0 in the cache */ 68396c5ddc4Srjs 68496c5ddc4Srjs/* search13_1 -> search3_1 in the cache */ 68596c5ddc4Srjsstatic const nir_search_expression search13 = { 68696c5ddc4Srjs { nir_search_value_expression, 8 }, 68796c5ddc4Srjs false, false, 68896c5ddc4Srjs -1, 0, 68996c5ddc4Srjs nir_op_ushr, 69096c5ddc4Srjs { &search11_0.value, &search3_1.value }, 69196c5ddc4Srjs NULL, 69296c5ddc4Srjs}; 69396c5ddc4Srjs 69496c5ddc4Srjs /* replace13_0_0_0_0_0 -> search11_0 in the cache */ 69596c5ddc4Srjs/* replace13_0_0_0_0 -> replace11_0_0_0_0 in the cache */ 69696c5ddc4Srjs/* replace13_0_0_0 -> replace11_0_0_0 in the cache */ 69796c5ddc4Srjs 69896c5ddc4Srjs/* replace13_0_0_1 -> search3_1 in the cache */ 69996c5ddc4Srjsstatic const nir_search_expression replace13_0_0 = { 70096c5ddc4Srjs { nir_search_value_expression, 32 }, 70196c5ddc4Srjs false, false, 70296c5ddc4Srjs -1, 0, 70396c5ddc4Srjs nir_op_ushr, 70496c5ddc4Srjs { &replace11_0_0_0.value, &search3_1.value }, 70596c5ddc4Srjs NULL, 70696c5ddc4Srjs}; 70796c5ddc4Srjsstatic const nir_search_expression replace13_0 = { 70896c5ddc4Srjs { nir_search_value_expression, 16 }, 70996c5ddc4Srjs false, false, 71096c5ddc4Srjs -1, 0, 71196c5ddc4Srjs nir_op_u2u16, 71296c5ddc4Srjs { &replace13_0_0.value }, 71396c5ddc4Srjs NULL, 71496c5ddc4Srjs}; 71596c5ddc4Srjsstatic const nir_search_expression replace13 = { 71696c5ddc4Srjs { nir_search_value_expression, 8 }, 71796c5ddc4Srjs false, false, 71896c5ddc4Srjs -1, 0, 71996c5ddc4Srjs nir_op_u2u8, 72096c5ddc4Srjs { &replace13_0.value }, 72196c5ddc4Srjs NULL, 72296c5ddc4Srjs}; 72396c5ddc4Srjs 72496c5ddc4Srjs /* search14_0 -> search1_0 in the cache */ 72596c5ddc4Srjs 72696c5ddc4Srjsstatic const nir_search_constant search14_1 = { 72796c5ddc4Srjs { nir_search_value_constant, -1 }, 72896c5ddc4Srjs nir_type_float, { 0x4000000000000000 /* 2.0 */ }, 72996c5ddc4Srjs}; 73096c5ddc4Srjsstatic const nir_search_expression search14 = { 73196c5ddc4Srjs { nir_search_value_expression, -1 }, 73296c5ddc4Srjs false, false, 73396c5ddc4Srjs 0, 1, 73496c5ddc4Srjs nir_op_fmul, 73596c5ddc4Srjs { &search1_0.value, &search14_1.value }, 73696c5ddc4Srjs NULL, 73796c5ddc4Srjs}; 73896c5ddc4Srjs 73996c5ddc4Srjs /* replace14_0 -> search1_0 in the cache */ 74096c5ddc4Srjs 74196c5ddc4Srjs/* replace14_1 -> search1_0 in the cache */ 74296c5ddc4Srjsstatic const nir_search_expression replace14 = { 74396c5ddc4Srjs { nir_search_value_expression, -1 }, 74496c5ddc4Srjs false, false, 74596c5ddc4Srjs -1, 0, 74696c5ddc4Srjs nir_op_fadd, 74796c5ddc4Srjs { &search1_0.value, &search1_0.value }, 74896c5ddc4Srjs NULL, 74996c5ddc4Srjs}; 75096c5ddc4Srjs 75196c5ddc4Srjs /* search15_0 -> search11_0 in the cache */ 75296c5ddc4Srjsstatic const nir_search_expression search15 = { 75396c5ddc4Srjs { nir_search_value_expression, 32 }, 75496c5ddc4Srjs false, false, 75596c5ddc4Srjs -1, 0, 75696c5ddc4Srjs nir_op_ufind_msb, 75796c5ddc4Srjs { &search11_0.value }, 75896c5ddc4Srjs NULL, 75996c5ddc4Srjs}; 76096c5ddc4Srjs 76196c5ddc4Srjs static const nir_search_constant replace15_0 = { 76296c5ddc4Srjs { nir_search_value_constant, 32 }, 76396c5ddc4Srjs nir_type_int, { 0x1f /* 31 */ }, 76496c5ddc4Srjs}; 76596c5ddc4Srjs 76696c5ddc4Srjs/* replace15_1_0_0 -> search11_0 in the cache */ 76796c5ddc4Srjsstatic const nir_search_expression replace15_1_0 = { 76896c5ddc4Srjs { nir_search_value_expression, 32 }, 76996c5ddc4Srjs false, false, 77096c5ddc4Srjs -1, 0, 77196c5ddc4Srjs nir_op_u2u32, 77296c5ddc4Srjs { &search11_0.value }, 77396c5ddc4Srjs NULL, 77496c5ddc4Srjs}; 77596c5ddc4Srjsstatic const nir_search_expression replace15_1 = { 77696c5ddc4Srjs { nir_search_value_expression, 32 }, 77796c5ddc4Srjs false, false, 77896c5ddc4Srjs -1, 0, 77996c5ddc4Srjs nir_op_uclz, 78096c5ddc4Srjs { &replace15_1_0.value }, 78196c5ddc4Srjs NULL, 78296c5ddc4Srjs}; 78396c5ddc4Srjsstatic const nir_search_expression replace15 = { 78496c5ddc4Srjs { nir_search_value_expression, 32 }, 78596c5ddc4Srjs false, false, 78696c5ddc4Srjs -1, 0, 78796c5ddc4Srjs nir_op_isub, 78896c5ddc4Srjs { &replace15_0.value, &replace15_1.value }, 78996c5ddc4Srjs NULL, 79096c5ddc4Srjs}; 79196c5ddc4Srjs 79296c5ddc4Srjs /* search16_0 -> search8_0 in the cache */ 79396c5ddc4Srjsstatic const nir_search_expression search16 = { 79496c5ddc4Srjs { nir_search_value_expression, 32 }, 79596c5ddc4Srjs false, false, 79696c5ddc4Srjs -1, 0, 79796c5ddc4Srjs nir_op_ufind_msb, 79896c5ddc4Srjs { &search8_0.value }, 79996c5ddc4Srjs NULL, 80096c5ddc4Srjs}; 80196c5ddc4Srjs 80296c5ddc4Srjs /* replace16_0 -> replace15_0 in the cache */ 80396c5ddc4Srjs 80496c5ddc4Srjs/* replace16_1_0_0 -> search8_0 in the cache */ 80596c5ddc4Srjs/* replace16_1_0 -> replace8_0_0 in the cache */ 80696c5ddc4Srjsstatic const nir_search_expression replace16_1 = { 80796c5ddc4Srjs { nir_search_value_expression, 32 }, 80896c5ddc4Srjs false, false, 80996c5ddc4Srjs -1, 0, 81096c5ddc4Srjs nir_op_uclz, 81196c5ddc4Srjs { &replace8_0_0.value }, 81296c5ddc4Srjs NULL, 81396c5ddc4Srjs}; 81496c5ddc4Srjsstatic const nir_search_expression replace16 = { 81596c5ddc4Srjs { nir_search_value_expression, 32 }, 81696c5ddc4Srjs false, false, 81796c5ddc4Srjs -1, 0, 81896c5ddc4Srjs nir_op_isub, 81996c5ddc4Srjs { &replace15_0.value, &replace16_1.value }, 82096c5ddc4Srjs NULL, 82196c5ddc4Srjs}; 82296c5ddc4Srjs 82396c5ddc4Srjs /* search17_0 -> search3_0 in the cache */ 82496c5ddc4Srjsstatic const nir_search_expression search17 = { 82596c5ddc4Srjs { nir_search_value_expression, 32 }, 82696c5ddc4Srjs false, false, 82796c5ddc4Srjs -1, 0, 82896c5ddc4Srjs nir_op_ufind_msb, 82996c5ddc4Srjs { &search3_0.value }, 83096c5ddc4Srjs NULL, 83196c5ddc4Srjs}; 83296c5ddc4Srjs 83396c5ddc4Srjs /* replace17_0 -> replace15_0 in the cache */ 83496c5ddc4Srjs 83596c5ddc4Srjs/* replace17_1_0 -> search3_0 in the cache */ 83696c5ddc4Srjsstatic const nir_search_expression replace17_1 = { 83796c5ddc4Srjs { nir_search_value_expression, 32 }, 83896c5ddc4Srjs false, false, 83996c5ddc4Srjs -1, 0, 84096c5ddc4Srjs nir_op_uclz, 84196c5ddc4Srjs { &search3_0.value }, 84296c5ddc4Srjs NULL, 84396c5ddc4Srjs}; 84496c5ddc4Srjsstatic const nir_search_expression replace17 = { 84596c5ddc4Srjs { nir_search_value_expression, 32 }, 84696c5ddc4Srjs false, false, 84796c5ddc4Srjs -1, 0, 84896c5ddc4Srjs nir_op_isub, 84996c5ddc4Srjs { &replace15_0.value, &replace17_1.value }, 85096c5ddc4Srjs NULL, 85196c5ddc4Srjs}; 85296c5ddc4Srjs 85396c5ddc4Srjs /* search18_0 -> search3_0 in the cache */ 85496c5ddc4Srjsstatic const nir_search_expression search18 = { 85596c5ddc4Srjs { nir_search_value_expression, 8 }, 85696c5ddc4Srjs false, false, 85796c5ddc4Srjs -1, 0, 85896c5ddc4Srjs nir_op_u2u8, 85996c5ddc4Srjs { &search3_0.value }, 86096c5ddc4Srjs NULL, 86196c5ddc4Srjs}; 86296c5ddc4Srjs 86396c5ddc4Srjs /* replace18_0_0 -> search3_0 in the cache */ 86496c5ddc4Srjsstatic const nir_search_expression replace18_0 = { 86596c5ddc4Srjs { nir_search_value_expression, 16 }, 86696c5ddc4Srjs false, false, 86796c5ddc4Srjs -1, 0, 86896c5ddc4Srjs nir_op_u2u16, 86996c5ddc4Srjs { &search3_0.value }, 87096c5ddc4Srjs NULL, 87196c5ddc4Srjs}; 87296c5ddc4Srjsstatic const nir_search_expression replace18 = { 87396c5ddc4Srjs { nir_search_value_expression, 8 }, 87496c5ddc4Srjs false, false, 87596c5ddc4Srjs -1, 0, 87696c5ddc4Srjs nir_op_u2u8, 87796c5ddc4Srjs { &replace18_0.value }, 87896c5ddc4Srjs NULL, 87996c5ddc4Srjs}; 88096c5ddc4Srjs 88196c5ddc4Srjs static const nir_search_variable search19_0 = { 88296c5ddc4Srjs { nir_search_value_variable, 64 }, 88396c5ddc4Srjs 0, /* a */ 88496c5ddc4Srjs false, 88596c5ddc4Srjs nir_type_invalid, 88696c5ddc4Srjs NULL, 88796c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 88896c5ddc4Srjs}; 88996c5ddc4Srjsstatic const nir_search_expression search19 = { 89096c5ddc4Srjs { nir_search_value_expression, 8 }, 89196c5ddc4Srjs false, false, 89296c5ddc4Srjs -1, 0, 89396c5ddc4Srjs nir_op_u2u8, 89496c5ddc4Srjs { &search19_0.value }, 89596c5ddc4Srjs NULL, 89696c5ddc4Srjs}; 89796c5ddc4Srjs 89896c5ddc4Srjs /* replace19_0_0_0 -> search19_0 in the cache */ 89996c5ddc4Srjsstatic const nir_search_expression replace19_0_0 = { 90096c5ddc4Srjs { nir_search_value_expression, 32 }, 90196c5ddc4Srjs false, false, 90296c5ddc4Srjs -1, 0, 90396c5ddc4Srjs nir_op_u2u32, 90496c5ddc4Srjs { &search19_0.value }, 90596c5ddc4Srjs NULL, 90696c5ddc4Srjs}; 90796c5ddc4Srjsstatic const nir_search_expression replace19_0 = { 90896c5ddc4Srjs { nir_search_value_expression, 16 }, 90996c5ddc4Srjs false, false, 91096c5ddc4Srjs -1, 0, 91196c5ddc4Srjs nir_op_u2u16, 91296c5ddc4Srjs { &replace19_0_0.value }, 91396c5ddc4Srjs NULL, 91496c5ddc4Srjs}; 91596c5ddc4Srjsstatic const nir_search_expression replace19 = { 91696c5ddc4Srjs { nir_search_value_expression, 8 }, 91796c5ddc4Srjs false, false, 91896c5ddc4Srjs -1, 0, 91996c5ddc4Srjs nir_op_u2u8, 92096c5ddc4Srjs { &replace19_0.value }, 92196c5ddc4Srjs NULL, 92296c5ddc4Srjs}; 92396c5ddc4Srjs 92496c5ddc4Srjs /* search20_0 -> search19_0 in the cache */ 92596c5ddc4Srjsstatic const nir_search_expression search20 = { 92696c5ddc4Srjs { nir_search_value_expression, 16 }, 92796c5ddc4Srjs false, false, 92896c5ddc4Srjs -1, 0, 92996c5ddc4Srjs nir_op_u2u16, 93096c5ddc4Srjs { &search19_0.value }, 93196c5ddc4Srjs NULL, 93296c5ddc4Srjs}; 93396c5ddc4Srjs 93496c5ddc4Srjs /* replace20_0_0 -> search19_0 in the cache */ 93596c5ddc4Srjs/* replace20_0 -> replace19_0_0 in the cache */ 93696c5ddc4Srjs/* replace20 -> replace19_0 in the cache */ 93796c5ddc4Srjs 93896c5ddc4Srjs /* search21_0 -> search11_0 in the cache */ 93996c5ddc4Srjs/* search21 -> replace15_1_0 in the cache */ 94096c5ddc4Srjs 94196c5ddc4Srjs /* replace21_0_0 -> search11_0 in the cache */ 94296c5ddc4Srjs/* replace21_0 -> replace11_0_0_0_0 in the cache */ 94396c5ddc4Srjs/* replace21 -> replace11_0_0_0 in the cache */ 94496c5ddc4Srjs 94596c5ddc4Srjs /* search22_0 -> search11_0 in the cache */ 94696c5ddc4Srjsstatic const nir_search_expression search22 = { 94796c5ddc4Srjs { nir_search_value_expression, 64 }, 94896c5ddc4Srjs false, false, 94996c5ddc4Srjs -1, 0, 95096c5ddc4Srjs nir_op_u2u64, 95196c5ddc4Srjs { &search11_0.value }, 95296c5ddc4Srjs NULL, 95396c5ddc4Srjs}; 95496c5ddc4Srjs 95596c5ddc4Srjs /* replace22_0_0_0 -> search11_0 in the cache */ 95696c5ddc4Srjs/* replace22_0_0 -> replace11_0_0_0_0 in the cache */ 95796c5ddc4Srjs/* replace22_0 -> replace11_0_0_0 in the cache */ 95896c5ddc4Srjsstatic const nir_search_expression replace22 = { 95996c5ddc4Srjs { nir_search_value_expression, 64 }, 96096c5ddc4Srjs false, false, 96196c5ddc4Srjs -1, 0, 96296c5ddc4Srjs nir_op_u2u64, 96396c5ddc4Srjs { &replace11_0_0_0.value }, 96496c5ddc4Srjs NULL, 96596c5ddc4Srjs}; 96696c5ddc4Srjs 96796c5ddc4Srjs /* search23_0 -> search8_0 in the cache */ 96896c5ddc4Srjsstatic const nir_search_expression search23 = { 96996c5ddc4Srjs { nir_search_value_expression, 64 }, 97096c5ddc4Srjs false, false, 97196c5ddc4Srjs -1, 0, 97296c5ddc4Srjs nir_op_u2u64, 97396c5ddc4Srjs { &search8_0.value }, 97496c5ddc4Srjs NULL, 97596c5ddc4Srjs}; 97696c5ddc4Srjs 97796c5ddc4Srjs /* replace23_0_0 -> search8_0 in the cache */ 97896c5ddc4Srjs/* replace23_0 -> replace8_0_0 in the cache */ 97996c5ddc4Srjsstatic const nir_search_expression replace23 = { 98096c5ddc4Srjs { nir_search_value_expression, 64 }, 98196c5ddc4Srjs false, false, 98296c5ddc4Srjs -1, 0, 98396c5ddc4Srjs nir_op_u2u64, 98496c5ddc4Srjs { &replace8_0_0.value }, 98596c5ddc4Srjs NULL, 98696c5ddc4Srjs}; 98796c5ddc4Srjs 98896c5ddc4Srjs /* search24_0 -> search3_0 in the cache */ 98996c5ddc4Srjsstatic const nir_search_expression search24 = { 99096c5ddc4Srjs { nir_search_value_expression, 8 }, 99196c5ddc4Srjs false, false, 99296c5ddc4Srjs -1, 0, 99396c5ddc4Srjs nir_op_i2i8, 99496c5ddc4Srjs { &search3_0.value }, 99596c5ddc4Srjs NULL, 99696c5ddc4Srjs}; 99796c5ddc4Srjs 99896c5ddc4Srjs /* replace24_0_0 -> search3_0 in the cache */ 99996c5ddc4Srjsstatic const nir_search_expression replace24_0 = { 100096c5ddc4Srjs { nir_search_value_expression, 16 }, 100196c5ddc4Srjs false, false, 100296c5ddc4Srjs -1, 0, 100396c5ddc4Srjs nir_op_i2i16, 100496c5ddc4Srjs { &search3_0.value }, 100596c5ddc4Srjs NULL, 100696c5ddc4Srjs}; 100796c5ddc4Srjsstatic const nir_search_expression replace24 = { 100896c5ddc4Srjs { nir_search_value_expression, 8 }, 100996c5ddc4Srjs false, false, 101096c5ddc4Srjs -1, 0, 101196c5ddc4Srjs nir_op_i2i8, 101296c5ddc4Srjs { &replace24_0.value }, 101396c5ddc4Srjs NULL, 101496c5ddc4Srjs}; 101596c5ddc4Srjs 101696c5ddc4Srjs /* search25_0 -> search19_0 in the cache */ 101796c5ddc4Srjsstatic const nir_search_expression search25 = { 101896c5ddc4Srjs { nir_search_value_expression, 8 }, 101996c5ddc4Srjs false, false, 102096c5ddc4Srjs -1, 0, 102196c5ddc4Srjs nir_op_i2i8, 102296c5ddc4Srjs { &search19_0.value }, 102396c5ddc4Srjs NULL, 102496c5ddc4Srjs}; 102596c5ddc4Srjs 102696c5ddc4Srjs /* replace25_0_0_0 -> search19_0 in the cache */ 102796c5ddc4Srjsstatic const nir_search_expression replace25_0_0 = { 102896c5ddc4Srjs { nir_search_value_expression, 32 }, 102996c5ddc4Srjs false, false, 103096c5ddc4Srjs -1, 0, 103196c5ddc4Srjs nir_op_i2i32, 103296c5ddc4Srjs { &search19_0.value }, 103396c5ddc4Srjs NULL, 103496c5ddc4Srjs}; 103596c5ddc4Srjsstatic const nir_search_expression replace25_0 = { 103696c5ddc4Srjs { nir_search_value_expression, 16 }, 103796c5ddc4Srjs false, false, 103896c5ddc4Srjs -1, 0, 103996c5ddc4Srjs nir_op_i2i16, 104096c5ddc4Srjs { &replace25_0_0.value }, 104196c5ddc4Srjs NULL, 104296c5ddc4Srjs}; 104396c5ddc4Srjsstatic const nir_search_expression replace25 = { 104496c5ddc4Srjs { nir_search_value_expression, 8 }, 104596c5ddc4Srjs false, false, 104696c5ddc4Srjs -1, 0, 104796c5ddc4Srjs nir_op_i2i8, 104896c5ddc4Srjs { &replace25_0.value }, 104996c5ddc4Srjs NULL, 105096c5ddc4Srjs}; 105196c5ddc4Srjs 105296c5ddc4Srjs /* search26_0 -> search19_0 in the cache */ 105396c5ddc4Srjsstatic const nir_search_expression search26 = { 105496c5ddc4Srjs { nir_search_value_expression, 16 }, 105596c5ddc4Srjs false, false, 105696c5ddc4Srjs -1, 0, 105796c5ddc4Srjs nir_op_i2i16, 105896c5ddc4Srjs { &search19_0.value }, 105996c5ddc4Srjs NULL, 106096c5ddc4Srjs}; 106196c5ddc4Srjs 106296c5ddc4Srjs /* replace26_0_0 -> search19_0 in the cache */ 106396c5ddc4Srjs/* replace26_0 -> replace25_0_0 in the cache */ 106496c5ddc4Srjs/* replace26 -> replace25_0 in the cache */ 106596c5ddc4Srjs 106696c5ddc4Srjs /* search27_0 -> search11_0 in the cache */ 106796c5ddc4Srjsstatic const nir_search_expression search27 = { 106896c5ddc4Srjs { nir_search_value_expression, 32 }, 106996c5ddc4Srjs false, false, 107096c5ddc4Srjs -1, 0, 107196c5ddc4Srjs nir_op_i2i32, 107296c5ddc4Srjs { &search11_0.value }, 107396c5ddc4Srjs NULL, 107496c5ddc4Srjs}; 107596c5ddc4Srjs 107696c5ddc4Srjs /* replace27_0_0 -> search11_0 in the cache */ 107796c5ddc4Srjs/* replace27_0 -> replace12_0_0_0_0 in the cache */ 107896c5ddc4Srjs/* replace27 -> replace12_0_0_0 in the cache */ 107996c5ddc4Srjs 108096c5ddc4Srjs /* search28_0 -> search11_0 in the cache */ 108196c5ddc4Srjsstatic const nir_search_expression search28 = { 108296c5ddc4Srjs { nir_search_value_expression, 64 }, 108396c5ddc4Srjs false, false, 108496c5ddc4Srjs -1, 0, 108596c5ddc4Srjs nir_op_i2i64, 108696c5ddc4Srjs { &search11_0.value }, 108796c5ddc4Srjs NULL, 108896c5ddc4Srjs}; 108996c5ddc4Srjs 109096c5ddc4Srjs /* replace28_0_0_0 -> search11_0 in the cache */ 109196c5ddc4Srjs/* replace28_0_0 -> replace12_0_0_0_0 in the cache */ 109296c5ddc4Srjs/* replace28_0 -> replace12_0_0_0 in the cache */ 109396c5ddc4Srjsstatic const nir_search_expression replace28 = { 109496c5ddc4Srjs { nir_search_value_expression, 64 }, 109596c5ddc4Srjs false, false, 109696c5ddc4Srjs -1, 0, 109796c5ddc4Srjs nir_op_i2i64, 109896c5ddc4Srjs { &replace12_0_0_0.value }, 109996c5ddc4Srjs NULL, 110096c5ddc4Srjs}; 110196c5ddc4Srjs 110296c5ddc4Srjs /* search29_0 -> search8_0 in the cache */ 110396c5ddc4Srjsstatic const nir_search_expression search29 = { 110496c5ddc4Srjs { nir_search_value_expression, 64 }, 110596c5ddc4Srjs false, false, 110696c5ddc4Srjs -1, 0, 110796c5ddc4Srjs nir_op_i2i64, 110896c5ddc4Srjs { &search8_0.value }, 110996c5ddc4Srjs NULL, 111096c5ddc4Srjs}; 111196c5ddc4Srjs 111296c5ddc4Srjs /* replace29_0_0 -> search8_0 in the cache */ 111396c5ddc4Srjs/* replace29_0 -> replace9_0_0 in the cache */ 111496c5ddc4Srjsstatic const nir_search_expression replace29 = { 111596c5ddc4Srjs { nir_search_value_expression, 64 }, 111696c5ddc4Srjs false, false, 111796c5ddc4Srjs -1, 0, 111896c5ddc4Srjs nir_op_i2i64, 111996c5ddc4Srjs { &replace9_0_0.value }, 112096c5ddc4Srjs NULL, 112196c5ddc4Srjs}; 112296c5ddc4Srjs 112396c5ddc4Srjs /* search30_0 -> search19_0 in the cache */ 112496c5ddc4Srjsstatic const nir_search_expression search30 = { 112596c5ddc4Srjs { nir_search_value_expression, 16 }, 112696c5ddc4Srjs false, false, 112796c5ddc4Srjs -1, 0, 112896c5ddc4Srjs nir_op_f2f16, 112996c5ddc4Srjs { &search19_0.value }, 113096c5ddc4Srjs NULL, 113196c5ddc4Srjs}; 113296c5ddc4Srjs 113396c5ddc4Srjs /* replace30_0_0 -> search19_0 in the cache */ 113496c5ddc4Srjsstatic const nir_search_expression replace30_0 = { 113596c5ddc4Srjs { nir_search_value_expression, 32 }, 113696c5ddc4Srjs false, false, 113796c5ddc4Srjs -1, 0, 113896c5ddc4Srjs nir_op_f2f32, 113996c5ddc4Srjs { &search19_0.value }, 114096c5ddc4Srjs NULL, 114196c5ddc4Srjs}; 114296c5ddc4Srjsstatic const nir_search_expression replace30 = { 114396c5ddc4Srjs { nir_search_value_expression, 16 }, 114496c5ddc4Srjs false, false, 114596c5ddc4Srjs -1, 0, 114696c5ddc4Srjs nir_op_f2f16, 114796c5ddc4Srjs { &replace30_0.value }, 114896c5ddc4Srjs NULL, 114996c5ddc4Srjs}; 115096c5ddc4Srjs 115196c5ddc4Srjs /* search31_0 -> search8_0 in the cache */ 115296c5ddc4Srjsstatic const nir_search_expression search31 = { 115396c5ddc4Srjs { nir_search_value_expression, 64 }, 115496c5ddc4Srjs false, false, 115596c5ddc4Srjs -1, 0, 115696c5ddc4Srjs nir_op_f2f64, 115796c5ddc4Srjs { &search8_0.value }, 115896c5ddc4Srjs NULL, 115996c5ddc4Srjs}; 116096c5ddc4Srjs 116196c5ddc4Srjs /* replace31_0_0 -> search8_0 in the cache */ 116296c5ddc4Srjsstatic const nir_search_expression replace31_0 = { 116396c5ddc4Srjs { nir_search_value_expression, 32 }, 116496c5ddc4Srjs false, false, 116596c5ddc4Srjs -1, 0, 116696c5ddc4Srjs nir_op_f2f32, 116796c5ddc4Srjs { &search8_0.value }, 116896c5ddc4Srjs NULL, 116996c5ddc4Srjs}; 117096c5ddc4Srjsstatic const nir_search_expression replace31 = { 117196c5ddc4Srjs { nir_search_value_expression, 64 }, 117296c5ddc4Srjs false, false, 117396c5ddc4Srjs -1, 0, 117496c5ddc4Srjs nir_op_f2f64, 117596c5ddc4Srjs { &replace31_0.value }, 117696c5ddc4Srjs NULL, 117796c5ddc4Srjs}; 117896c5ddc4Srjs 117996c5ddc4Srjs /* search32_0 -> search19_0 in the cache */ 118096c5ddc4Srjsstatic const nir_search_expression search32 = { 118196c5ddc4Srjs { nir_search_value_expression, 16 }, 118296c5ddc4Srjs false, false, 118396c5ddc4Srjs -1, 0, 118496c5ddc4Srjs nir_op_i2f16, 118596c5ddc4Srjs { &search19_0.value }, 118696c5ddc4Srjs NULL, 118796c5ddc4Srjs}; 118896c5ddc4Srjs 118996c5ddc4Srjs /* replace32_0_0_0 -> search19_0 in the cache */ 119096c5ddc4Srjsstatic const nir_search_expression replace32_0_0 = { 119196c5ddc4Srjs { nir_search_value_expression, 64 }, 119296c5ddc4Srjs false, false, 119396c5ddc4Srjs -1, 0, 119496c5ddc4Srjs nir_op_i2f64, 119596c5ddc4Srjs { &search19_0.value }, 119696c5ddc4Srjs NULL, 119796c5ddc4Srjs}; 119896c5ddc4Srjsstatic const nir_search_expression replace32_0 = { 119996c5ddc4Srjs { nir_search_value_expression, 32 }, 120096c5ddc4Srjs false, false, 120196c5ddc4Srjs -1, 0, 120296c5ddc4Srjs nir_op_f2f32, 120396c5ddc4Srjs { &replace32_0_0.value }, 120496c5ddc4Srjs NULL, 120596c5ddc4Srjs}; 120696c5ddc4Srjsstatic const nir_search_expression replace32 = { 120796c5ddc4Srjs { nir_search_value_expression, 16 }, 120896c5ddc4Srjs false, false, 120996c5ddc4Srjs -1, 0, 121096c5ddc4Srjs nir_op_f2f16, 121196c5ddc4Srjs { &replace32_0.value }, 121296c5ddc4Srjs NULL, 121396c5ddc4Srjs}; 121496c5ddc4Srjs 121596c5ddc4Srjs /* search33_0 -> search11_0 in the cache */ 121696c5ddc4Srjsstatic const nir_search_expression search33 = { 121796c5ddc4Srjs { nir_search_value_expression, 32 }, 121896c5ddc4Srjs false, false, 121996c5ddc4Srjs -1, 0, 122096c5ddc4Srjs nir_op_i2f32, 122196c5ddc4Srjs { &search11_0.value }, 122296c5ddc4Srjs NULL, 122396c5ddc4Srjs}; 122496c5ddc4Srjs 122596c5ddc4Srjs /* replace33_0_0_0 -> search11_0 in the cache */ 122696c5ddc4Srjs/* replace33_0_0 -> replace12_0_0_0_0 in the cache */ 122796c5ddc4Srjs/* replace33_0 -> replace12_0_0_0 in the cache */ 122896c5ddc4Srjsstatic const nir_search_expression replace33 = { 122996c5ddc4Srjs { nir_search_value_expression, 32 }, 123096c5ddc4Srjs false, false, 123196c5ddc4Srjs -1, 0, 123296c5ddc4Srjs nir_op_i2f32, 123396c5ddc4Srjs { &replace12_0_0_0.value }, 123496c5ddc4Srjs NULL, 123596c5ddc4Srjs}; 123696c5ddc4Srjs 123796c5ddc4Srjs /* search34_0 -> search11_0 in the cache */ 123896c5ddc4Srjsstatic const nir_search_expression search34 = { 123996c5ddc4Srjs { nir_search_value_expression, 64 }, 124096c5ddc4Srjs false, false, 124196c5ddc4Srjs -1, 0, 124296c5ddc4Srjs nir_op_i2f64, 124396c5ddc4Srjs { &search11_0.value }, 124496c5ddc4Srjs NULL, 124596c5ddc4Srjs}; 124696c5ddc4Srjs 124796c5ddc4Srjs /* replace34_0_0_0_0 -> search11_0 in the cache */ 124896c5ddc4Srjs/* replace34_0_0_0 -> replace12_0_0_0_0 in the cache */ 124996c5ddc4Srjs/* replace34_0_0 -> replace12_0_0_0 in the cache */ 125096c5ddc4Srjs/* replace34_0 -> replace28 in the cache */ 125196c5ddc4Srjsstatic const nir_search_expression replace34 = { 125296c5ddc4Srjs { nir_search_value_expression, 64 }, 125396c5ddc4Srjs false, false, 125496c5ddc4Srjs -1, 0, 125596c5ddc4Srjs nir_op_i2f64, 125696c5ddc4Srjs { &replace28.value }, 125796c5ddc4Srjs NULL, 125896c5ddc4Srjs}; 125996c5ddc4Srjs 126096c5ddc4Srjs /* search35_0 -> search8_0 in the cache */ 126196c5ddc4Srjsstatic const nir_search_expression search35 = { 126296c5ddc4Srjs { nir_search_value_expression, 64 }, 126396c5ddc4Srjs false, false, 126496c5ddc4Srjs -1, 0, 126596c5ddc4Srjs nir_op_i2f64, 126696c5ddc4Srjs { &search8_0.value }, 126796c5ddc4Srjs NULL, 126896c5ddc4Srjs}; 126996c5ddc4Srjs 127096c5ddc4Srjs /* replace35_0_0_0 -> search8_0 in the cache */ 127196c5ddc4Srjs/* replace35_0_0 -> replace9_0_0 in the cache */ 127296c5ddc4Srjs/* replace35_0 -> replace29 in the cache */ 127396c5ddc4Srjsstatic const nir_search_expression replace35 = { 127496c5ddc4Srjs { nir_search_value_expression, 64 }, 127596c5ddc4Srjs false, false, 127696c5ddc4Srjs -1, 0, 127796c5ddc4Srjs nir_op_i2f64, 127896c5ddc4Srjs { &replace29.value }, 127996c5ddc4Srjs NULL, 128096c5ddc4Srjs}; 128196c5ddc4Srjs 128296c5ddc4Srjs /* search36_0 -> search19_0 in the cache */ 128396c5ddc4Srjsstatic const nir_search_expression search36 = { 128496c5ddc4Srjs { nir_search_value_expression, 16 }, 128596c5ddc4Srjs false, false, 128696c5ddc4Srjs -1, 0, 128796c5ddc4Srjs nir_op_u2f16, 128896c5ddc4Srjs { &search19_0.value }, 128996c5ddc4Srjs NULL, 129096c5ddc4Srjs}; 129196c5ddc4Srjs 129296c5ddc4Srjs /* replace36_0_0_0 -> search19_0 in the cache */ 129396c5ddc4Srjsstatic const nir_search_expression replace36_0_0 = { 129496c5ddc4Srjs { nir_search_value_expression, 64 }, 129596c5ddc4Srjs false, false, 129696c5ddc4Srjs -1, 0, 129796c5ddc4Srjs nir_op_u2f64, 129896c5ddc4Srjs { &search19_0.value }, 129996c5ddc4Srjs NULL, 130096c5ddc4Srjs}; 130196c5ddc4Srjsstatic const nir_search_expression replace36_0 = { 130296c5ddc4Srjs { nir_search_value_expression, 32 }, 130396c5ddc4Srjs false, false, 130496c5ddc4Srjs -1, 0, 130596c5ddc4Srjs nir_op_f2f32, 130696c5ddc4Srjs { &replace36_0_0.value }, 130796c5ddc4Srjs NULL, 130896c5ddc4Srjs}; 130996c5ddc4Srjsstatic const nir_search_expression replace36 = { 131096c5ddc4Srjs { nir_search_value_expression, 16 }, 131196c5ddc4Srjs false, false, 131296c5ddc4Srjs -1, 0, 131396c5ddc4Srjs nir_op_f2f16, 131496c5ddc4Srjs { &replace36_0.value }, 131596c5ddc4Srjs NULL, 131696c5ddc4Srjs}; 131796c5ddc4Srjs 131896c5ddc4Srjs /* search37_0 -> search11_0 in the cache */ 131996c5ddc4Srjsstatic const nir_search_expression search37 = { 132096c5ddc4Srjs { nir_search_value_expression, 32 }, 132196c5ddc4Srjs false, false, 132296c5ddc4Srjs -1, 0, 132396c5ddc4Srjs nir_op_u2f32, 132496c5ddc4Srjs { &search11_0.value }, 132596c5ddc4Srjs NULL, 132696c5ddc4Srjs}; 132796c5ddc4Srjs 132896c5ddc4Srjs /* replace37_0_0_0 -> search11_0 in the cache */ 132996c5ddc4Srjs/* replace37_0_0 -> replace11_0_0_0_0 in the cache */ 133096c5ddc4Srjs/* replace37_0 -> replace11_0_0_0 in the cache */ 133196c5ddc4Srjsstatic const nir_search_expression replace37 = { 133296c5ddc4Srjs { nir_search_value_expression, 32 }, 133396c5ddc4Srjs false, false, 133496c5ddc4Srjs -1, 0, 133596c5ddc4Srjs nir_op_u2f32, 133696c5ddc4Srjs { &replace11_0_0_0.value }, 133796c5ddc4Srjs NULL, 133896c5ddc4Srjs}; 133996c5ddc4Srjs 134096c5ddc4Srjs /* search38_0 -> search11_0 in the cache */ 134196c5ddc4Srjsstatic const nir_search_expression search38 = { 134296c5ddc4Srjs { nir_search_value_expression, 64 }, 134396c5ddc4Srjs false, false, 134496c5ddc4Srjs -1, 0, 134596c5ddc4Srjs nir_op_u2f64, 134696c5ddc4Srjs { &search11_0.value }, 134796c5ddc4Srjs NULL, 134896c5ddc4Srjs}; 134996c5ddc4Srjs 135096c5ddc4Srjs /* replace38_0_0_0_0 -> search11_0 in the cache */ 135196c5ddc4Srjs/* replace38_0_0_0 -> replace11_0_0_0_0 in the cache */ 135296c5ddc4Srjs/* replace38_0_0 -> replace11_0_0_0 in the cache */ 135396c5ddc4Srjs/* replace38_0 -> replace22 in the cache */ 135496c5ddc4Srjsstatic const nir_search_expression replace38 = { 135596c5ddc4Srjs { nir_search_value_expression, 64 }, 135696c5ddc4Srjs false, false, 135796c5ddc4Srjs -1, 0, 135896c5ddc4Srjs nir_op_u2f64, 135996c5ddc4Srjs { &replace22.value }, 136096c5ddc4Srjs NULL, 136196c5ddc4Srjs}; 136296c5ddc4Srjs 136396c5ddc4Srjs /* search39_0 -> search8_0 in the cache */ 136496c5ddc4Srjsstatic const nir_search_expression search39 = { 136596c5ddc4Srjs { nir_search_value_expression, 64 }, 136696c5ddc4Srjs false, false, 136796c5ddc4Srjs -1, 0, 136896c5ddc4Srjs nir_op_u2f64, 136996c5ddc4Srjs { &search8_0.value }, 137096c5ddc4Srjs NULL, 137196c5ddc4Srjs}; 137296c5ddc4Srjs 137396c5ddc4Srjs /* replace39_0_0_0 -> search8_0 in the cache */ 137496c5ddc4Srjs/* replace39_0_0 -> replace8_0_0 in the cache */ 137596c5ddc4Srjs/* replace39_0 -> replace23 in the cache */ 137696c5ddc4Srjsstatic const nir_search_expression replace39 = { 137796c5ddc4Srjs { nir_search_value_expression, 64 }, 137896c5ddc4Srjs false, false, 137996c5ddc4Srjs -1, 0, 138096c5ddc4Srjs nir_op_u2f64, 138196c5ddc4Srjs { &replace23.value }, 138296c5ddc4Srjs NULL, 138396c5ddc4Srjs}; 138496c5ddc4Srjs 138596c5ddc4Srjs /* search40_0 -> search3_0 in the cache */ 138696c5ddc4Srjsstatic const nir_search_expression search40 = { 138796c5ddc4Srjs { nir_search_value_expression, 8 }, 138896c5ddc4Srjs false, false, 138996c5ddc4Srjs -1, 0, 139096c5ddc4Srjs nir_op_f2i8, 139196c5ddc4Srjs { &search3_0.value }, 139296c5ddc4Srjs NULL, 139396c5ddc4Srjs}; 139496c5ddc4Srjs 139596c5ddc4Srjs /* replace40_0_0_0 -> search3_0 in the cache */ 139696c5ddc4Srjsstatic const nir_search_expression replace40_0_0 = { 139796c5ddc4Srjs { nir_search_value_expression, 32 }, 139896c5ddc4Srjs false, false, 139996c5ddc4Srjs -1, 0, 140096c5ddc4Srjs nir_op_f2i32, 140196c5ddc4Srjs { &search3_0.value }, 140296c5ddc4Srjs NULL, 140396c5ddc4Srjs}; 140496c5ddc4Srjsstatic const nir_search_expression replace40_0 = { 140596c5ddc4Srjs { nir_search_value_expression, 16 }, 140696c5ddc4Srjs false, false, 140796c5ddc4Srjs -1, 0, 140896c5ddc4Srjs nir_op_i2i16, 140996c5ddc4Srjs { &replace40_0_0.value }, 141096c5ddc4Srjs NULL, 141196c5ddc4Srjs}; 141296c5ddc4Srjsstatic const nir_search_expression replace40 = { 141396c5ddc4Srjs { nir_search_value_expression, 8 }, 141496c5ddc4Srjs false, false, 141596c5ddc4Srjs -1, 0, 141696c5ddc4Srjs nir_op_i2i8, 141796c5ddc4Srjs { &replace40_0.value }, 141896c5ddc4Srjs NULL, 141996c5ddc4Srjs}; 142096c5ddc4Srjs 142196c5ddc4Srjs /* search41_0 -> search19_0 in the cache */ 142296c5ddc4Srjsstatic const nir_search_expression search41 = { 142396c5ddc4Srjs { nir_search_value_expression, 8 }, 142496c5ddc4Srjs false, false, 142596c5ddc4Srjs -1, 0, 142696c5ddc4Srjs nir_op_f2i8, 142796c5ddc4Srjs { &search19_0.value }, 142896c5ddc4Srjs NULL, 142996c5ddc4Srjs}; 143096c5ddc4Srjs 143196c5ddc4Srjs /* replace41_0_0_0_0 -> search19_0 in the cache */ 143296c5ddc4Srjsstatic const nir_search_expression replace41_0_0_0 = { 143396c5ddc4Srjs { nir_search_value_expression, 64 }, 143496c5ddc4Srjs false, false, 143596c5ddc4Srjs -1, 0, 143696c5ddc4Srjs nir_op_f2i64, 143796c5ddc4Srjs { &search19_0.value }, 143896c5ddc4Srjs NULL, 143996c5ddc4Srjs}; 144096c5ddc4Srjsstatic const nir_search_expression replace41_0_0 = { 144196c5ddc4Srjs { nir_search_value_expression, 32 }, 144296c5ddc4Srjs false, false, 144396c5ddc4Srjs -1, 0, 144496c5ddc4Srjs nir_op_i2i32, 144596c5ddc4Srjs { &replace41_0_0_0.value }, 144696c5ddc4Srjs NULL, 144796c5ddc4Srjs}; 144896c5ddc4Srjsstatic const nir_search_expression replace41_0 = { 144996c5ddc4Srjs { nir_search_value_expression, 16 }, 145096c5ddc4Srjs false, false, 145196c5ddc4Srjs -1, 0, 145296c5ddc4Srjs nir_op_i2i16, 145396c5ddc4Srjs { &replace41_0_0.value }, 145496c5ddc4Srjs NULL, 145596c5ddc4Srjs}; 145696c5ddc4Srjsstatic const nir_search_expression replace41 = { 145796c5ddc4Srjs { nir_search_value_expression, 8 }, 145896c5ddc4Srjs false, false, 145996c5ddc4Srjs -1, 0, 146096c5ddc4Srjs nir_op_i2i8, 146196c5ddc4Srjs { &replace41_0.value }, 146296c5ddc4Srjs NULL, 146396c5ddc4Srjs}; 146496c5ddc4Srjs 146596c5ddc4Srjs /* search42_0 -> search19_0 in the cache */ 146696c5ddc4Srjsstatic const nir_search_expression search42 = { 146796c5ddc4Srjs { nir_search_value_expression, 16 }, 146896c5ddc4Srjs false, false, 146996c5ddc4Srjs -1, 0, 147096c5ddc4Srjs nir_op_f2i16, 147196c5ddc4Srjs { &search19_0.value }, 147296c5ddc4Srjs NULL, 147396c5ddc4Srjs}; 147496c5ddc4Srjs 147596c5ddc4Srjs /* replace42_0_0_0 -> search19_0 in the cache */ 147696c5ddc4Srjs/* replace42_0_0 -> replace41_0_0_0 in the cache */ 147796c5ddc4Srjs/* replace42_0 -> replace41_0_0 in the cache */ 147896c5ddc4Srjs/* replace42 -> replace41_0 in the cache */ 147996c5ddc4Srjs 148096c5ddc4Srjs /* search43_0 -> search8_0 in the cache */ 148196c5ddc4Srjsstatic const nir_search_expression search43 = { 148296c5ddc4Srjs { nir_search_value_expression, 64 }, 148396c5ddc4Srjs false, false, 148496c5ddc4Srjs -1, 0, 148596c5ddc4Srjs nir_op_f2i64, 148696c5ddc4Srjs { &search8_0.value }, 148796c5ddc4Srjs NULL, 148896c5ddc4Srjs}; 148996c5ddc4Srjs 149096c5ddc4Srjs /* replace43_0_0_0 -> search8_0 in the cache */ 149196c5ddc4Srjs/* replace43_0_0 -> replace31_0 in the cache */ 149296c5ddc4Srjs/* replace43_0 -> replace31 in the cache */ 149396c5ddc4Srjsstatic const nir_search_expression replace43 = { 149496c5ddc4Srjs { nir_search_value_expression, 64 }, 149596c5ddc4Srjs false, false, 149696c5ddc4Srjs -1, 0, 149796c5ddc4Srjs nir_op_f2i64, 149896c5ddc4Srjs { &replace31.value }, 149996c5ddc4Srjs NULL, 150096c5ddc4Srjs}; 150196c5ddc4Srjs 150296c5ddc4Srjs /* search44_0 -> search3_0 in the cache */ 150396c5ddc4Srjsstatic const nir_search_expression search44 = { 150496c5ddc4Srjs { nir_search_value_expression, 8 }, 150596c5ddc4Srjs false, false, 150696c5ddc4Srjs -1, 0, 150796c5ddc4Srjs nir_op_f2u8, 150896c5ddc4Srjs { &search3_0.value }, 150996c5ddc4Srjs NULL, 151096c5ddc4Srjs}; 151196c5ddc4Srjs 151296c5ddc4Srjs /* replace44_0_0_0 -> search3_0 in the cache */ 151396c5ddc4Srjsstatic const nir_search_expression replace44_0_0 = { 151496c5ddc4Srjs { nir_search_value_expression, 32 }, 151596c5ddc4Srjs false, false, 151696c5ddc4Srjs -1, 0, 151796c5ddc4Srjs nir_op_f2u32, 151896c5ddc4Srjs { &search3_0.value }, 151996c5ddc4Srjs NULL, 152096c5ddc4Srjs}; 152196c5ddc4Srjsstatic const nir_search_expression replace44_0 = { 152296c5ddc4Srjs { nir_search_value_expression, 16 }, 152396c5ddc4Srjs false, false, 152496c5ddc4Srjs -1, 0, 152596c5ddc4Srjs nir_op_u2u16, 152696c5ddc4Srjs { &replace44_0_0.value }, 152796c5ddc4Srjs NULL, 152896c5ddc4Srjs}; 152996c5ddc4Srjsstatic const nir_search_expression replace44 = { 153096c5ddc4Srjs { nir_search_value_expression, 8 }, 153196c5ddc4Srjs false, false, 153296c5ddc4Srjs -1, 0, 153396c5ddc4Srjs nir_op_u2u8, 153496c5ddc4Srjs { &replace44_0.value }, 153596c5ddc4Srjs NULL, 153696c5ddc4Srjs}; 153796c5ddc4Srjs 153896c5ddc4Srjs /* search45_0 -> search19_0 in the cache */ 153996c5ddc4Srjsstatic const nir_search_expression search45 = { 154096c5ddc4Srjs { nir_search_value_expression, 8 }, 154196c5ddc4Srjs false, false, 154296c5ddc4Srjs -1, 0, 154396c5ddc4Srjs nir_op_f2u8, 154496c5ddc4Srjs { &search19_0.value }, 154596c5ddc4Srjs NULL, 154696c5ddc4Srjs}; 154796c5ddc4Srjs 154896c5ddc4Srjs /* replace45_0_0_0_0 -> search19_0 in the cache */ 154996c5ddc4Srjsstatic const nir_search_expression replace45_0_0_0 = { 155096c5ddc4Srjs { nir_search_value_expression, 64 }, 155196c5ddc4Srjs false, false, 155296c5ddc4Srjs -1, 0, 155396c5ddc4Srjs nir_op_f2u64, 155496c5ddc4Srjs { &search19_0.value }, 155596c5ddc4Srjs NULL, 155696c5ddc4Srjs}; 155796c5ddc4Srjsstatic const nir_search_expression replace45_0_0 = { 155896c5ddc4Srjs { nir_search_value_expression, 32 }, 155996c5ddc4Srjs false, false, 156096c5ddc4Srjs -1, 0, 156196c5ddc4Srjs nir_op_u2u32, 156296c5ddc4Srjs { &replace45_0_0_0.value }, 156396c5ddc4Srjs NULL, 156496c5ddc4Srjs}; 156596c5ddc4Srjsstatic const nir_search_expression replace45_0 = { 156696c5ddc4Srjs { nir_search_value_expression, 16 }, 156796c5ddc4Srjs false, false, 156896c5ddc4Srjs -1, 0, 156996c5ddc4Srjs nir_op_u2u16, 157096c5ddc4Srjs { &replace45_0_0.value }, 157196c5ddc4Srjs NULL, 157296c5ddc4Srjs}; 157396c5ddc4Srjsstatic const nir_search_expression replace45 = { 157496c5ddc4Srjs { nir_search_value_expression, 8 }, 157596c5ddc4Srjs false, false, 157696c5ddc4Srjs -1, 0, 157796c5ddc4Srjs nir_op_u2u8, 157896c5ddc4Srjs { &replace45_0.value }, 157996c5ddc4Srjs NULL, 158096c5ddc4Srjs}; 158196c5ddc4Srjs 158296c5ddc4Srjs /* search46_0 -> search19_0 in the cache */ 158396c5ddc4Srjsstatic const nir_search_expression search46 = { 158496c5ddc4Srjs { nir_search_value_expression, 16 }, 158596c5ddc4Srjs false, false, 158696c5ddc4Srjs -1, 0, 158796c5ddc4Srjs nir_op_f2u16, 158896c5ddc4Srjs { &search19_0.value }, 158996c5ddc4Srjs NULL, 159096c5ddc4Srjs}; 159196c5ddc4Srjs 159296c5ddc4Srjs /* replace46_0_0_0 -> search19_0 in the cache */ 159396c5ddc4Srjs/* replace46_0_0 -> replace45_0_0_0 in the cache */ 159496c5ddc4Srjs/* replace46_0 -> replace45_0_0 in the cache */ 159596c5ddc4Srjs/* replace46 -> replace45_0 in the cache */ 159696c5ddc4Srjs 159796c5ddc4Srjs /* search47_0 -> search8_0 in the cache */ 159896c5ddc4Srjsstatic const nir_search_expression search47 = { 159996c5ddc4Srjs { nir_search_value_expression, 64 }, 160096c5ddc4Srjs false, false, 160196c5ddc4Srjs -1, 0, 160296c5ddc4Srjs nir_op_f2u64, 160396c5ddc4Srjs { &search8_0.value }, 160496c5ddc4Srjs NULL, 160596c5ddc4Srjs}; 160696c5ddc4Srjs 160796c5ddc4Srjs /* replace47_0_0_0 -> search8_0 in the cache */ 160896c5ddc4Srjs/* replace47_0_0 -> replace31_0 in the cache */ 160996c5ddc4Srjs/* replace47_0 -> replace31 in the cache */ 161096c5ddc4Srjsstatic const nir_search_expression replace47 = { 161196c5ddc4Srjs { nir_search_value_expression, 64 }, 161296c5ddc4Srjs false, false, 161396c5ddc4Srjs -1, 0, 161496c5ddc4Srjs nir_op_f2u64, 161596c5ddc4Srjs { &replace31.value }, 161696c5ddc4Srjs NULL, 161796c5ddc4Srjs}; 161896c5ddc4Srjs 161996c5ddc4Srjs /* search48_0 -> search2_0 in the cache */ 162096c5ddc4Srjs 162196c5ddc4Srjsstatic const nir_search_variable search48_1 = { 162296c5ddc4Srjs { nir_search_value_variable, -2 }, 162396c5ddc4Srjs 1, /* b */ 162496c5ddc4Srjs true, 162596c5ddc4Srjs nir_type_invalid, 162696c5ddc4Srjs NULL, 162796c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 162896c5ddc4Srjs}; 162996c5ddc4Srjsstatic const nir_search_expression search48 = { 163096c5ddc4Srjs { nir_search_value_expression, 1 }, 163196c5ddc4Srjs false, false, 163296c5ddc4Srjs -1, 0, 163396c5ddc4Srjs nir_op_fge, 163496c5ddc4Srjs { &search2_0.value, &search48_1.value }, 163596c5ddc4Srjs NULL, 163696c5ddc4Srjs}; 163796c5ddc4Srjs 163896c5ddc4Srjs /* replace48_0_0 -> search2_0 in the cache */ 163996c5ddc4Srjs 164096c5ddc4Srjs/* replace48_0_1 -> search2_1 in the cache */ 164196c5ddc4Srjsstatic const nir_search_expression replace48_0 = { 164296c5ddc4Srjs { nir_search_value_expression, 1 }, 164396c5ddc4Srjs false, false, 164496c5ddc4Srjs -1, 0, 164596c5ddc4Srjs nir_op_flt, 164696c5ddc4Srjs { &search2_0.value, &search2_1.value }, 164796c5ddc4Srjs NULL, 164896c5ddc4Srjs}; 164996c5ddc4Srjsstatic const nir_search_expression replace48 = { 165096c5ddc4Srjs { nir_search_value_expression, 1 }, 165196c5ddc4Srjs false, false, 165296c5ddc4Srjs -1, 0, 165396c5ddc4Srjs nir_op_inot, 165496c5ddc4Srjs { &replace48_0.value }, 165596c5ddc4Srjs NULL, 165696c5ddc4Srjs}; 165796c5ddc4Srjs 165896c5ddc4Srjs /* search49_0 -> search2_0 in the cache */ 165996c5ddc4Srjs 166096c5ddc4Srjs/* search49_1 -> search48_1 in the cache */ 166196c5ddc4Srjsstatic const nir_search_expression search49 = { 166296c5ddc4Srjs { nir_search_value_expression, 32 }, 166396c5ddc4Srjs false, false, 166496c5ddc4Srjs -1, 0, 166596c5ddc4Srjs nir_op_fge32, 166696c5ddc4Srjs { &search2_0.value, &search48_1.value }, 166796c5ddc4Srjs NULL, 166896c5ddc4Srjs}; 166996c5ddc4Srjs 167096c5ddc4Srjs /* replace49_0_0 -> search2_0 in the cache */ 167196c5ddc4Srjs 167296c5ddc4Srjs/* replace49_0_1 -> search2_1 in the cache */ 167396c5ddc4Srjsstatic const nir_search_expression replace49_0 = { 167496c5ddc4Srjs { nir_search_value_expression, 32 }, 167596c5ddc4Srjs false, false, 167696c5ddc4Srjs -1, 0, 167796c5ddc4Srjs nir_op_flt32, 167896c5ddc4Srjs { &search2_0.value, &search2_1.value }, 167996c5ddc4Srjs NULL, 168096c5ddc4Srjs}; 168196c5ddc4Srjsstatic const nir_search_expression replace49 = { 168296c5ddc4Srjs { nir_search_value_expression, 32 }, 168396c5ddc4Srjs false, false, 168496c5ddc4Srjs -1, 0, 168596c5ddc4Srjs nir_op_inot, 168696c5ddc4Srjs { &replace49_0.value }, 168796c5ddc4Srjs NULL, 168896c5ddc4Srjs}; 168996c5ddc4Srjs 169096c5ddc4Srjs /* search50_0 -> search2_0 in the cache */ 169196c5ddc4Srjs 169296c5ddc4Srjs/* search50_1 -> search48_1 in the cache */ 169396c5ddc4Srjsstatic const nir_search_expression search50 = { 169496c5ddc4Srjs { nir_search_value_expression, 32 }, 169596c5ddc4Srjs false, false, 169696c5ddc4Srjs -1, 0, 169796c5ddc4Srjs nir_op_ige32, 169896c5ddc4Srjs { &search2_0.value, &search48_1.value }, 169996c5ddc4Srjs NULL, 170096c5ddc4Srjs}; 170196c5ddc4Srjs 170296c5ddc4Srjs /* replace50_0_0 -> search2_0 in the cache */ 170396c5ddc4Srjs 170496c5ddc4Srjs/* replace50_0_1 -> search2_1 in the cache */ 170596c5ddc4Srjsstatic const nir_search_expression replace50_0 = { 170696c5ddc4Srjs { nir_search_value_expression, 32 }, 170796c5ddc4Srjs false, false, 170896c5ddc4Srjs -1, 0, 170996c5ddc4Srjs nir_op_ilt32, 171096c5ddc4Srjs { &search2_0.value, &search2_1.value }, 171196c5ddc4Srjs NULL, 171296c5ddc4Srjs}; 171396c5ddc4Srjsstatic const nir_search_expression replace50 = { 171496c5ddc4Srjs { nir_search_value_expression, 32 }, 171596c5ddc4Srjs false, false, 171696c5ddc4Srjs -1, 0, 171796c5ddc4Srjs nir_op_inot, 171896c5ddc4Srjs { &replace50_0.value }, 171996c5ddc4Srjs NULL, 172096c5ddc4Srjs}; 172196c5ddc4Srjs 172296c5ddc4Srjs /* search51_0 -> search2_0 in the cache */ 172396c5ddc4Srjs 172496c5ddc4Srjs/* search51_1 -> search48_1 in the cache */ 172596c5ddc4Srjsstatic const nir_search_expression search51 = { 172696c5ddc4Srjs { nir_search_value_expression, 32 }, 172796c5ddc4Srjs false, false, 172896c5ddc4Srjs -1, 0, 172996c5ddc4Srjs nir_op_uge32, 173096c5ddc4Srjs { &search2_0.value, &search48_1.value }, 173196c5ddc4Srjs NULL, 173296c5ddc4Srjs}; 173396c5ddc4Srjs 173496c5ddc4Srjs /* replace51_0_0 -> search2_0 in the cache */ 173596c5ddc4Srjs 173696c5ddc4Srjs/* replace51_0_1 -> search2_1 in the cache */ 173796c5ddc4Srjsstatic const nir_search_expression replace51_0 = { 173896c5ddc4Srjs { nir_search_value_expression, 32 }, 173996c5ddc4Srjs false, false, 174096c5ddc4Srjs -1, 0, 174196c5ddc4Srjs nir_op_ult32, 174296c5ddc4Srjs { &search2_0.value, &search2_1.value }, 174396c5ddc4Srjs NULL, 174496c5ddc4Srjs}; 174596c5ddc4Srjsstatic const nir_search_expression replace51 = { 174696c5ddc4Srjs { nir_search_value_expression, 32 }, 174796c5ddc4Srjs false, false, 174896c5ddc4Srjs -1, 0, 174996c5ddc4Srjs nir_op_inot, 175096c5ddc4Srjs { &replace51_0.value }, 175196c5ddc4Srjs NULL, 175296c5ddc4Srjs}; 175396c5ddc4Srjs 175496c5ddc4Srjs static const nir_search_variable search52_0 = { 175596c5ddc4Srjs { nir_search_value_variable, -2 }, 175696c5ddc4Srjs 0, /* a */ 175796c5ddc4Srjs true, 175896c5ddc4Srjs nir_type_invalid, 175996c5ddc4Srjs NULL, 176096c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 176196c5ddc4Srjs}; 176296c5ddc4Srjs 176396c5ddc4Srjs/* search52_1 -> search2_1 in the cache */ 176496c5ddc4Srjsstatic const nir_search_expression search52 = { 176596c5ddc4Srjs { nir_search_value_expression, 32 }, 176696c5ddc4Srjs false, false, 176796c5ddc4Srjs -1, 0, 176896c5ddc4Srjs nir_op_flt32, 176996c5ddc4Srjs { &search52_0.value, &search2_1.value }, 177096c5ddc4Srjs NULL, 177196c5ddc4Srjs}; 177296c5ddc4Srjs 177396c5ddc4Srjs /* replace52_0_0 -> search2_0 in the cache */ 177496c5ddc4Srjs 177596c5ddc4Srjs/* replace52_0_1 -> search2_1 in the cache */ 177696c5ddc4Srjsstatic const nir_search_expression replace52_0 = { 177796c5ddc4Srjs { nir_search_value_expression, 32 }, 177896c5ddc4Srjs false, false, 177996c5ddc4Srjs -1, 0, 178096c5ddc4Srjs nir_op_fge32, 178196c5ddc4Srjs { &search2_0.value, &search2_1.value }, 178296c5ddc4Srjs NULL, 178396c5ddc4Srjs}; 178496c5ddc4Srjsstatic const nir_search_expression replace52 = { 178596c5ddc4Srjs { nir_search_value_expression, 32 }, 178696c5ddc4Srjs false, false, 178796c5ddc4Srjs -1, 0, 178896c5ddc4Srjs nir_op_inot, 178996c5ddc4Srjs { &replace52_0.value }, 179096c5ddc4Srjs NULL, 179196c5ddc4Srjs}; 179296c5ddc4Srjs 179396c5ddc4Srjs /* search53_0 -> search52_0 in the cache */ 179496c5ddc4Srjs 179596c5ddc4Srjs/* search53_1 -> search2_1 in the cache */ 179696c5ddc4Srjsstatic const nir_search_expression search53 = { 179796c5ddc4Srjs { nir_search_value_expression, 32 }, 179896c5ddc4Srjs false, false, 179996c5ddc4Srjs -1, 0, 180096c5ddc4Srjs nir_op_ilt32, 180196c5ddc4Srjs { &search52_0.value, &search2_1.value }, 180296c5ddc4Srjs NULL, 180396c5ddc4Srjs}; 180496c5ddc4Srjs 180596c5ddc4Srjs /* replace53_0_0 -> search2_0 in the cache */ 180696c5ddc4Srjs 180796c5ddc4Srjs/* replace53_0_1 -> search2_1 in the cache */ 180896c5ddc4Srjsstatic const nir_search_expression replace53_0 = { 180996c5ddc4Srjs { nir_search_value_expression, 32 }, 181096c5ddc4Srjs false, false, 181196c5ddc4Srjs -1, 0, 181296c5ddc4Srjs nir_op_ige32, 181396c5ddc4Srjs { &search2_0.value, &search2_1.value }, 181496c5ddc4Srjs NULL, 181596c5ddc4Srjs}; 181696c5ddc4Srjsstatic const nir_search_expression replace53 = { 181796c5ddc4Srjs { nir_search_value_expression, 32 }, 181896c5ddc4Srjs false, false, 181996c5ddc4Srjs -1, 0, 182096c5ddc4Srjs nir_op_inot, 182196c5ddc4Srjs { &replace53_0.value }, 182296c5ddc4Srjs NULL, 182396c5ddc4Srjs}; 182496c5ddc4Srjs 182596c5ddc4Srjs /* search54_0 -> search52_0 in the cache */ 182696c5ddc4Srjs 182796c5ddc4Srjs/* search54_1 -> search2_1 in the cache */ 182896c5ddc4Srjsstatic const nir_search_expression search54 = { 182996c5ddc4Srjs { nir_search_value_expression, 32 }, 183096c5ddc4Srjs false, false, 183196c5ddc4Srjs -1, 0, 183296c5ddc4Srjs nir_op_ult32, 183396c5ddc4Srjs { &search52_0.value, &search2_1.value }, 183496c5ddc4Srjs NULL, 183596c5ddc4Srjs}; 183696c5ddc4Srjs 183796c5ddc4Srjs /* replace54_0_0 -> search2_0 in the cache */ 183896c5ddc4Srjs 183996c5ddc4Srjs/* replace54_0_1 -> search2_1 in the cache */ 184096c5ddc4Srjsstatic const nir_search_expression replace54_0 = { 184196c5ddc4Srjs { nir_search_value_expression, 32 }, 184296c5ddc4Srjs false, false, 184396c5ddc4Srjs -1, 0, 184496c5ddc4Srjs nir_op_uge32, 184596c5ddc4Srjs { &search2_0.value, &search2_1.value }, 184696c5ddc4Srjs NULL, 184796c5ddc4Srjs}; 184896c5ddc4Srjsstatic const nir_search_expression replace54 = { 184996c5ddc4Srjs { nir_search_value_expression, 32 }, 185096c5ddc4Srjs false, false, 185196c5ddc4Srjs -1, 0, 185296c5ddc4Srjs nir_op_inot, 185396c5ddc4Srjs { &replace54_0.value }, 185496c5ddc4Srjs NULL, 185596c5ddc4Srjs}; 185696c5ddc4Srjs 185796c5ddc4Srjs 185896c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state2_xforms[] = { 185996c5ddc4Srjs { &search1, &replace1.value, 0 }, 186096c5ddc4Srjs}; 186196c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state3_xforms[] = { 186296c5ddc4Srjs { &search2, &replace2.value, 0 }, 186396c5ddc4Srjs}; 186496c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state4_xforms[] = { 186596c5ddc4Srjs { &search3, &replace3.value, 0 }, 186696c5ddc4Srjs}; 186796c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state5_xforms[] = { 186896c5ddc4Srjs { &search4, &replace4.value, 0 }, 186996c5ddc4Srjs}; 187096c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state6_xforms[] = { 187196c5ddc4Srjs { &search3, &replace3.value, 0 }, 187296c5ddc4Srjs { &search4, &replace4.value, 0 }, 187396c5ddc4Srjs}; 187496c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state8_xforms[] = { 187596c5ddc4Srjs { &search7, &replace7.value, 0 }, 187696c5ddc4Srjs}; 187796c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state9_xforms[] = { 187896c5ddc4Srjs { &search8, &replace8.value, 0 }, 187996c5ddc4Srjs { &search11, &replace11.value, 0 }, 188096c5ddc4Srjs}; 188196c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state10_xforms[] = { 188296c5ddc4Srjs { &search9, &replace9.value, 0 }, 188396c5ddc4Srjs { &search12, &replace12.value, 0 }, 188496c5ddc4Srjs}; 188596c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state11_xforms[] = { 188696c5ddc4Srjs { &search10, &replace10.value, 0 }, 188796c5ddc4Srjs { &search13, &replace13.value, 0 }, 188896c5ddc4Srjs}; 188996c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state12_xforms[] = { 189096c5ddc4Srjs { &search14, &replace14.value, 0 }, 189196c5ddc4Srjs}; 189296c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state13_xforms[] = { 189396c5ddc4Srjs { &search15, &replace15.value, 0 }, 189496c5ddc4Srjs { &search16, &replace16.value, 0 }, 189596c5ddc4Srjs { &search17, &replace17.value, 0 }, 189696c5ddc4Srjs}; 189796c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state14_xforms[] = { 189896c5ddc4Srjs { &search18, &replace18.value, 0 }, 189996c5ddc4Srjs { &search19, &replace19.value, 0 }, 190096c5ddc4Srjs { &search20, &replace19_0.value, 0 }, 190196c5ddc4Srjs { &replace15_1_0, &replace11_0_0_0.value, 0 }, 190296c5ddc4Srjs { &search22, &replace22.value, 0 }, 190396c5ddc4Srjs { &search23, &replace23.value, 0 }, 190496c5ddc4Srjs}; 190596c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state15_xforms[] = { 190696c5ddc4Srjs { &search24, &replace24.value, 0 }, 190796c5ddc4Srjs { &search25, &replace25.value, 0 }, 190896c5ddc4Srjs { &search26, &replace25_0.value, 0 }, 190996c5ddc4Srjs { &search27, &replace12_0_0_0.value, 0 }, 191096c5ddc4Srjs { &search28, &replace28.value, 0 }, 191196c5ddc4Srjs { &search29, &replace29.value, 0 }, 191296c5ddc4Srjs}; 191396c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state16_xforms[] = { 191496c5ddc4Srjs { &search30, &replace30.value, 0 }, 191596c5ddc4Srjs { &search31, &replace31.value, 0 }, 191696c5ddc4Srjs}; 191796c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state17_xforms[] = { 191896c5ddc4Srjs { &search32, &replace32.value, 0 }, 191996c5ddc4Srjs { &search33, &replace33.value, 0 }, 192096c5ddc4Srjs { &search34, &replace34.value, 0 }, 192196c5ddc4Srjs { &search35, &replace35.value, 0 }, 192296c5ddc4Srjs}; 192396c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state18_xforms[] = { 192496c5ddc4Srjs { &search36, &replace36.value, 0 }, 192596c5ddc4Srjs { &search37, &replace37.value, 0 }, 192696c5ddc4Srjs { &search38, &replace38.value, 0 }, 192796c5ddc4Srjs { &search39, &replace39.value, 0 }, 192896c5ddc4Srjs}; 192996c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state19_xforms[] = { 193096c5ddc4Srjs { &search40, &replace40.value, 0 }, 193196c5ddc4Srjs { &search41, &replace41.value, 0 }, 193296c5ddc4Srjs { &search42, &replace41_0.value, 0 }, 193396c5ddc4Srjs { &search43, &replace43.value, 0 }, 193496c5ddc4Srjs}; 193596c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state20_xforms[] = { 193696c5ddc4Srjs { &search44, &replace44.value, 0 }, 193796c5ddc4Srjs { &search45, &replace45.value, 0 }, 193896c5ddc4Srjs { &search46, &replace45_0.value, 0 }, 193996c5ddc4Srjs { &search47, &replace47.value, 0 }, 194096c5ddc4Srjs}; 194196c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state21_xforms[] = { 194296c5ddc4Srjs { &search48, &replace48.value, 0 }, 194396c5ddc4Srjs}; 194496c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state22_xforms[] = { 194596c5ddc4Srjs { &search49, &replace49.value, 0 }, 194696c5ddc4Srjs}; 194796c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state23_xforms[] = { 194896c5ddc4Srjs { &search50, &replace50.value, 0 }, 194996c5ddc4Srjs}; 195096c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state24_xforms[] = { 195196c5ddc4Srjs { &search51, &replace51.value, 0 }, 195296c5ddc4Srjs}; 195396c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state25_xforms[] = { 195496c5ddc4Srjs { &search52, &replace52.value, 0 }, 195596c5ddc4Srjs}; 195696c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state26_xforms[] = { 195796c5ddc4Srjs { &search53, &replace53.value, 0 }, 195896c5ddc4Srjs}; 195996c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state27_xforms[] = { 196096c5ddc4Srjs { &search54, &replace54.value, 0 }, 196196c5ddc4Srjs}; 196296c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state28_xforms[] = { 196396c5ddc4Srjs { &search6, &replace5.value, 0 }, 196496c5ddc4Srjs { &search7, &replace7.value, 0 }, 196596c5ddc4Srjs}; 196696c5ddc4Srjsstatic const struct transform midgard_nir_lower_algebraic_late_state29_xforms[] = { 196796c5ddc4Srjs { &search5, &replace5.value, 0 }, 196896c5ddc4Srjs}; 196996c5ddc4Srjs 197096c5ddc4Srjsstatic const struct per_op_table midgard_nir_lower_algebraic_late_table[nir_num_search_ops] = { 197196c5ddc4Srjs [nir_op_ineg] = { 197296c5ddc4Srjs .filter = (uint16_t []) { 197396c5ddc4Srjs 0, 197496c5ddc4Srjs 0, 197596c5ddc4Srjs 0, 197696c5ddc4Srjs 0, 197796c5ddc4Srjs 0, 197896c5ddc4Srjs 0, 197996c5ddc4Srjs 0, 198096c5ddc4Srjs 0, 198196c5ddc4Srjs 0, 198296c5ddc4Srjs 0, 198396c5ddc4Srjs 0, 198496c5ddc4Srjs 0, 198596c5ddc4Srjs 0, 198696c5ddc4Srjs 0, 198796c5ddc4Srjs 0, 198896c5ddc4Srjs 0, 198996c5ddc4Srjs 0, 199096c5ddc4Srjs 0, 199196c5ddc4Srjs 0, 199296c5ddc4Srjs 0, 199396c5ddc4Srjs 0, 199496c5ddc4Srjs 0, 199596c5ddc4Srjs 0, 199696c5ddc4Srjs 0, 199796c5ddc4Srjs 0, 199896c5ddc4Srjs 0, 199996c5ddc4Srjs 0, 200096c5ddc4Srjs 0, 200196c5ddc4Srjs 0, 200296c5ddc4Srjs 0, 200396c5ddc4Srjs }, 200496c5ddc4Srjs 200596c5ddc4Srjs .num_filtered_states = 1, 200696c5ddc4Srjs .table = (uint16_t []) { 200796c5ddc4Srjs 200896c5ddc4Srjs 2, 200996c5ddc4Srjs }, 201096c5ddc4Srjs }, 201196c5ddc4Srjs [nir_op_fsub] = { 201296c5ddc4Srjs .filter = (uint16_t []) { 201396c5ddc4Srjs 0, 201496c5ddc4Srjs 0, 201596c5ddc4Srjs 0, 201696c5ddc4Srjs 0, 201796c5ddc4Srjs 0, 201896c5ddc4Srjs 0, 201996c5ddc4Srjs 0, 202096c5ddc4Srjs 0, 202196c5ddc4Srjs 0, 202296c5ddc4Srjs 0, 202396c5ddc4Srjs 0, 202496c5ddc4Srjs 0, 202596c5ddc4Srjs 0, 202696c5ddc4Srjs 0, 202796c5ddc4Srjs 0, 202896c5ddc4Srjs 0, 202996c5ddc4Srjs 0, 203096c5ddc4Srjs 0, 203196c5ddc4Srjs 0, 203296c5ddc4Srjs 0, 203396c5ddc4Srjs 0, 203496c5ddc4Srjs 0, 203596c5ddc4Srjs 0, 203696c5ddc4Srjs 0, 203796c5ddc4Srjs 0, 203896c5ddc4Srjs 0, 203996c5ddc4Srjs 0, 204096c5ddc4Srjs 0, 204196c5ddc4Srjs 0, 204296c5ddc4Srjs 0, 204396c5ddc4Srjs }, 204496c5ddc4Srjs 204596c5ddc4Srjs .num_filtered_states = 1, 204696c5ddc4Srjs .table = (uint16_t []) { 204796c5ddc4Srjs 204896c5ddc4Srjs 3, 204996c5ddc4Srjs }, 205096c5ddc4Srjs }, 205196c5ddc4Srjs [nir_op_b32csel] = { 205296c5ddc4Srjs .filter = (uint16_t []) { 205396c5ddc4Srjs 0, 205496c5ddc4Srjs 1, 205596c5ddc4Srjs 0, 205696c5ddc4Srjs 0, 205796c5ddc4Srjs 0, 205896c5ddc4Srjs 0, 205996c5ddc4Srjs 0, 206096c5ddc4Srjs 0, 206196c5ddc4Srjs 0, 206296c5ddc4Srjs 0, 206396c5ddc4Srjs 0, 206496c5ddc4Srjs 0, 206596c5ddc4Srjs 0, 206696c5ddc4Srjs 0, 206796c5ddc4Srjs 0, 206896c5ddc4Srjs 0, 206996c5ddc4Srjs 0, 207096c5ddc4Srjs 0, 207196c5ddc4Srjs 0, 207296c5ddc4Srjs 0, 207396c5ddc4Srjs 0, 207496c5ddc4Srjs 0, 207596c5ddc4Srjs 0, 207696c5ddc4Srjs 0, 207796c5ddc4Srjs 0, 207896c5ddc4Srjs 0, 207996c5ddc4Srjs 0, 208096c5ddc4Srjs 0, 208196c5ddc4Srjs 0, 208296c5ddc4Srjs 0, 208396c5ddc4Srjs }, 208496c5ddc4Srjs 208596c5ddc4Srjs .num_filtered_states = 2, 208696c5ddc4Srjs .table = (uint16_t []) { 208796c5ddc4Srjs 208896c5ddc4Srjs 0, 208996c5ddc4Srjs 4, 209096c5ddc4Srjs 5, 209196c5ddc4Srjs 6, 209296c5ddc4Srjs 0, 209396c5ddc4Srjs 4, 209496c5ddc4Srjs 5, 209596c5ddc4Srjs 6, 209696c5ddc4Srjs }, 209796c5ddc4Srjs }, 209896c5ddc4Srjs [nir_op_fmin] = { 209996c5ddc4Srjs .filter = (uint16_t []) { 210096c5ddc4Srjs 0, 210196c5ddc4Srjs 1, 210296c5ddc4Srjs 0, 210396c5ddc4Srjs 0, 210496c5ddc4Srjs 0, 210596c5ddc4Srjs 0, 210696c5ddc4Srjs 0, 210796c5ddc4Srjs 0, 210896c5ddc4Srjs 2, 210996c5ddc4Srjs 0, 211096c5ddc4Srjs 0, 211196c5ddc4Srjs 0, 211296c5ddc4Srjs 0, 211396c5ddc4Srjs 0, 211496c5ddc4Srjs 0, 211596c5ddc4Srjs 0, 211696c5ddc4Srjs 0, 211796c5ddc4Srjs 0, 211896c5ddc4Srjs 0, 211996c5ddc4Srjs 0, 212096c5ddc4Srjs 0, 212196c5ddc4Srjs 0, 212296c5ddc4Srjs 0, 212396c5ddc4Srjs 0, 212496c5ddc4Srjs 0, 212596c5ddc4Srjs 0, 212696c5ddc4Srjs 0, 212796c5ddc4Srjs 0, 212896c5ddc4Srjs 2, 212996c5ddc4Srjs 0, 213096c5ddc4Srjs }, 213196c5ddc4Srjs 213296c5ddc4Srjs .num_filtered_states = 3, 213396c5ddc4Srjs .table = (uint16_t []) { 213496c5ddc4Srjs 213596c5ddc4Srjs 0, 213696c5ddc4Srjs 7, 213796c5ddc4Srjs 0, 213896c5ddc4Srjs 7, 213996c5ddc4Srjs 7, 214096c5ddc4Srjs 29, 214196c5ddc4Srjs 0, 214296c5ddc4Srjs 29, 214396c5ddc4Srjs 0, 214496c5ddc4Srjs }, 214596c5ddc4Srjs }, 214696c5ddc4Srjs [nir_op_fmax] = { 214796c5ddc4Srjs .filter = (uint16_t []) { 214896c5ddc4Srjs 0, 214996c5ddc4Srjs 1, 215096c5ddc4Srjs 0, 215196c5ddc4Srjs 0, 215296c5ddc4Srjs 0, 215396c5ddc4Srjs 0, 215496c5ddc4Srjs 0, 215596c5ddc4Srjs 2, 215696c5ddc4Srjs 0, 215796c5ddc4Srjs 0, 215896c5ddc4Srjs 0, 215996c5ddc4Srjs 0, 216096c5ddc4Srjs 0, 216196c5ddc4Srjs 0, 216296c5ddc4Srjs 0, 216396c5ddc4Srjs 0, 216496c5ddc4Srjs 0, 216596c5ddc4Srjs 0, 216696c5ddc4Srjs 0, 216796c5ddc4Srjs 0, 216896c5ddc4Srjs 0, 216996c5ddc4Srjs 0, 217096c5ddc4Srjs 0, 217196c5ddc4Srjs 0, 217296c5ddc4Srjs 0, 217396c5ddc4Srjs 0, 217496c5ddc4Srjs 0, 217596c5ddc4Srjs 0, 217696c5ddc4Srjs 0, 217796c5ddc4Srjs 2, 217896c5ddc4Srjs }, 217996c5ddc4Srjs 218096c5ddc4Srjs .num_filtered_states = 3, 218196c5ddc4Srjs .table = (uint16_t []) { 218296c5ddc4Srjs 218396c5ddc4Srjs 0, 218496c5ddc4Srjs 8, 218596c5ddc4Srjs 0, 218696c5ddc4Srjs 8, 218796c5ddc4Srjs 8, 218896c5ddc4Srjs 28, 218996c5ddc4Srjs 0, 219096c5ddc4Srjs 28, 219196c5ddc4Srjs 0, 219296c5ddc4Srjs }, 219396c5ddc4Srjs }, 219496c5ddc4Srjs [nir_op_ishl] = { 219596c5ddc4Srjs .filter = (uint16_t []) { 219696c5ddc4Srjs 0, 219796c5ddc4Srjs 0, 219896c5ddc4Srjs 0, 219996c5ddc4Srjs 0, 220096c5ddc4Srjs 0, 220196c5ddc4Srjs 0, 220296c5ddc4Srjs 0, 220396c5ddc4Srjs 0, 220496c5ddc4Srjs 0, 220596c5ddc4Srjs 0, 220696c5ddc4Srjs 0, 220796c5ddc4Srjs 0, 220896c5ddc4Srjs 0, 220996c5ddc4Srjs 0, 221096c5ddc4Srjs 0, 221196c5ddc4Srjs 0, 221296c5ddc4Srjs 0, 221396c5ddc4Srjs 0, 221496c5ddc4Srjs 0, 221596c5ddc4Srjs 0, 221696c5ddc4Srjs 0, 221796c5ddc4Srjs 0, 221896c5ddc4Srjs 0, 221996c5ddc4Srjs 0, 222096c5ddc4Srjs 0, 222196c5ddc4Srjs 0, 222296c5ddc4Srjs 0, 222396c5ddc4Srjs 0, 222496c5ddc4Srjs 0, 222596c5ddc4Srjs 0, 222696c5ddc4Srjs }, 222796c5ddc4Srjs 222896c5ddc4Srjs .num_filtered_states = 1, 222996c5ddc4Srjs .table = (uint16_t []) { 223096c5ddc4Srjs 223196c5ddc4Srjs 9, 223296c5ddc4Srjs }, 223396c5ddc4Srjs }, 223496c5ddc4Srjs [nir_op_ishr] = { 223596c5ddc4Srjs .filter = (uint16_t []) { 223696c5ddc4Srjs 0, 223796c5ddc4Srjs 0, 223896c5ddc4Srjs 0, 223996c5ddc4Srjs 0, 224096c5ddc4Srjs 0, 224196c5ddc4Srjs 0, 224296c5ddc4Srjs 0, 224396c5ddc4Srjs 0, 224496c5ddc4Srjs 0, 224596c5ddc4Srjs 0, 224696c5ddc4Srjs 0, 224796c5ddc4Srjs 0, 224896c5ddc4Srjs 0, 224996c5ddc4Srjs 0, 225096c5ddc4Srjs 0, 225196c5ddc4Srjs 0, 225296c5ddc4Srjs 0, 225396c5ddc4Srjs 0, 225496c5ddc4Srjs 0, 225596c5ddc4Srjs 0, 225696c5ddc4Srjs 0, 225796c5ddc4Srjs 0, 225896c5ddc4Srjs 0, 225996c5ddc4Srjs 0, 226096c5ddc4Srjs 0, 226196c5ddc4Srjs 0, 226296c5ddc4Srjs 0, 226396c5ddc4Srjs 0, 226496c5ddc4Srjs 0, 226596c5ddc4Srjs 0, 226696c5ddc4Srjs }, 226796c5ddc4Srjs 226896c5ddc4Srjs .num_filtered_states = 1, 226996c5ddc4Srjs .table = (uint16_t []) { 227096c5ddc4Srjs 227196c5ddc4Srjs 10, 227296c5ddc4Srjs }, 227396c5ddc4Srjs }, 227496c5ddc4Srjs [nir_op_ushr] = { 227596c5ddc4Srjs .filter = (uint16_t []) { 227696c5ddc4Srjs 0, 227796c5ddc4Srjs 0, 227896c5ddc4Srjs 0, 227996c5ddc4Srjs 0, 228096c5ddc4Srjs 0, 228196c5ddc4Srjs 0, 228296c5ddc4Srjs 0, 228396c5ddc4Srjs 0, 228496c5ddc4Srjs 0, 228596c5ddc4Srjs 0, 228696c5ddc4Srjs 0, 228796c5ddc4Srjs 0, 228896c5ddc4Srjs 0, 228996c5ddc4Srjs 0, 229096c5ddc4Srjs 0, 229196c5ddc4Srjs 0, 229296c5ddc4Srjs 0, 229396c5ddc4Srjs 0, 229496c5ddc4Srjs 0, 229596c5ddc4Srjs 0, 229696c5ddc4Srjs 0, 229796c5ddc4Srjs 0, 229896c5ddc4Srjs 0, 229996c5ddc4Srjs 0, 230096c5ddc4Srjs 0, 230196c5ddc4Srjs 0, 230296c5ddc4Srjs 0, 230396c5ddc4Srjs 0, 230496c5ddc4Srjs 0, 230596c5ddc4Srjs 0, 230696c5ddc4Srjs }, 230796c5ddc4Srjs 230896c5ddc4Srjs .num_filtered_states = 1, 230996c5ddc4Srjs .table = (uint16_t []) { 231096c5ddc4Srjs 231196c5ddc4Srjs 11, 231296c5ddc4Srjs }, 231396c5ddc4Srjs }, 231496c5ddc4Srjs [nir_op_fmul] = { 231596c5ddc4Srjs .filter = (uint16_t []) { 231696c5ddc4Srjs 0, 231796c5ddc4Srjs 1, 231896c5ddc4Srjs 0, 231996c5ddc4Srjs 0, 232096c5ddc4Srjs 0, 232196c5ddc4Srjs 0, 232296c5ddc4Srjs 0, 232396c5ddc4Srjs 0, 232496c5ddc4Srjs 0, 232596c5ddc4Srjs 0, 232696c5ddc4Srjs 0, 232796c5ddc4Srjs 0, 232896c5ddc4Srjs 0, 232996c5ddc4Srjs 0, 233096c5ddc4Srjs 0, 233196c5ddc4Srjs 0, 233296c5ddc4Srjs 0, 233396c5ddc4Srjs 0, 233496c5ddc4Srjs 0, 233596c5ddc4Srjs 0, 233696c5ddc4Srjs 0, 233796c5ddc4Srjs 0, 233896c5ddc4Srjs 0, 233996c5ddc4Srjs 0, 234096c5ddc4Srjs 0, 234196c5ddc4Srjs 0, 234296c5ddc4Srjs 0, 234396c5ddc4Srjs 0, 234496c5ddc4Srjs 0, 234596c5ddc4Srjs 0, 234696c5ddc4Srjs }, 234796c5ddc4Srjs 234896c5ddc4Srjs .num_filtered_states = 2, 234996c5ddc4Srjs .table = (uint16_t []) { 235096c5ddc4Srjs 235196c5ddc4Srjs 0, 235296c5ddc4Srjs 12, 235396c5ddc4Srjs 12, 235496c5ddc4Srjs 12, 235596c5ddc4Srjs }, 235696c5ddc4Srjs }, 235796c5ddc4Srjs [nir_op_ufind_msb] = { 235896c5ddc4Srjs .filter = (uint16_t []) { 235996c5ddc4Srjs 0, 236096c5ddc4Srjs 0, 236196c5ddc4Srjs 0, 236296c5ddc4Srjs 0, 236396c5ddc4Srjs 0, 236496c5ddc4Srjs 0, 236596c5ddc4Srjs 0, 236696c5ddc4Srjs 0, 236796c5ddc4Srjs 0, 236896c5ddc4Srjs 0, 236996c5ddc4Srjs 0, 237096c5ddc4Srjs 0, 237196c5ddc4Srjs 0, 237296c5ddc4Srjs 0, 237396c5ddc4Srjs 0, 237496c5ddc4Srjs 0, 237596c5ddc4Srjs 0, 237696c5ddc4Srjs 0, 237796c5ddc4Srjs 0, 237896c5ddc4Srjs 0, 237996c5ddc4Srjs 0, 238096c5ddc4Srjs 0, 238196c5ddc4Srjs 0, 238296c5ddc4Srjs 0, 238396c5ddc4Srjs 0, 238496c5ddc4Srjs 0, 238596c5ddc4Srjs 0, 238696c5ddc4Srjs 0, 238796c5ddc4Srjs 0, 238896c5ddc4Srjs 0, 238996c5ddc4Srjs }, 239096c5ddc4Srjs 239196c5ddc4Srjs .num_filtered_states = 1, 239296c5ddc4Srjs .table = (uint16_t []) { 239396c5ddc4Srjs 239496c5ddc4Srjs 13, 239596c5ddc4Srjs }, 239696c5ddc4Srjs }, 239796c5ddc4Srjs [nir_search_op_u2u] = { 239896c5ddc4Srjs .filter = (uint16_t []) { 239996c5ddc4Srjs 0, 240096c5ddc4Srjs 0, 240196c5ddc4Srjs 0, 240296c5ddc4Srjs 0, 240396c5ddc4Srjs 0, 240496c5ddc4Srjs 0, 240596c5ddc4Srjs 0, 240696c5ddc4Srjs 0, 240796c5ddc4Srjs 0, 240896c5ddc4Srjs 0, 240996c5ddc4Srjs 0, 241096c5ddc4Srjs 0, 241196c5ddc4Srjs 0, 241296c5ddc4Srjs 0, 241396c5ddc4Srjs 0, 241496c5ddc4Srjs 0, 241596c5ddc4Srjs 0, 241696c5ddc4Srjs 0, 241796c5ddc4Srjs 0, 241896c5ddc4Srjs 0, 241996c5ddc4Srjs 0, 242096c5ddc4Srjs 0, 242196c5ddc4Srjs 0, 242296c5ddc4Srjs 0, 242396c5ddc4Srjs 0, 242496c5ddc4Srjs 0, 242596c5ddc4Srjs 0, 242696c5ddc4Srjs 0, 242796c5ddc4Srjs 0, 242896c5ddc4Srjs 0, 242996c5ddc4Srjs }, 243096c5ddc4Srjs 243196c5ddc4Srjs .num_filtered_states = 1, 243296c5ddc4Srjs .table = (uint16_t []) { 243396c5ddc4Srjs 243496c5ddc4Srjs 14, 243596c5ddc4Srjs }, 243696c5ddc4Srjs }, 243796c5ddc4Srjs [nir_search_op_i2i] = { 243896c5ddc4Srjs .filter = (uint16_t []) { 243996c5ddc4Srjs 0, 244096c5ddc4Srjs 0, 244196c5ddc4Srjs 0, 244296c5ddc4Srjs 0, 244396c5ddc4Srjs 0, 244496c5ddc4Srjs 0, 244596c5ddc4Srjs 0, 244696c5ddc4Srjs 0, 244796c5ddc4Srjs 0, 244896c5ddc4Srjs 0, 244996c5ddc4Srjs 0, 245096c5ddc4Srjs 0, 245196c5ddc4Srjs 0, 245296c5ddc4Srjs 0, 245396c5ddc4Srjs 0, 245496c5ddc4Srjs 0, 245596c5ddc4Srjs 0, 245696c5ddc4Srjs 0, 245796c5ddc4Srjs 0, 245896c5ddc4Srjs 0, 245996c5ddc4Srjs 0, 246096c5ddc4Srjs 0, 246196c5ddc4Srjs 0, 246296c5ddc4Srjs 0, 246396c5ddc4Srjs 0, 246496c5ddc4Srjs 0, 246596c5ddc4Srjs 0, 246696c5ddc4Srjs 0, 246796c5ddc4Srjs 0, 246896c5ddc4Srjs 0, 246996c5ddc4Srjs }, 247096c5ddc4Srjs 247196c5ddc4Srjs .num_filtered_states = 1, 247296c5ddc4Srjs .table = (uint16_t []) { 247396c5ddc4Srjs 247496c5ddc4Srjs 15, 247596c5ddc4Srjs }, 247696c5ddc4Srjs }, 247796c5ddc4Srjs [nir_search_op_f2f] = { 247896c5ddc4Srjs .filter = (uint16_t []) { 247996c5ddc4Srjs 0, 248096c5ddc4Srjs 0, 248196c5ddc4Srjs 0, 248296c5ddc4Srjs 0, 248396c5ddc4Srjs 0, 248496c5ddc4Srjs 0, 248596c5ddc4Srjs 0, 248696c5ddc4Srjs 0, 248796c5ddc4Srjs 0, 248896c5ddc4Srjs 0, 248996c5ddc4Srjs 0, 249096c5ddc4Srjs 0, 249196c5ddc4Srjs 0, 249296c5ddc4Srjs 0, 249396c5ddc4Srjs 0, 249496c5ddc4Srjs 0, 249596c5ddc4Srjs 0, 249696c5ddc4Srjs 0, 249796c5ddc4Srjs 0, 249896c5ddc4Srjs 0, 249996c5ddc4Srjs 0, 250096c5ddc4Srjs 0, 250196c5ddc4Srjs 0, 250296c5ddc4Srjs 0, 250396c5ddc4Srjs 0, 250496c5ddc4Srjs 0, 250596c5ddc4Srjs 0, 250696c5ddc4Srjs 0, 250796c5ddc4Srjs 0, 250896c5ddc4Srjs 0, 250996c5ddc4Srjs }, 251096c5ddc4Srjs 251196c5ddc4Srjs .num_filtered_states = 1, 251296c5ddc4Srjs .table = (uint16_t []) { 251396c5ddc4Srjs 251496c5ddc4Srjs 16, 251596c5ddc4Srjs }, 251696c5ddc4Srjs }, 251796c5ddc4Srjs [nir_search_op_i2f] = { 251896c5ddc4Srjs .filter = (uint16_t []) { 251996c5ddc4Srjs 0, 252096c5ddc4Srjs 0, 252196c5ddc4Srjs 0, 252296c5ddc4Srjs 0, 252396c5ddc4Srjs 0, 252496c5ddc4Srjs 0, 252596c5ddc4Srjs 0, 252696c5ddc4Srjs 0, 252796c5ddc4Srjs 0, 252896c5ddc4Srjs 0, 252996c5ddc4Srjs 0, 253096c5ddc4Srjs 0, 253196c5ddc4Srjs 0, 253296c5ddc4Srjs 0, 253396c5ddc4Srjs 0, 253496c5ddc4Srjs 0, 253596c5ddc4Srjs 0, 253696c5ddc4Srjs 0, 253796c5ddc4Srjs 0, 253896c5ddc4Srjs 0, 253996c5ddc4Srjs 0, 254096c5ddc4Srjs 0, 254196c5ddc4Srjs 0, 254296c5ddc4Srjs 0, 254396c5ddc4Srjs 0, 254496c5ddc4Srjs 0, 254596c5ddc4Srjs 0, 254696c5ddc4Srjs 0, 254796c5ddc4Srjs 0, 254896c5ddc4Srjs 0, 254996c5ddc4Srjs }, 255096c5ddc4Srjs 255196c5ddc4Srjs .num_filtered_states = 1, 255296c5ddc4Srjs .table = (uint16_t []) { 255396c5ddc4Srjs 255496c5ddc4Srjs 17, 255596c5ddc4Srjs }, 255696c5ddc4Srjs }, 255796c5ddc4Srjs [nir_search_op_u2f] = { 255896c5ddc4Srjs .filter = (uint16_t []) { 255996c5ddc4Srjs 0, 256096c5ddc4Srjs 0, 256196c5ddc4Srjs 0, 256296c5ddc4Srjs 0, 256396c5ddc4Srjs 0, 256496c5ddc4Srjs 0, 256596c5ddc4Srjs 0, 256696c5ddc4Srjs 0, 256796c5ddc4Srjs 0, 256896c5ddc4Srjs 0, 256996c5ddc4Srjs 0, 257096c5ddc4Srjs 0, 257196c5ddc4Srjs 0, 257296c5ddc4Srjs 0, 257396c5ddc4Srjs 0, 257496c5ddc4Srjs 0, 257596c5ddc4Srjs 0, 257696c5ddc4Srjs 0, 257796c5ddc4Srjs 0, 257896c5ddc4Srjs 0, 257996c5ddc4Srjs 0, 258096c5ddc4Srjs 0, 258196c5ddc4Srjs 0, 258296c5ddc4Srjs 0, 258396c5ddc4Srjs 0, 258496c5ddc4Srjs 0, 258596c5ddc4Srjs 0, 258696c5ddc4Srjs 0, 258796c5ddc4Srjs 0, 258896c5ddc4Srjs 0, 258996c5ddc4Srjs }, 259096c5ddc4Srjs 259196c5ddc4Srjs .num_filtered_states = 1, 259296c5ddc4Srjs .table = (uint16_t []) { 259396c5ddc4Srjs 259496c5ddc4Srjs 18, 259596c5ddc4Srjs }, 259696c5ddc4Srjs }, 259796c5ddc4Srjs [nir_search_op_f2i] = { 259896c5ddc4Srjs .filter = (uint16_t []) { 259996c5ddc4Srjs 0, 260096c5ddc4Srjs 0, 260196c5ddc4Srjs 0, 260296c5ddc4Srjs 0, 260396c5ddc4Srjs 0, 260496c5ddc4Srjs 0, 260596c5ddc4Srjs 0, 260696c5ddc4Srjs 0, 260796c5ddc4Srjs 0, 260896c5ddc4Srjs 0, 260996c5ddc4Srjs 0, 261096c5ddc4Srjs 0, 261196c5ddc4Srjs 0, 261296c5ddc4Srjs 0, 261396c5ddc4Srjs 0, 261496c5ddc4Srjs 0, 261596c5ddc4Srjs 0, 261696c5ddc4Srjs 0, 261796c5ddc4Srjs 0, 261896c5ddc4Srjs 0, 261996c5ddc4Srjs 0, 262096c5ddc4Srjs 0, 262196c5ddc4Srjs 0, 262296c5ddc4Srjs 0, 262396c5ddc4Srjs 0, 262496c5ddc4Srjs 0, 262596c5ddc4Srjs 0, 262696c5ddc4Srjs 0, 262796c5ddc4Srjs 0, 262896c5ddc4Srjs 0, 262996c5ddc4Srjs }, 263096c5ddc4Srjs 263196c5ddc4Srjs .num_filtered_states = 1, 263296c5ddc4Srjs .table = (uint16_t []) { 263396c5ddc4Srjs 263496c5ddc4Srjs 19, 263596c5ddc4Srjs }, 263696c5ddc4Srjs }, 263796c5ddc4Srjs [nir_search_op_f2u] = { 263896c5ddc4Srjs .filter = (uint16_t []) { 263996c5ddc4Srjs 0, 264096c5ddc4Srjs 0, 264196c5ddc4Srjs 0, 264296c5ddc4Srjs 0, 264396c5ddc4Srjs 0, 264496c5ddc4Srjs 0, 264596c5ddc4Srjs 0, 264696c5ddc4Srjs 0, 264796c5ddc4Srjs 0, 264896c5ddc4Srjs 0, 264996c5ddc4Srjs 0, 265096c5ddc4Srjs 0, 265196c5ddc4Srjs 0, 265296c5ddc4Srjs 0, 265396c5ddc4Srjs 0, 265496c5ddc4Srjs 0, 265596c5ddc4Srjs 0, 265696c5ddc4Srjs 0, 265796c5ddc4Srjs 0, 265896c5ddc4Srjs 0, 265996c5ddc4Srjs 0, 266096c5ddc4Srjs 0, 266196c5ddc4Srjs 0, 266296c5ddc4Srjs 0, 266396c5ddc4Srjs 0, 266496c5ddc4Srjs 0, 266596c5ddc4Srjs 0, 266696c5ddc4Srjs 0, 266796c5ddc4Srjs 0, 266896c5ddc4Srjs 0, 266996c5ddc4Srjs }, 267096c5ddc4Srjs 267196c5ddc4Srjs .num_filtered_states = 1, 267296c5ddc4Srjs .table = (uint16_t []) { 267396c5ddc4Srjs 267496c5ddc4Srjs 20, 267596c5ddc4Srjs }, 267696c5ddc4Srjs }, 267796c5ddc4Srjs [nir_op_fge] = { 267896c5ddc4Srjs .filter = (uint16_t []) { 267996c5ddc4Srjs 0, 268096c5ddc4Srjs 1, 268196c5ddc4Srjs 0, 268296c5ddc4Srjs 0, 268396c5ddc4Srjs 0, 268496c5ddc4Srjs 0, 268596c5ddc4Srjs 0, 268696c5ddc4Srjs 0, 268796c5ddc4Srjs 0, 268896c5ddc4Srjs 0, 268996c5ddc4Srjs 0, 269096c5ddc4Srjs 0, 269196c5ddc4Srjs 0, 269296c5ddc4Srjs 0, 269396c5ddc4Srjs 0, 269496c5ddc4Srjs 0, 269596c5ddc4Srjs 0, 269696c5ddc4Srjs 0, 269796c5ddc4Srjs 0, 269896c5ddc4Srjs 0, 269996c5ddc4Srjs 0, 270096c5ddc4Srjs 0, 270196c5ddc4Srjs 0, 270296c5ddc4Srjs 0, 270396c5ddc4Srjs 0, 270496c5ddc4Srjs 0, 270596c5ddc4Srjs 0, 270696c5ddc4Srjs 0, 270796c5ddc4Srjs 0, 270896c5ddc4Srjs 0, 270996c5ddc4Srjs }, 271096c5ddc4Srjs 271196c5ddc4Srjs .num_filtered_states = 2, 271296c5ddc4Srjs .table = (uint16_t []) { 271396c5ddc4Srjs 271496c5ddc4Srjs 0, 271596c5ddc4Srjs 21, 271696c5ddc4Srjs 0, 271796c5ddc4Srjs 21, 271896c5ddc4Srjs }, 271996c5ddc4Srjs }, 272096c5ddc4Srjs [nir_op_fge32] = { 272196c5ddc4Srjs .filter = (uint16_t []) { 272296c5ddc4Srjs 0, 272396c5ddc4Srjs 1, 272496c5ddc4Srjs 0, 272596c5ddc4Srjs 0, 272696c5ddc4Srjs 0, 272796c5ddc4Srjs 0, 272896c5ddc4Srjs 0, 272996c5ddc4Srjs 0, 273096c5ddc4Srjs 0, 273196c5ddc4Srjs 0, 273296c5ddc4Srjs 0, 273396c5ddc4Srjs 0, 273496c5ddc4Srjs 0, 273596c5ddc4Srjs 0, 273696c5ddc4Srjs 0, 273796c5ddc4Srjs 0, 273896c5ddc4Srjs 0, 273996c5ddc4Srjs 0, 274096c5ddc4Srjs 0, 274196c5ddc4Srjs 0, 274296c5ddc4Srjs 0, 274396c5ddc4Srjs 0, 274496c5ddc4Srjs 0, 274596c5ddc4Srjs 0, 274696c5ddc4Srjs 0, 274796c5ddc4Srjs 0, 274896c5ddc4Srjs 0, 274996c5ddc4Srjs 0, 275096c5ddc4Srjs 0, 275196c5ddc4Srjs 0, 275296c5ddc4Srjs }, 275396c5ddc4Srjs 275496c5ddc4Srjs .num_filtered_states = 2, 275596c5ddc4Srjs .table = (uint16_t []) { 275696c5ddc4Srjs 275796c5ddc4Srjs 0, 275896c5ddc4Srjs 22, 275996c5ddc4Srjs 0, 276096c5ddc4Srjs 22, 276196c5ddc4Srjs }, 276296c5ddc4Srjs }, 276396c5ddc4Srjs [nir_op_ige32] = { 276496c5ddc4Srjs .filter = (uint16_t []) { 276596c5ddc4Srjs 0, 276696c5ddc4Srjs 1, 276796c5ddc4Srjs 0, 276896c5ddc4Srjs 0, 276996c5ddc4Srjs 0, 277096c5ddc4Srjs 0, 277196c5ddc4Srjs 0, 277296c5ddc4Srjs 0, 277396c5ddc4Srjs 0, 277496c5ddc4Srjs 0, 277596c5ddc4Srjs 0, 277696c5ddc4Srjs 0, 277796c5ddc4Srjs 0, 277896c5ddc4Srjs 0, 277996c5ddc4Srjs 0, 278096c5ddc4Srjs 0, 278196c5ddc4Srjs 0, 278296c5ddc4Srjs 0, 278396c5ddc4Srjs 0, 278496c5ddc4Srjs 0, 278596c5ddc4Srjs 0, 278696c5ddc4Srjs 0, 278796c5ddc4Srjs 0, 278896c5ddc4Srjs 0, 278996c5ddc4Srjs 0, 279096c5ddc4Srjs 0, 279196c5ddc4Srjs 0, 279296c5ddc4Srjs 0, 279396c5ddc4Srjs 0, 279496c5ddc4Srjs 0, 279596c5ddc4Srjs }, 279696c5ddc4Srjs 279796c5ddc4Srjs .num_filtered_states = 2, 279896c5ddc4Srjs .table = (uint16_t []) { 279996c5ddc4Srjs 280096c5ddc4Srjs 0, 280196c5ddc4Srjs 23, 280296c5ddc4Srjs 0, 280396c5ddc4Srjs 23, 280496c5ddc4Srjs }, 280596c5ddc4Srjs }, 280696c5ddc4Srjs [nir_op_uge32] = { 280796c5ddc4Srjs .filter = (uint16_t []) { 280896c5ddc4Srjs 0, 280996c5ddc4Srjs 1, 281096c5ddc4Srjs 0, 281196c5ddc4Srjs 0, 281296c5ddc4Srjs 0, 281396c5ddc4Srjs 0, 281496c5ddc4Srjs 0, 281596c5ddc4Srjs 0, 281696c5ddc4Srjs 0, 281796c5ddc4Srjs 0, 281896c5ddc4Srjs 0, 281996c5ddc4Srjs 0, 282096c5ddc4Srjs 0, 282196c5ddc4Srjs 0, 282296c5ddc4Srjs 0, 282396c5ddc4Srjs 0, 282496c5ddc4Srjs 0, 282596c5ddc4Srjs 0, 282696c5ddc4Srjs 0, 282796c5ddc4Srjs 0, 282896c5ddc4Srjs 0, 282996c5ddc4Srjs 0, 283096c5ddc4Srjs 0, 283196c5ddc4Srjs 0, 283296c5ddc4Srjs 0, 283396c5ddc4Srjs 0, 283496c5ddc4Srjs 0, 283596c5ddc4Srjs 0, 283696c5ddc4Srjs 0, 283796c5ddc4Srjs 0, 283896c5ddc4Srjs }, 283996c5ddc4Srjs 284096c5ddc4Srjs .num_filtered_states = 2, 284196c5ddc4Srjs .table = (uint16_t []) { 284296c5ddc4Srjs 284396c5ddc4Srjs 0, 284496c5ddc4Srjs 24, 284596c5ddc4Srjs 0, 284696c5ddc4Srjs 24, 284796c5ddc4Srjs }, 284896c5ddc4Srjs }, 284996c5ddc4Srjs [nir_op_flt32] = { 285096c5ddc4Srjs .filter = (uint16_t []) { 285196c5ddc4Srjs 0, 285296c5ddc4Srjs 1, 285396c5ddc4Srjs 0, 285496c5ddc4Srjs 0, 285596c5ddc4Srjs 0, 285696c5ddc4Srjs 0, 285796c5ddc4Srjs 0, 285896c5ddc4Srjs 0, 285996c5ddc4Srjs 0, 286096c5ddc4Srjs 0, 286196c5ddc4Srjs 0, 286296c5ddc4Srjs 0, 286396c5ddc4Srjs 0, 286496c5ddc4Srjs 0, 286596c5ddc4Srjs 0, 286696c5ddc4Srjs 0, 286796c5ddc4Srjs 0, 286896c5ddc4Srjs 0, 286996c5ddc4Srjs 0, 287096c5ddc4Srjs 0, 287196c5ddc4Srjs 0, 287296c5ddc4Srjs 0, 287396c5ddc4Srjs 0, 287496c5ddc4Srjs 0, 287596c5ddc4Srjs 0, 287696c5ddc4Srjs 0, 287796c5ddc4Srjs 0, 287896c5ddc4Srjs 0, 287996c5ddc4Srjs 0, 288096c5ddc4Srjs 0, 288196c5ddc4Srjs }, 288296c5ddc4Srjs 288396c5ddc4Srjs .num_filtered_states = 2, 288496c5ddc4Srjs .table = (uint16_t []) { 288596c5ddc4Srjs 288696c5ddc4Srjs 0, 288796c5ddc4Srjs 0, 288896c5ddc4Srjs 25, 288996c5ddc4Srjs 25, 289096c5ddc4Srjs }, 289196c5ddc4Srjs }, 289296c5ddc4Srjs [nir_op_ilt32] = { 289396c5ddc4Srjs .filter = (uint16_t []) { 289496c5ddc4Srjs 0, 289596c5ddc4Srjs 1, 289696c5ddc4Srjs 0, 289796c5ddc4Srjs 0, 289896c5ddc4Srjs 0, 289996c5ddc4Srjs 0, 290096c5ddc4Srjs 0, 290196c5ddc4Srjs 0, 290296c5ddc4Srjs 0, 290396c5ddc4Srjs 0, 290496c5ddc4Srjs 0, 290596c5ddc4Srjs 0, 290696c5ddc4Srjs 0, 290796c5ddc4Srjs 0, 290896c5ddc4Srjs 0, 290996c5ddc4Srjs 0, 291096c5ddc4Srjs 0, 291196c5ddc4Srjs 0, 291296c5ddc4Srjs 0, 291396c5ddc4Srjs 0, 291496c5ddc4Srjs 0, 291596c5ddc4Srjs 0, 291696c5ddc4Srjs 0, 291796c5ddc4Srjs 0, 291896c5ddc4Srjs 0, 291996c5ddc4Srjs 0, 292096c5ddc4Srjs 0, 292196c5ddc4Srjs 0, 292296c5ddc4Srjs 0, 292396c5ddc4Srjs 0, 292496c5ddc4Srjs }, 292596c5ddc4Srjs 292696c5ddc4Srjs .num_filtered_states = 2, 292796c5ddc4Srjs .table = (uint16_t []) { 292896c5ddc4Srjs 292996c5ddc4Srjs 0, 293096c5ddc4Srjs 0, 293196c5ddc4Srjs 26, 293296c5ddc4Srjs 26, 293396c5ddc4Srjs }, 293496c5ddc4Srjs }, 293596c5ddc4Srjs [nir_op_ult32] = { 293696c5ddc4Srjs .filter = (uint16_t []) { 293796c5ddc4Srjs 0, 293896c5ddc4Srjs 1, 293996c5ddc4Srjs 0, 294096c5ddc4Srjs 0, 294196c5ddc4Srjs 0, 294296c5ddc4Srjs 0, 294396c5ddc4Srjs 0, 294496c5ddc4Srjs 0, 294596c5ddc4Srjs 0, 294696c5ddc4Srjs 0, 294796c5ddc4Srjs 0, 294896c5ddc4Srjs 0, 294996c5ddc4Srjs 0, 295096c5ddc4Srjs 0, 295196c5ddc4Srjs 0, 295296c5ddc4Srjs 0, 295396c5ddc4Srjs 0, 295496c5ddc4Srjs 0, 295596c5ddc4Srjs 0, 295696c5ddc4Srjs 0, 295796c5ddc4Srjs 0, 295896c5ddc4Srjs 0, 295996c5ddc4Srjs 0, 296096c5ddc4Srjs 0, 296196c5ddc4Srjs 0, 296296c5ddc4Srjs 0, 296396c5ddc4Srjs 0, 296496c5ddc4Srjs 0, 296596c5ddc4Srjs 0, 296696c5ddc4Srjs 0, 296796c5ddc4Srjs }, 296896c5ddc4Srjs 296996c5ddc4Srjs .num_filtered_states = 2, 297096c5ddc4Srjs .table = (uint16_t []) { 297196c5ddc4Srjs 297296c5ddc4Srjs 0, 297396c5ddc4Srjs 0, 297496c5ddc4Srjs 27, 297596c5ddc4Srjs 27, 297696c5ddc4Srjs }, 297796c5ddc4Srjs }, 297896c5ddc4Srjs}; 297996c5ddc4Srjs 298096c5ddc4Srjsconst struct transform *midgard_nir_lower_algebraic_late_transforms[] = { 298196c5ddc4Srjs NULL, 298296c5ddc4Srjs NULL, 298396c5ddc4Srjs midgard_nir_lower_algebraic_late_state2_xforms, 298496c5ddc4Srjs midgard_nir_lower_algebraic_late_state3_xforms, 298596c5ddc4Srjs midgard_nir_lower_algebraic_late_state4_xforms, 298696c5ddc4Srjs midgard_nir_lower_algebraic_late_state5_xforms, 298796c5ddc4Srjs midgard_nir_lower_algebraic_late_state6_xforms, 298896c5ddc4Srjs NULL, 298996c5ddc4Srjs midgard_nir_lower_algebraic_late_state8_xforms, 299096c5ddc4Srjs midgard_nir_lower_algebraic_late_state9_xforms, 299196c5ddc4Srjs midgard_nir_lower_algebraic_late_state10_xforms, 299296c5ddc4Srjs midgard_nir_lower_algebraic_late_state11_xforms, 299396c5ddc4Srjs midgard_nir_lower_algebraic_late_state12_xforms, 299496c5ddc4Srjs midgard_nir_lower_algebraic_late_state13_xforms, 299596c5ddc4Srjs midgard_nir_lower_algebraic_late_state14_xforms, 299696c5ddc4Srjs midgard_nir_lower_algebraic_late_state15_xforms, 299796c5ddc4Srjs midgard_nir_lower_algebraic_late_state16_xforms, 299896c5ddc4Srjs midgard_nir_lower_algebraic_late_state17_xforms, 299996c5ddc4Srjs midgard_nir_lower_algebraic_late_state18_xforms, 300096c5ddc4Srjs midgard_nir_lower_algebraic_late_state19_xforms, 300196c5ddc4Srjs midgard_nir_lower_algebraic_late_state20_xforms, 300296c5ddc4Srjs midgard_nir_lower_algebraic_late_state21_xforms, 300396c5ddc4Srjs midgard_nir_lower_algebraic_late_state22_xforms, 300496c5ddc4Srjs midgard_nir_lower_algebraic_late_state23_xforms, 300596c5ddc4Srjs midgard_nir_lower_algebraic_late_state24_xforms, 300696c5ddc4Srjs midgard_nir_lower_algebraic_late_state25_xforms, 300796c5ddc4Srjs midgard_nir_lower_algebraic_late_state26_xforms, 300896c5ddc4Srjs midgard_nir_lower_algebraic_late_state27_xforms, 300996c5ddc4Srjs midgard_nir_lower_algebraic_late_state28_xforms, 301096c5ddc4Srjs midgard_nir_lower_algebraic_late_state29_xforms, 301196c5ddc4Srjs}; 301296c5ddc4Srjs 301396c5ddc4Srjsconst uint16_t midgard_nir_lower_algebraic_late_transform_counts[] = { 301496c5ddc4Srjs 0, 301596c5ddc4Srjs 0, 301696c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state2_xforms), 301796c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state3_xforms), 301896c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state4_xforms), 301996c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state5_xforms), 302096c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state6_xforms), 302196c5ddc4Srjs 0, 302296c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state8_xforms), 302396c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state9_xforms), 302496c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state10_xforms), 302596c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state11_xforms), 302696c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state12_xforms), 302796c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state13_xforms), 302896c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state14_xforms), 302996c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state15_xforms), 303096c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state16_xforms), 303196c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state17_xforms), 303296c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state18_xforms), 303396c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state19_xforms), 303496c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state20_xforms), 303596c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state21_xforms), 303696c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state22_xforms), 303796c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state23_xforms), 303896c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state24_xforms), 303996c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state25_xforms), 304096c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state26_xforms), 304196c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state27_xforms), 304296c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state28_xforms), 304396c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_lower_algebraic_late_state29_xforms), 304496c5ddc4Srjs}; 304596c5ddc4Srjs 304696c5ddc4Srjsbool 304796c5ddc4Srjsmidgard_nir_lower_algebraic_late(nir_shader *shader) 304896c5ddc4Srjs{ 304996c5ddc4Srjs bool progress = false; 305096c5ddc4Srjs bool condition_flags[1]; 305196c5ddc4Srjs const nir_shader_compiler_options *options = shader->options; 305296c5ddc4Srjs const shader_info *info = &shader->info; 305396c5ddc4Srjs (void) options; 305496c5ddc4Srjs (void) info; 305596c5ddc4Srjs 305696c5ddc4Srjs condition_flags[0] = true; 305796c5ddc4Srjs 305896c5ddc4Srjs nir_foreach_function(function, shader) { 305996c5ddc4Srjs if (function->impl) { 306096c5ddc4Srjs progress |= nir_algebraic_impl(function->impl, condition_flags, 306196c5ddc4Srjs midgard_nir_lower_algebraic_late_transforms, 306296c5ddc4Srjs midgard_nir_lower_algebraic_late_transform_counts, 306396c5ddc4Srjs midgard_nir_lower_algebraic_late_table); 306496c5ddc4Srjs } 306596c5ddc4Srjs } 306696c5ddc4Srjs 306796c5ddc4Srjs return progress; 306896c5ddc4Srjs} 306996c5ddc4Srjs 307096c5ddc4Srjs 307196c5ddc4Srjs#include "nir.h" 307296c5ddc4Srjs#include "nir_builder.h" 307396c5ddc4Srjs#include "nir_search.h" 307496c5ddc4Srjs#include "nir_search_helpers.h" 307596c5ddc4Srjs 307696c5ddc4Srjs/* What follows is NIR algebraic transform code for the following 2 307796c5ddc4Srjs * transforms: 307896c5ddc4Srjs * ('fsin', 'a') => ('fsin', ('fdiv', 'a', 3.141592653589793)) 307996c5ddc4Srjs * ('fcos', 'a') => ('fcos', ('fdiv', 'a', 3.141592653589793)) 308096c5ddc4Srjs */ 308196c5ddc4Srjs 308296c5ddc4Srjs 308396c5ddc4Srjs static const nir_search_variable search55_0 = { 308496c5ddc4Srjs { nir_search_value_variable, -1 }, 308596c5ddc4Srjs 0, /* a */ 308696c5ddc4Srjs false, 308796c5ddc4Srjs nir_type_invalid, 308896c5ddc4Srjs NULL, 308996c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 309096c5ddc4Srjs}; 309196c5ddc4Srjsstatic const nir_search_expression search55 = { 309296c5ddc4Srjs { nir_search_value_expression, -1 }, 309396c5ddc4Srjs false, false, 309496c5ddc4Srjs -1, 0, 309596c5ddc4Srjs nir_op_fsin, 309696c5ddc4Srjs { &search55_0.value }, 309796c5ddc4Srjs NULL, 309896c5ddc4Srjs}; 309996c5ddc4Srjs 310096c5ddc4Srjs /* replace55_0_0 -> search55_0 in the cache */ 310196c5ddc4Srjs 310296c5ddc4Srjsstatic const nir_search_constant replace55_0_1 = { 310396c5ddc4Srjs { nir_search_value_constant, -1 }, 310496c5ddc4Srjs nir_type_float, { 0x400921fb54442d18 /* 3.141592653589793 */ }, 310596c5ddc4Srjs}; 310696c5ddc4Srjsstatic const nir_search_expression replace55_0 = { 310796c5ddc4Srjs { nir_search_value_expression, -1 }, 310896c5ddc4Srjs false, false, 310996c5ddc4Srjs -1, 0, 311096c5ddc4Srjs nir_op_fdiv, 311196c5ddc4Srjs { &search55_0.value, &replace55_0_1.value }, 311296c5ddc4Srjs NULL, 311396c5ddc4Srjs}; 311496c5ddc4Srjsstatic const nir_search_expression replace55 = { 311596c5ddc4Srjs { nir_search_value_expression, -1 }, 311696c5ddc4Srjs false, false, 311796c5ddc4Srjs -1, 0, 311896c5ddc4Srjs nir_op_fsin, 311996c5ddc4Srjs { &replace55_0.value }, 312096c5ddc4Srjs NULL, 312196c5ddc4Srjs}; 312296c5ddc4Srjs 312396c5ddc4Srjs /* search56_0 -> search55_0 in the cache */ 312496c5ddc4Srjsstatic const nir_search_expression search56 = { 312596c5ddc4Srjs { nir_search_value_expression, -1 }, 312696c5ddc4Srjs false, false, 312796c5ddc4Srjs -1, 0, 312896c5ddc4Srjs nir_op_fcos, 312996c5ddc4Srjs { &search55_0.value }, 313096c5ddc4Srjs NULL, 313196c5ddc4Srjs}; 313296c5ddc4Srjs 313396c5ddc4Srjs /* replace56_0_0 -> search55_0 in the cache */ 313496c5ddc4Srjs 313596c5ddc4Srjs/* replace56_0_1 -> replace55_0_1 in the cache */ 313696c5ddc4Srjs/* replace56_0 -> replace55_0 in the cache */ 313796c5ddc4Srjsstatic const nir_search_expression replace56 = { 313896c5ddc4Srjs { nir_search_value_expression, -1 }, 313996c5ddc4Srjs false, false, 314096c5ddc4Srjs -1, 0, 314196c5ddc4Srjs nir_op_fcos, 314296c5ddc4Srjs { &replace55_0.value }, 314396c5ddc4Srjs NULL, 314496c5ddc4Srjs}; 314596c5ddc4Srjs 314696c5ddc4Srjs 314796c5ddc4Srjsstatic const struct transform midgard_nir_scale_trig_state2_xforms[] = { 314896c5ddc4Srjs { &search55, &replace55.value, 0 }, 314996c5ddc4Srjs}; 315096c5ddc4Srjsstatic const struct transform midgard_nir_scale_trig_state3_xforms[] = { 315196c5ddc4Srjs { &search56, &replace56.value, 0 }, 315296c5ddc4Srjs}; 315396c5ddc4Srjs 315496c5ddc4Srjsstatic const struct per_op_table midgard_nir_scale_trig_table[nir_num_search_ops] = { 315596c5ddc4Srjs [nir_op_fsin] = { 315696c5ddc4Srjs .filter = (uint16_t []) { 315796c5ddc4Srjs 0, 315896c5ddc4Srjs 0, 315996c5ddc4Srjs 0, 316096c5ddc4Srjs 0, 316196c5ddc4Srjs }, 316296c5ddc4Srjs 316396c5ddc4Srjs .num_filtered_states = 1, 316496c5ddc4Srjs .table = (uint16_t []) { 316596c5ddc4Srjs 316696c5ddc4Srjs 2, 316796c5ddc4Srjs }, 316896c5ddc4Srjs }, 316996c5ddc4Srjs [nir_op_fcos] = { 317096c5ddc4Srjs .filter = (uint16_t []) { 317196c5ddc4Srjs 0, 317296c5ddc4Srjs 0, 317396c5ddc4Srjs 0, 317496c5ddc4Srjs 0, 317596c5ddc4Srjs }, 317696c5ddc4Srjs 317796c5ddc4Srjs .num_filtered_states = 1, 317896c5ddc4Srjs .table = (uint16_t []) { 317996c5ddc4Srjs 318096c5ddc4Srjs 3, 318196c5ddc4Srjs }, 318296c5ddc4Srjs }, 318396c5ddc4Srjs}; 318496c5ddc4Srjs 318596c5ddc4Srjsconst struct transform *midgard_nir_scale_trig_transforms[] = { 318696c5ddc4Srjs NULL, 318796c5ddc4Srjs NULL, 318896c5ddc4Srjs midgard_nir_scale_trig_state2_xforms, 318996c5ddc4Srjs midgard_nir_scale_trig_state3_xforms, 319096c5ddc4Srjs}; 319196c5ddc4Srjs 319296c5ddc4Srjsconst uint16_t midgard_nir_scale_trig_transform_counts[] = { 319396c5ddc4Srjs 0, 319496c5ddc4Srjs 0, 319596c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_scale_trig_state2_xforms), 319696c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_scale_trig_state3_xforms), 319796c5ddc4Srjs}; 319896c5ddc4Srjs 319996c5ddc4Srjsbool 320096c5ddc4Srjsmidgard_nir_scale_trig(nir_shader *shader) 320196c5ddc4Srjs{ 320296c5ddc4Srjs bool progress = false; 320396c5ddc4Srjs bool condition_flags[1]; 320496c5ddc4Srjs const nir_shader_compiler_options *options = shader->options; 320596c5ddc4Srjs const shader_info *info = &shader->info; 320696c5ddc4Srjs (void) options; 320796c5ddc4Srjs (void) info; 320896c5ddc4Srjs 320996c5ddc4Srjs condition_flags[0] = true; 321096c5ddc4Srjs 321196c5ddc4Srjs nir_foreach_function(function, shader) { 321296c5ddc4Srjs if (function->impl) { 321396c5ddc4Srjs progress |= nir_algebraic_impl(function->impl, condition_flags, 321496c5ddc4Srjs midgard_nir_scale_trig_transforms, 321596c5ddc4Srjs midgard_nir_scale_trig_transform_counts, 321696c5ddc4Srjs midgard_nir_scale_trig_table); 321796c5ddc4Srjs } 321896c5ddc4Srjs } 321996c5ddc4Srjs 322096c5ddc4Srjs return progress; 322196c5ddc4Srjs} 322296c5ddc4Srjs 322396c5ddc4Srjs 322496c5ddc4Srjs#include "nir.h" 322596c5ddc4Srjs#include "nir_builder.h" 322696c5ddc4Srjs#include "nir_search.h" 322796c5ddc4Srjs#include "nir_search_helpers.h" 322896c5ddc4Srjs 322996c5ddc4Srjs/* What follows is NIR algebraic transform code for the following 1 323096c5ddc4Srjs * transforms: 323196c5ddc4Srjs * ('inot', ('inot', 'a')) => a 323296c5ddc4Srjs */ 323396c5ddc4Srjs 323496c5ddc4Srjs 323596c5ddc4Srjs static const nir_search_variable search57_0_0 = { 323696c5ddc4Srjs { nir_search_value_variable, -1 }, 323796c5ddc4Srjs 0, /* a */ 323896c5ddc4Srjs false, 323996c5ddc4Srjs nir_type_invalid, 324096c5ddc4Srjs NULL, 324196c5ddc4Srjs {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 324296c5ddc4Srjs}; 324396c5ddc4Srjsstatic const nir_search_expression search57_0 = { 324496c5ddc4Srjs { nir_search_value_expression, -1 }, 324596c5ddc4Srjs false, false, 324696c5ddc4Srjs -1, 0, 324796c5ddc4Srjs nir_op_inot, 324896c5ddc4Srjs { &search57_0_0.value }, 324996c5ddc4Srjs NULL, 325096c5ddc4Srjs}; 325196c5ddc4Srjsstatic const nir_search_expression search57 = { 325296c5ddc4Srjs { nir_search_value_expression, -1 }, 325396c5ddc4Srjs false, false, 325496c5ddc4Srjs -1, 0, 325596c5ddc4Srjs nir_op_inot, 325696c5ddc4Srjs { &search57_0.value }, 325796c5ddc4Srjs NULL, 325896c5ddc4Srjs}; 325996c5ddc4Srjs 326096c5ddc4Srjs /* replace57 -> search57_0_0 in the cache */ 326196c5ddc4Srjs 326296c5ddc4Srjs 326396c5ddc4Srjsstatic const struct transform midgard_nir_cancel_inot_state3_xforms[] = { 326496c5ddc4Srjs { &search57, &search57_0_0.value, 0 }, 326596c5ddc4Srjs}; 326696c5ddc4Srjs 326796c5ddc4Srjsstatic const struct per_op_table midgard_nir_cancel_inot_table[nir_num_search_ops] = { 326896c5ddc4Srjs [nir_op_inot] = { 326996c5ddc4Srjs .filter = (uint16_t []) { 327096c5ddc4Srjs 0, 327196c5ddc4Srjs 0, 327296c5ddc4Srjs 1, 327396c5ddc4Srjs 1, 327496c5ddc4Srjs }, 327596c5ddc4Srjs 327696c5ddc4Srjs .num_filtered_states = 2, 327796c5ddc4Srjs .table = (uint16_t []) { 327896c5ddc4Srjs 327996c5ddc4Srjs 2, 328096c5ddc4Srjs 3, 328196c5ddc4Srjs }, 328296c5ddc4Srjs }, 328396c5ddc4Srjs}; 328496c5ddc4Srjs 328596c5ddc4Srjsconst struct transform *midgard_nir_cancel_inot_transforms[] = { 328696c5ddc4Srjs NULL, 328796c5ddc4Srjs NULL, 328896c5ddc4Srjs NULL, 328996c5ddc4Srjs midgard_nir_cancel_inot_state3_xforms, 329096c5ddc4Srjs}; 329196c5ddc4Srjs 329296c5ddc4Srjsconst uint16_t midgard_nir_cancel_inot_transform_counts[] = { 329396c5ddc4Srjs 0, 329496c5ddc4Srjs 0, 329596c5ddc4Srjs 0, 329696c5ddc4Srjs (uint16_t)ARRAY_SIZE(midgard_nir_cancel_inot_state3_xforms), 329796c5ddc4Srjs}; 329896c5ddc4Srjs 329996c5ddc4Srjsbool 330096c5ddc4Srjsmidgard_nir_cancel_inot(nir_shader *shader) 330196c5ddc4Srjs{ 330296c5ddc4Srjs bool progress = false; 330396c5ddc4Srjs bool condition_flags[1]; 330496c5ddc4Srjs const nir_shader_compiler_options *options = shader->options; 330596c5ddc4Srjs const shader_info *info = &shader->info; 330696c5ddc4Srjs (void) options; 330796c5ddc4Srjs (void) info; 330896c5ddc4Srjs 330996c5ddc4Srjs condition_flags[0] = true; 331096c5ddc4Srjs 331196c5ddc4Srjs nir_foreach_function(function, shader) { 331296c5ddc4Srjs if (function->impl) { 331396c5ddc4Srjs progress |= nir_algebraic_impl(function->impl, condition_flags, 331496c5ddc4Srjs midgard_nir_cancel_inot_transforms, 331596c5ddc4Srjs midgard_nir_cancel_inot_transform_counts, 331696c5ddc4Srjs midgard_nir_cancel_inot_table); 331796c5ddc4Srjs } 331896c5ddc4Srjs } 331996c5ddc4Srjs 332096c5ddc4Srjs return progress; 332196c5ddc4Srjs} 332296c5ddc4Srjs 3323