Lines Matching refs:a
37 a = 'a' variable
85 x = ('fsub', ('fmul', 2.0, ('ffract', ('fadd', ('fmul', 0.5 / pi, a), c))), 1.0)
94 (('imul', a, '#b(is_pos_power_of_two)'), ('ishl', a, ('find_lsb', b)), '!options->lower_bitops'),
95 …(('imul', a, '#b(is_neg_power_of_two)'), ('ineg', ('ishl', a, ('find_lsb', ('iabs', b)))), '!optio…
96 (('ishl', a, '#b'), ('imul', a, ('ishl', 1, b)), 'options->lower_bitops'),
98 (('unpack_64_2x32_split_x', ('imul_2x32_64(is_used_once)', a, b)), ('imul', a, b)),
99 (('unpack_64_2x32_split_x', ('umul_2x32_64(is_used_once)', a, b)), ('imul', a, b)),
100 …(('imul_2x32_64', a, b), ('pack_64_2x32_split', ('imul', a, b), ('imul_high', a, b)), 'options->lo…
101 …(('umul_2x32_64', a, b), ('pack_64_2x32_split', ('imul', a, b), ('umul_high', a, b)), 'options->lo…
102 (('udiv', a, 1), a),
103 (('idiv', a, 1), a),
104 (('umod', a, 1), 0),
105 (('imod', a, 1), 0),
106 (('udiv', a, '#b(is_pos_power_of_two)'), ('ushr', a, ('find_lsb', b)), '!options->lower_bitops'),
107 …(('idiv', a, '#b(is_pos_power_of_two)'), ('imul', ('isign', a), ('ushr', ('iabs', a), ('find_lsb',…
108 …(('idiv', a, '#b(is_neg_power_of_two)'), ('ineg', ('imul', ('isign', a), ('ushr', ('iabs', a), ('f…
109 (('umod', a, '#b(is_pos_power_of_two)'), ('iand', a, ('isub', b, 1))),
111 (('~fneg', ('fneg', a)), a),
112 (('ineg', ('ineg', a)), a),
113 (('fabs', ('fneg', a)), ('fabs', a)),
114 (('fabs', ('u2f', a)), ('u2f', a)),
115 (('iabs', ('iabs', a)), ('iabs', a)),
116 (('iabs', ('ineg', a)), ('iabs', a)),
117 (('f2b', ('fneg', a)), ('f2b', a)),
118 (('i2b', ('ineg', a)), ('i2b', a)),
119 (('~fadd', a, 0.0), a),
120 (('iadd', a, 0), a),
121 (('usadd_4x8', a, 0), a),
122 (('usadd_4x8', a, ~0), ~0),
123 (('~fadd', ('fmul', a, b), ('fmul', a, c)), ('fmul', a, ('fadd', b, c))),
124 (('iadd', ('imul', a, b), ('imul', a, c)), ('imul', a, ('iadd', b, c))),
125 (('iand', ('ior', a, b), ('ior', a, c)), ('ior', a, ('iand', b, c))),
126 (('ior', ('iand', a, b), ('iand', a, c)), ('iand', a, ('ior', b, c))),
127 (('~fadd', ('fneg', a), a), 0.0),
128 (('iadd', ('ineg', a), a), 0),
129 (('iadd', ('ineg', a), ('iadd', a, b)), b),
130 (('iadd', a, ('iadd', ('ineg', a), b)), b),
131 (('~fadd', ('fneg', a), ('fadd', a, b)), b),
132 (('~fadd', a, ('fadd', ('fneg', a), b)), b),
133 (('fadd', ('fsat', a), ('fsat', ('fneg', a))), ('fsat', ('fabs', a))),
134 (('~fmul', a, 0.0), 0.0),
135 (('imul', a, 0), 0),
136 (('umul_unorm_4x8', a, 0), 0),
137 (('umul_unorm_4x8', a, ~0), a),
138 (('~fmul', a, 1.0), a),
139 (('imul', a, 1), a),
140 (('fmul', a, -1.0), ('fneg', a)),
141 (('imul', a, -1), ('ineg', a)),
145 (('fmul', ('fsign', a), ('fmul', a, a)), ('fmul', ('fabs', a), a)),
146 (('fmul', ('fmul', ('fsign', a), a), a), ('fmul', ('fabs', a), a)),
147 (('~ffma', 0.0, a, b), b),
148 (('~ffma', a, b, 0.0), ('fmul', a, b)),
149 (('ffma', 1.0, a, b), ('fadd', a, b)),
150 (('ffma', -1.0, a, b), ('fadd', ('fneg', a), b)),
151 (('~flrp', a, b, 0.0), a),
152 (('~flrp', a, b, 1.0), b),
153 (('~flrp', a, a, b), a),
154 (('~flrp', 0.0, a, b), ('fmul', a, b)),
157 (('~flrp', a, ('fadd(is_used_once)', a, b), c), ('fadd', ('fmul', b, c), a)),
163 …(('~flrp@{}'.format(s), a, ('fadd', a, b), c), ('fadd', ('fmul', b, c), a), 'options->lower_flrp{}…
164 …(('~flrp@{}'.format(s), ('fadd', a, b), ('fadd', a, c), d), ('fadd', ('flrp', b, c, d), a), 'optio…
165 …(('~flrp@{}'.format(s), a, ('fmul(is_used_once)', a, b), c), ('fmul', ('flrp', 1.0, b, c), a), 'op…
167 …(('~flrp@{}'.format(s), a, b, ('b2f', 'c@1')), ('bcsel', c, b, a), 'options->lower_flrp{}'.format(…
169 …(('~fadd@{}'.format(s), ('fmul', a, ('fadd', 1.0, ('fneg', c))), ('fmul', b, c)), ('flrp', a, b, c…
172 …(('~fadd@{}'.format(s), ('fmul', a, ('fsat', ('fadd', 1.0, ('fneg', c)))), ('fmul', b, ('fsat', c)…
173 …(('~fadd@{}'.format(s), a, ('fmul', c, ('fadd', b, ('fneg', a)))), ('flrp', a, b, c), '!options->l…
175 …fadd@{}'.format(s), ('fmul', a, ('fadd', 1.0, ('fneg', ('b2f', 'c@1')))), ('fmul', b, ('b2f', …
176 …(('~fadd@{}'.format(s), a, ('fmul', ('b2f', 'c@1'), ('fadd', b, ('fneg', a)))), ('bcsel', c, b, a)…
185 …), 1.0, ('fneg', ('fmul', ('fadd', 1.0, ('fneg', a)), ('fadd', 1.0, ('fneg', b))))), ('flrp', b, 1…
189 …(('~flrp', ('fmul(is_used_once)', a, b), ('fmul(is_used_once)', a, c), d), ('fmul', ('flrp', b, c,…
191 (('~flrp', a, 0.0, c), ('fadd', ('fmul', ('fneg', a), c), a)),
192 …(('ftrunc', a), ('bcsel', ('flt', a, 0.0), ('fneg', ('ffloor', ('fabs', a))), ('ffloor', ('fabs', …
193 (('ffloor', a), ('fsub', a, ('ffract', a)), 'options->lower_ffloor'),
194 (('fadd', a, ('fneg', ('ffract', a))), ('ffloor', a), '!options->lower_ffloor'),
195 (('ffract', a), ('fsub', a, ('ffloor', a)), 'options->lower_ffract'),
196 (('fceil', a), ('fneg', ('ffloor', ('fneg', a))), 'options->lower_fceil'),
197 (('ffma@16', a, b, c), ('fadd', ('fmul', a, b), c), 'options->lower_ffma16'),
198 (('ffma@32', a, b, c), ('fadd', ('fmul', a, b), c), 'options->lower_ffma32'),
199 (('ffma@64', a, b, c), ('fadd', ('fmul', a, b), c), 'options->lower_ffma64'),
201 (('~ffma@16', a, b, c), ('fadd', ('fmul', a, b), c), 'options->fuse_ffma16'),
202 (('~ffma@32', a, b, c), ('fadd', ('fmul', a, b), c), 'options->fuse_ffma32'),
203 (('~ffma@64', a, b, c), ('fadd', ('fmul', a, b), c), 'options->fuse_ffma64'),
206 ('bcsel', a, ('fmul', ('fadd', ('fmul', b, c), d), e), ('fmul', d, e))),
208 (('fdph', a, b), ('fdot4', ('vec4', 'a.x', 'a.y', 'a.z', 1.0), b), 'options->lower_fdph'),
210 …(('fdot4', ('vec4', a, b, c, 1.0), d), ('fdph', ('vec3', a, b, c), d), '!options->lower_fdph'…
211 (('fdot4', ('vec4', a, 0.0, 0.0, 0.0), b), ('fmul', a, b)),
212 (('fdot4', ('vec4', a, b, 0.0, 0.0), c), ('fdot2', ('vec2', a, b), c)),
213 (('fdot4', ('vec4', a, b, c, 0.0), d), ('fdot3', ('vec3', a, b, c), d)),
215 (('fdot3', ('vec3', a, 0.0, 0.0), b), ('fmul', a, b)),
216 (('fdot3', ('vec3', a, b, 0.0), c), ('fdot2', ('vec2', a, b), c)),
218 (('fdot2', ('vec2', a, 0.0), b), ('fmul', a, b)),
219 (('fdot2', a, 1.0), ('fadd', 'a.x', 'a.y')),
222 (('fdot2', a, b), ('fsum2', ('fmul', a, b)), 'options->lower_fdot'),
223 (('fdot3', a, b), ('fsum3', ('fmul', a, b)), 'options->lower_fdot'),
224 (('fdot4', a, b), ('fsum4', ('fmul', a, b)), 'options->lower_fdot'),
225 (('fsum2', a), ('fadd', 'a.x', 'a.y'), 'options->lower_fdot'),
230 …sed_once)', ('fsat(is_used_once)', 'a(is_not_fmul)')), 1.0), ('fsat', ('fadd', 1.0, ('fneg', a)))),
235 (('ishl', ('iadd', ('imul', a, '#b'), '#c'), '#d'),
236 ('iadd', ('imul', a, ('ishl', b, d)), ('ishl', c, d))),
240 (('ishl', ('imul', a, '#b'), '#c'), ('imul', a, ('ishl', b, c))),
256 ((ishl, (ishl, a, '#b'), '#c'), ('bcsel', in_bounds, (ishl, a, ('iadd', b, c)), 0)),
257 ((ushr, (ushr, a, '#b'), '#c'), ('bcsel', in_bounds, (ushr, a, ('iadd', b, c)), 0)),
261 ((ishr, (ishr, a, '#b'), '#c'),
262 (ishr, a, ('imin', ('iadd', ('iand', b, mask), ('iand', c, mask)), s - 1))),
275 (('ishl', ('ushr', a, log2), log2), ('iand', a, mask)),
278 (('iand', ('iadd', a, b_is_multiple), mask), ('iadd', ('iand', a, mask), b)),
291 (('ishl@32', ('iand', 'a@32', lo_mask), i), ('ishl', a, i)),
295 (('iand', ('ishl', 'a@32', i), hi_mask), ('ishl', a, i)),
296 (('iand', ('ushr', 'a@32', i), lo_mask), ('ushr', a, i)),
304 (('ishl', ('iadd', a, '#b'), '#c'), ('iadd', ('ishl', a, c), ('ishl', b, c))),
307 (('imul', ('iadd(is_used_once)', a, '#b'), '#c'), ('iadd', ('imul', a, c), ('imul', b, c))),
310 (('~inot', ('flt', a, b)), ('fge', a, b)),
311 (('~inot', ('fge', a, b)), ('flt', a, b)),
312 (('inot', ('feq', a, b)), ('fneu', a, b)),
313 (('inot', ('fneu', a, b)), ('feq', a, b)),
314 (('inot', ('ilt', a, b)), ('ige', a, b)),
315 (('inot', ('ult', a, b)), ('uge', a, b)),
316 (('inot', ('ige', a, b)), ('ilt', a, b)),
317 (('inot', ('uge', a, b)), ('ult', a, b)),
318 (('inot', ('ieq', a, b)), ('ine', a, b)),
319 (('inot', ('ine', a, b)), ('ieq', a, b)),
321 (('iand', ('feq', a, b), ('fneu', a, b)), False),
322 (('iand', ('flt', a, b), ('flt', b, a)), False),
323 (('iand', ('ieq', a, b), ('ine', a, b)), False),
324 (('iand', ('ilt', a, b), ('ilt', b, a)), False),
325 (('iand', ('ult', a, b), ('ult', b, a)), False),
330 (('flt', ('fneg', a), ('fneg', b)), ('flt', b, a)),
331 (('fge', ('fneg', a), ('fneg', b)), ('fge', b, a)),
332 (('feq', ('fneg', a), ('fneg', b)), ('feq', b, a)),
333 (('fneu', ('fneg', a), ('fneg', b)), ('fneu', b, a)),
334 (('flt', ('fneg', a), -1.0), ('flt', 1.0, a)),
335 (('flt', -1.0, ('fneg', a)), ('flt', a, 1.0)),
336 (('fge', ('fneg', a), -1.0), ('fge', 1.0, a)),
337 (('fge', -1.0, ('fneg', a)), ('fge', a, 1.0)),
338 (('fneu', ('fneg', a), -1.0), ('fneu', 1.0, a)),
339 (('feq', -1.0, ('fneg', a)), ('feq', a, 1.0)),
343 (('~flt', ('fsat(is_used_once)', a), '#b(is_gt_0_and_lt_1)'), ('flt', a, b)),
344 (('flt', '#b(is_gt_0_and_lt_1)', ('fsat(is_used_once)', a)), ('flt', b, a)),
345 (('fge', ('fsat(is_used_once)', a), '#b(is_gt_0_and_lt_1)'), ('fge', a, b)),
348 (('~fge', '#b(is_gt_0_and_lt_1)', ('fsat(is_used_once)', a)), ('fge', b, a)),
349 (('feq', ('fsat(is_used_once)', a), '#b(is_gt_0_and_lt_1)'), ('feq', a, b)),
350 (('fneu', ('fsat(is_used_once)', a), '#b(is_gt_0_and_lt_1)'), ('fneu', a, b)),
352 (('fge', ('fsat(is_used_once)', a), 1.0), ('fge', a, 1.0)),
353 (('flt', ('fsat(is_used_once)', a), 1.0), ('flt', a, 1.0)),
354 (('fge', 0.0, ('fsat(is_used_once)', a)), ('fge', 0.0, a)),
355 (('flt', 0.0, ('fsat(is_used_once)', a)), ('flt', 0.0, a)),
361 (('fge', 0.0, ('b2f', 'a@1')), ('inot', a)),
363 (('fge', ('fneg', ('b2f', 'a@1')), 0.0), ('inot', a)),
365 (('fneu', ('fadd', ('b2f', 'a@1'), ('b2f', 'b@1')), 0.0), ('ior', a, b)),
366 (('fneu', ('fmax', ('b2f', 'a@1'), ('b2f', 'b@1')), 0.0), ('ior', a, b)),
367 (('fneu', ('bcsel', a, 1.0, ('b2f', 'b@1')) , 0.0), ('ior', a, b)),
368 (('fneu', ('b2f', 'a@1'), ('fneg', ('b2f', 'b@1'))), ('ior', a, b)),
369 (('fneu', ('fmul', ('b2f', 'a@1'), ('b2f', 'b@1')), 0.0), ('iand', a, b)),
370 (('fneu', ('fmin', ('b2f', 'a@1'), ('b2f', 'b@1')), 0.0), ('iand', a, b)),
371 (('fneu', ('bcsel', a, ('b2f', 'b@1'), 0.0) , 0.0), ('iand', a, b)),
372 (('fneu', ('fadd', ('b2f', 'a@1'), ('fneg', ('b2f', 'b@1'))), 0.0), ('ixor', a, b)),
373 (('fneu', ('b2f', 'a@1') , ('b2f', 'b@1') ), ('ixor', a, b)),
374 (('fneu', ('fneg', ('b2f', 'a@1')), ('fneg', ('b2f', 'b@1'))), ('ixor', a, b)),
375 (('feq', ('fadd', ('b2f', 'a@1'), ('b2f', 'b@1')), 0.0), ('inot', ('ior', a, b))),
376 (('feq', ('fmax', ('b2f', 'a@1'), ('b2f', 'b@1')), 0.0), ('inot', ('ior', a, b))),
377 (('feq', ('bcsel', a, 1.0, ('b2f', 'b@1')) , 0.0), ('inot', ('ior', a, b))),
378 (('feq', ('b2f', 'a@1'), ('fneg', ('b2f', 'b@1'))), ('inot', ('ior', a, b))),
379 (('feq', ('fmul', ('b2f', 'a@1'), ('b2f', 'b@1')), 0.0), ('inot', ('iand', a, b))),
380 (('feq', ('fmin', ('b2f', 'a@1'), ('b2f', 'b@1')), 0.0), ('inot', ('iand', a, b))),
381 (('feq', ('bcsel', a, ('b2f', 'b@1'), 0.0) , 0.0), ('inot', ('iand', a, b))),
382 (('feq', ('fadd', ('b2f', 'a@1'), ('fneg', ('b2f', 'b@1'))), 0.0), ('ieq', a, b)),
383 (('feq', ('b2f', 'a@1') , ('b2f', 'b@1') ), ('ieq', a, b)),
384 (('feq', ('fneg', ('b2f', 'a@1')), ('fneg', ('b2f', 'b@1'))), ('ieq', a, b)),
390 (('flt', ('fneg', ('fadd', ('b2f', 'a@1'), ('b2f', 'b@1'))), 0.0), ('ior', a, b)),
391 (('flt', 0.0, ('fadd', ('b2f', 'a@1'), ('b2f', 'b@1'))), ('ior', a, b)),
397 (('fge', ('fneg', ('fadd', ('b2f', 'a@1'), ('b2f', 'b@1'))), 0.0), ('inot', ('ior', a, b))),
398 (('fge', 0.0, ('fadd', ('b2f', 'a@1'), ('b2f', 'b@1'))), ('inot', ('ior', a, b))),
400 (('flt', a, ('fneg', a)), ('flt', a, 0.0)),
401 (('fge', a, ('fneg', a)), ('fge', a, 0.0)),
408 ('ior', ('flt', c, 0.0), ('ior', a, b))),
410 (('~flt', ('fadd', a, b), a), ('flt', b, 0.0)),
411 (('~fge', ('fadd', a, b), a), ('fge', b, 0.0)),
412 (('~feq', ('fadd', a, b), a), ('feq', b, 0.0)),
413 (('~fneu', ('fadd', a, b), a), ('fneu', b, 0.0)),
414 …(('~flt', ('fadd(is_used_once)', a, '#b'), '#c'), ('flt', a, ('fadd', c, (…
415 …t', ('fneg(is_used_once)', ('fadd(is_used_once)', a, '#b')), '#c'), ('flt', ('fneg', ('fadd', c, b…
416 …(('~fge', ('fadd(is_used_once)', a, '#b'), '#c'), ('fge', a, ('fadd', c, (…
417 …e', ('fneg(is_used_once)', ('fadd(is_used_once)', a, '#b')), '#c'), ('fge', ('fneg', ('fadd', c, b…
418 …(('~feq', ('fadd(is_used_once)', a, '#b'), '#c'), ('feq', a, ('fadd', c, (…
419 …q', ('fneg(is_used_once)', ('fadd(is_used_once)', a, '#b')), '#c'), ('feq', ('fneg', ('fadd', c, b…
420 …(('~fneu', ('fadd(is_used_once)', a, '#b'), '#c'), ('fneu', a, ('fadd', c,…
421 …', ('fneg(is_used_once)', ('fadd(is_used_once)', a, '#b')), '#c'), ('fneu', ('fneg', ('fadd', c, b…
424 (('ieq', ('iadd', a, b), a), ('ieq', b, 0)),
425 (('ine', ('iadd', a, b), a), ('ine', b, 0)),
427 (('feq', ('b2f', 'a@1'), 0.0), ('inot', a)),
428 (('~fneu', ('b2f', 'a@1'), 0.0), a),
429 (('ieq', ('b2i', 'a@1'), 0), ('inot', a)),
430 (('ine', ('b2i', 'a@1'), 0), a),
432 (('fneu', ('u2f', a), 0.0), ('ine', a, 0)),
433 (('feq', ('u2f', a), 0.0), ('ieq', a, 0)),
434 (('fge', ('u2f', a), 0.0), True),
435 (('fge', 0.0, ('u2f', a)), ('uge', 0, a)), # ieq instead?
436 (('flt', ('u2f', a), 0.0), False),
437 (('flt', 0.0, ('u2f', a)), ('ult', 0, a)), # ine instead?
438 (('fneu', ('i2f', a), 0.0), ('ine', a, 0)),
439 (('feq', ('i2f', a), 0.0), ('ieq', a, 0)),
440 (('fge', ('i2f', a), 0.0), ('ige', a, 0)),
441 (('fge', 0.0, ('i2f', a)), ('ige', 0, a)),
442 (('flt', ('i2f', a), 0.0), ('ilt', a, 0)),
443 (('flt', 0.0, ('i2f', a)), ('ilt', 0, a)),
449 (('~flt', 0.0, ('fabs', a)), ('fneu', a, 0.0)),
453 (('~flt', ('fneg', ('fabs', a)), 0.0), ('fneu', a, 0.0)),
458 (('fge', 0.0, ('fabs', a)), ('feq', a, 0.0)),
462 (('fge', ('fneg', ('fabs', a)), 0.0), ('feq', a, 0.0)),
465 (('iand', ('fge', a, 0.0), ('fge', 1.0, a)), ('feq', a, ('fsat', a)), '!options->lower_fsat'),
472 (('ior', ('flt', a, 0.0), ('flt', 1.0, a)), ('fneu', a, ('fsat', a)), '!options->lower_fsat'),
474 … ('b2f(is_used_once)', 'a@1'), ('b2f', 'b@1')), ('b2f', ('ior', a, b))),
475 …nce)', ('b2f(is_used_once)', 'a@1')), ('fneg', ('b2f', 'b@1'))), ('fneg', ('b2f', ('ior', a, b)))),
476 … ('b2f(is_used_once)', 'a@1'), ('b2f', 'b@1')), ('b2f', ('iand', a, b))),
477 …ce)', ('b2f(is_used_once)', 'a@1')), ('fneg', ('b2f', 'b@1'))), ('fneg', ('b2f', ('iand', a, b)))),
486 (('fmin', ('b2f', 'a@1'), '#b'), ('bcsel', a, ('fmin', b, 1.0), ('fmin', b, 0.0))),
488 (('flt', ('fadd(is_used_once)', a, ('fneg', b)), 0.0), ('flt', a, b)),
490 (('fge', ('fneg', ('fabs', a)), 0.0), ('feq', a, 0.0)),
491 (('~bcsel', ('flt', b, a), b, a), ('fmin', a, b)),
492 (('~bcsel', ('flt', a, b), b, a), ('fmax', a, b)),
493 (('~bcsel', ('fge', a, b), b, a), ('fmin', a, b)),
494 (('~bcsel', ('fge', b, a), b, a), ('fmax', a, b)),
495 (('bcsel', ('i2b', a), b, c), ('bcsel', ('ine', a, 0), b, c)),
496 (('bcsel', ('inot', a), b, c), ('bcsel', a, c, b)),
497 (('bcsel', a, ('bcsel', a, b, c), d), ('bcsel', a, b, d)),
498 (('bcsel', a, b, ('bcsel', a, c, d)), ('bcsel', a, b, d)),
499 …(('bcsel', a, ('bcsel', b, c, d), ('bcsel(is_used_once)', b, c, 'e')), ('bcsel', b, c, ('bcsel', a…
500 …(('bcsel', a, ('bcsel(is_used_once)', b, c, d), ('bcsel', b, c, 'e')), ('bcsel', b, c, ('bcsel', a…
501 …(('bcsel', a, ('bcsel', b, c, d), ('bcsel(is_used_once)', b, 'e', d)), ('bcsel', b, ('bcsel', a, c…
502 …(('bcsel', a, ('bcsel(is_used_once)', b, c, d), ('bcsel', b, 'e', d)), ('bcsel', b, ('bcsel', a, c…
503 (('bcsel', a, True, b), ('ior', a, b)),
504 (('bcsel', a, a, b), ('ior', a, b)),
505 (('bcsel', a, b, False), ('iand', a, b)),
506 (('bcsel', a, b, a), ('iand', a, b)),
507 (('~fmin', a, a), a),
508 (('~fmax', a, a), a),
509 (('imin', a, a), a),
510 (('imax', a, a), a),
511 (('umin', a, a), a),
512 (('umax', a, a), a),
513 (('fmax', ('fmax', a, b), b), ('fmax', a, b)),
514 (('umax', ('umax', a, b), b), ('umax', a, b)),
515 (('imax', ('imax', a, b), b), ('imax', a, b)),
516 (('fmin', ('fmin', a, b), b), ('fmin', a, b)),
517 (('umin', ('umin', a, b), b), ('umin', a, b)),
518 (('imin', ('imin', a, b), b), ('imin', a, b)),
524 (('iand@{}'.format(s), a, ('inot', ('ishr', a, s - 1))), ('imax', a, 0)),
527 (('ieq', ('iand', 'a@{}'.format(s), 1 << (s - 1)), 0), ('ige', a, 0)),
528 (('ine', ('iand', 'a@{}'.format(s), 1 << (s - 1)), 1 << (s - 1)), ('ige', a, 0)),
529 (('ine', ('iand', 'a@{}'.format(s), 1 << (s - 1)), 0), ('ilt', a, 0)),
530 (('ieq', ('iand', 'a@{}'.format(s), 1 << (s - 1)), 1 << (s - 1)), ('ilt', a, 0)),
531 (('ine', ('ushr', 'a@{}'.format(s), s - 1), 0), ('ilt', a, 0)),
532 (('ieq', ('ushr', 'a@{}'.format(s), s - 1), 0), ('ige', a, 0)),
533 (('ieq', ('ushr', 'a@{}'.format(s), s - 1), 1), ('ilt', a, 0)),
534 (('ine', ('ushr', 'a@{}'.format(s), s - 1), 1), ('ige', a, 0)),
535 (('ine', ('ishr', 'a@{}'.format(s), s - 1), 0), ('ilt', a, 0)),
536 (('ieq', ('ishr', 'a@{}'.format(s), s - 1), 0), ('ige', a, 0)),
537 (('ieq', ('ishr', 'a@{}'.format(s), s - 1), -1), ('ilt', a, 0)),
538 (('ine', ('ishr', 'a@{}'.format(s), s - 1), -1), ('ige', a, 0)),
542 (('fmin', a, ('fneg', a)), ('fneg', ('fabs', a))),
543 (('imin', a, ('ineg', a)), ('ineg', ('iabs', a))),
544 (('fmin', a, ('fneg', ('fabs', a))), ('fneg', ('fabs', a))),
545 (('imin', a, ('ineg', ('iabs', a))), ('ineg', ('iabs', a))),
546 (('~fmin', a, ('fabs', a)), a),
547 (('imin', a, ('iabs', a)), a),
548 (('~fmax', a, ('fneg', ('fabs', a))), a),
549 (('imax', a, ('ineg', ('iabs', a))), a),
550 (('fmax', a, ('fabs', a)), ('fabs', a)),
551 (('imax', a, ('iabs', a)), ('iabs', a)),
552 (('fmax', a, ('fneg', a)), ('fabs', a)),
553 (('imax', a, ('ineg', a)), ('iabs', a), '!options->lower_iabs'),
554 (('~fmax', ('fabs', a), 0.0), ('fabs', a)),
555 (('fmin', ('fmax', a, 0.0), 1.0), ('fsat', a), '!options->lower_fsat'),
558 (('~fmax', ('fmin', a, 1.0), 0.0), ('fsat', a), '!options->lower_fsat'),
561 (('~fmin', ('fmax', a, -1.0), 0.0), ('fneg', ('fsat', ('fneg', a))), '!options->lower_fsat'),
566 (('~fmax', ('fmin', a, 0.0), -1.0), ('fneg', ('fsat', ('fneg', a))), '!options->lower_fsat'),
567 (('fsat', ('fsign', a)), ('b2f', ('flt', 0.0, a))),
568 (('fsat', ('b2f', a)), ('b2f', a)),
569 (('fsat', a), ('fmin', ('fmax', a, 0.0), 1.0), 'options->lower_fsat'),
570 (('fsat', ('fsat', a)), ('fsat', a)),
571 …(('fsat', ('fneg(is_used_once)', ('fadd(is_used_once)', a, b))), ('fsat', ('fadd', ('fneg', a), ('…
572 …(('fsat', ('fneg(is_used_once)', ('fmul(is_used_once)', a, b))), ('fsat', ('fmul', ('fneg', a), b)…
573 …(('fsat', ('fabs(is_used_once)', ('fmul(is_used_once)', a, b))), ('fsat', ('fmul', ('fabs', a), ('…
574 (('fmin', ('fmax', ('fmin', ('fmax', a, b), c), b), c), ('fmin', ('fmax', a, b), c)),
575 (('imin', ('imax', ('imin', ('imax', a, b), c), b), c), ('imin', ('imax', a, b), c)),
576 (('umin', ('umax', ('umin', ('umax', a, b), c), b), c), ('umin', ('umax', a, b), c)),
578 (('fmax', ('fsat', a), '#b(is_zero_to_one)'), ('fsat', ('fmax', a, b))),
581 (('~fmin', ('fsat', a), '#b(is_zero_to_one)'), ('fsat', ('fmin', a, b))),
590 ('fsat', ('fadd', ('fneg', a), b)), '!options->lower_fsat'),
592 (('extract_u8', ('imin', ('imax', a, 0), 0xff), 0), ('imin', ('imax', a, 0), 0xff)),
593 (('~ior', ('flt(is_used_once)', a, b), ('flt', a, c)), ('flt', a, ('fmax', b, c))),
594 (('~ior', ('flt(is_used_once)', a, c), ('flt', b, c)), ('flt', ('fmin', a, b), c)),
595 (('~ior', ('fge(is_used_once)', a, b), ('fge', a, c)), ('fge', a, ('fmin', b, c))),
596 (('~ior', ('fge(is_used_once)', a, c), ('fge', b, c)), ('fge', ('fmax', a, b), c)),
597 (('~ior', ('flt', a, '#b'), ('flt', a, '#c')), ('flt', a, ('fmax', b, c))),
598 (('~ior', ('flt', '#a', c), ('flt', '#b', c)), ('flt', ('fmin', a, b), c)),
599 (('~ior', ('fge', a, '#b'), ('fge', a, '#c')), ('fge', a, ('fmin', b, c))),
600 (('~ior', ('fge', '#a', c), ('fge', '#b', c)), ('fge', ('fmax', a, b), c)),
601 (('~iand', ('flt(is_used_once)', a, b), ('flt', a, c)), ('flt', a, ('fmin', b, c))),
602 (('~iand', ('flt(is_used_once)', a, c), ('flt', b, c)), ('flt', ('fmax', a, b), c)),
603 (('~iand', ('fge(is_used_once)', a, b), ('fge', a, c)), ('fge', a, ('fmax', b, c))),
604 (('~iand', ('fge(is_used_once)', a, c), ('fge', b, c)), ('fge', ('fmin', a, b), c)),
605 (('~iand', ('flt', a, '#b'), ('flt', a, '#c')), ('flt', a, ('fmin', b, c))),
606 (('~iand', ('flt', '#a', c), ('flt', '#b', c)), ('flt', ('fmax', a, b), c)),
607 (('~iand', ('fge', a, '#b'), ('fge', a, '#c')), ('fge', a, ('fmax', b, c))),
608 (('~iand', ('fge', '#a', c), ('fge', '#b', c)), ('fge', ('fmin', a, b), c)),
610 (('ior', ('ilt(is_used_once)', a, b), ('ilt', a, c)), ('ilt', a, ('imax', b, c))),
611 (('ior', ('ilt(is_used_once)', a, c), ('ilt', b, c)), ('ilt', ('imin', a, b), c)),
612 (('ior', ('ige(is_used_once)', a, b), ('ige', a, c)), ('ige', a, ('imin', b, c))),
613 (('ior', ('ige(is_used_once)', a, c), ('ige', b, c)), ('ige', ('imax', a, b), c)),
614 (('ior', ('ult(is_used_once)', a, b), ('ult', a, c)), ('ult', a, ('umax', b, c))),
615 (('ior', ('ult(is_used_once)', a, c), ('ult', b, c)), ('ult', ('umin', a, b), c)),
616 (('ior', ('uge(is_used_once)', a, b), ('uge', a, c)), ('uge', a, ('umin', b, c))),
617 (('ior', ('uge(is_used_once)', a, c), ('uge', b, c)), ('uge', ('umax', a, b), c)),
618 (('iand', ('ilt(is_used_once)', a, b), ('ilt', a, c)), ('ilt', a, ('imin', b, c))),
619 (('iand', ('ilt(is_used_once)', a, c), ('ilt', b, c)), ('ilt', ('imax', a, b), c)),
620 (('iand', ('ige(is_used_once)', a, b), ('ige', a, c)), ('ige', a, ('imax', b, c))),
621 (('iand', ('ige(is_used_once)', a, c), ('ige', b, c)), ('ige', ('imin', a, b), c)),
622 (('iand', ('ult(is_used_once)', a, b), ('ult', a, c)), ('ult', a, ('umin', b, c))),
623 (('iand', ('ult(is_used_once)', a, c), ('ult', b, c)), ('ult', ('umax', a, b), c)),
624 (('iand', ('uge(is_used_once)', a, b), ('uge', a, c)), ('uge', a, ('umax', b, c))),
625 (('iand', ('uge(is_used_once)', a, c), ('uge', b, c)), ('uge', ('umin', a, b), c)),
636 …, 0.0, 'a@{}'.format(s)), ('flt', 'b@{}'.format(s), 0.0)), ('flt', 0.0, ('fmax', a, ('fneg', b)))),
637 …format(s)), ('flt(is_used_once)', 'b@{}'.format(s), 0.0)), ('flt', 0.0, ('fmax', a, ('fneg', b)))),
638 …, 0.0, 'a@{}'.format(s)), ('fge', 'b@{}'.format(s), 0.0)), ('fge', 0.0, ('fmin', a, ('fneg', b)))),
639 …format(s)), ('fge(is_used_once)', 'b@{}'.format(s), 0.0)), ('fge', 0.0, ('fmin', a, ('fneg', b)))),
640 …, 0.0, 'a@{}'.format(s)), ('flt', 'b@{}'.format(s), 0.0)), ('flt', 0.0, ('fmin', a, ('fneg', b)))),
641 …format(s)), ('flt(is_used_once)', 'b@{}'.format(s), 0.0)), ('flt', 0.0, ('fmin', a, ('fneg', b)))),
642 …, 0.0, 'a@{}'.format(s)), ('fge', 'b@{}'.format(s), 0.0)), ('fge', 0.0, ('fmax', a, ('fneg', b)))),
643 …format(s)), ('fge(is_used_once)', 'b@{}'.format(s), 0.0)), ('fge', 0.0, ('fmax', a, ('fneg', b)))),
665 …(('bcsel@{}'.format(s), ('feq', a, 0.0), 1.0, ('i2f{}'.format(s), ('iadd', ('b2i{}'.format(s), ('f…
666 …('i2f{}'.format(s), ('iadd', ('b2i32', ('!fge', a, 0.0)), ('ineg', ('b2i32', ('!flt', a, 0.0)))))),
668 …(('bcsel', a, ('b2f(is_used_once)', 'b@{}'.format(s)), ('b2f', 'c@{}'.format(s))), ('b2f', ('bcsel…
673 (('~i2f{}'.format(s), ('f2i', 'a@{}'.format(s))), ('ftrunc', a)),
678 (('~f2i{}'.format(s), ('i2f', 'a@{}'.format(s))), a),
679 (('~f2i{}'.format(s), ('u2f', 'a@{}'.format(s))), a),
680 (('~f2u{}'.format(s), ('i2f', 'a@{}'.format(s))), a),
681 (('~f2u{}'.format(s), ('u2f', 'a@{}'.format(s))), a),
683 …, ('fneg', ('b2f{}'.format(s), ('flt', 'a@{}'.format(s), 0.0)))), ('fsign', a), '!options->lower_f…
684 …'.format(s), ('flt', 'a@{}'.format(s), 0)))), ('f2i{}'.format(s), ('fsign', a)), '!options->lower_…
688 (('~f2f{}'.format(s), ('f2f', a)), ('f2f{}'.format(s), a)),
691 (('~f2f{}'.format(s), ('u2f', a)), ('u2f{}'.format(s), a)),
692 (('~f2f{}'.format(s), ('i2f', a)), ('i2f{}'.format(s), a)),
695 (('~f2u{}'.format(s), ('f2f', a)), ('f2u{}'.format(s), a)),
696 (('~f2i{}'.format(s), ('f2f', a)), ('f2i{}'.format(s), a)),
703 (('f2f{}'.format(s), ('f2f{}'.format(B), 'a@{}'.format(s))), a),
704 (('i2i{}'.format(s), ('i2i{}'.format(B), 'a@{}'.format(s))), a),
705 (('u2u{}'.format(s), ('u2u{}'.format(B), 'a@{}'.format(s))), a),
708 (('f2f{}'.format(s), ('b2f{}'.format(B), 'a@1')), ('b2f{}'.format(s), a)),
709 (('i2i{}'.format(s), ('b2i{}'.format(B), 'a@1')), ('b2i{}'.format(s), a)),
710 (('u2u{}'.format(s), ('b2i{}'.format(B), 'a@1')), ('b2i{}'.format(s), a)),
713 (('f2u{}'.format(B), ('f2f{}'.format(B), 'a@{}'.format(s))), ('f2u{}'.format(B), a)),
714 (('f2i{}'.format(B), ('f2f{}'.format(B), 'a@{}'.format(s))), ('f2i{}'.format(B), a)),
717 (('f2f{}'.format(s), ('u2f{}'.format(B), a)), ('u2f{}'.format(s), a)),
718 (('f2f{}'.format(s), ('i2f{}'.format(B), a)), ('i2f{}'.format(s), a)),
721 (('u2f{}'.format(B), ('u2u{}'.format(B), 'a@{}'.format(s))), ('u2f{}'.format(B), a)),
722 (('i2f{}'.format(B), ('i2i{}'.format(B), 'a@{}'.format(s))), ('i2f{}'.format(B), a)),
728 (('f2fmp', ('u2f32', 'a@32')), ('u2fmp', a)),
729 (('f2fmp', ('i2f32', 'a@32')), ('i2fmp', a)),
732 (('f2u16', ('f2fmp', 'a@32')), ('f2u16', a)),
733 (('f2i16', ('f2fmp', 'a@32')), ('f2i16', a)),
736 (('i2imp', ('f2u32', 'a@32')), ('f2ump', a)),
737 (('i2imp', ('f2i32', 'a@32')), ('f2imp', a)),
740 (('u2f16', ('i2imp', 'a@32')), ('u2f16', a)),
741 (('i2f16', ('i2imp', 'a@32')), ('i2f16', a)),
747 …(('iand', ('ieq', 'a@{}'.format(s), 0), ('ieq', 'b@{}'.format(s), 0)), ('ieq', ('ior', a, b), 0), …
748 …(('ior', ('ine', 'a@{}'.format(s), 0), ('ine', 'b@{}'.format(s), 0)), ('ine', ('ior', a, b), 0), …
749 …(('iand', ('ieq', 'a@{}'.format(s), 0), ('ieq', 'b@{}'.format(s), 0)), ('ieq', ('umax', a, b), 0),…
750 …(('ior', ('ieq', 'a@{}'.format(s), 0), ('ieq', 'b@{}'.format(s), 0)), ('ieq', ('umin', a, b), 0),…
751 …(('iand', ('ine', 'a@{}'.format(s), 0), ('ine', 'b@{}'.format(s), 0)), ('ine', ('umin', a, b), 0),…
752 …(('ior', ('ine', 'a@{}'.format(s), 0), ('ine', 'b@{}'.format(s), 0)), ('ine', ('umax', a, b), 0),…
755 (('ineg', ('b2i{}'.format(s), 'a@{}'.format(s))), a),
758 (('ishl', 'a@{}'.format(s), ('iand', s - 1, b)), ('ishl', a, b)),
759 (('ishr', 'a@{}'.format(s), ('iand', s - 1, b)), ('ishr', a, b)),
760 (('ushr', 'a@{}'.format(s), ('iand', s - 1, b)), ('ushr', a, b)),
765 (('ior', ('ieq', a, 0), ('ieq', a, 1)), ('uge', 1, a)),
766 (('ior', ('uge', 1, a), ('ieq', a, 2)), ('uge', 2, a)),
767 (('ior', ('uge', 2, a), ('ieq', a, 3)), ('uge', 3, a)),
769 (('ior', a, ('ieq', a, False)), True),
770 (('ior', a, ('inot', a)), -1),
772 (('ine', ('ineg', ('b2i', 'a@1')), ('ineg', ('b2i', 'b@1'))), ('ine', a, b)),
773 (('b2i', ('ine', 'a@1', 'b@1')), ('b2i', ('ixor', a, b))),
781 (('iand', ('inot', ('iand', ('ior', ('ieq', a, 0), b), c)), ('ilt', a, 0)),
782 ('iand', ('inot', ('iand', b , c)), ('ilt', a, 0))),
783 (('iand', ('inot', ('iand', ('ieq', ('umin', a, b), 0), c)), ('ilt', a, 0)),
784 ('iand', ('inot', ('iand', ('ieq', b , 0), c)), ('ilt', a, 0))),
788 (('~flt', a, ('fmax', b, a)), ('flt', a, b)),
789 (('~flt', ('fmin', a, b), a), ('flt', b, a)),
790 (('~fge', a, ('fmin', b, a)), True),
791 (('~fge', ('fmax', a, b), a), True),
792 (('~flt', a, ('fmin', b, a)), False),
793 (('~flt', ('fmax', a, b), a), False),
794 (('~fge', a, ('fmax', b, a)), ('fge', a, b)),
795 (('~fge', ('fmin', a, b), a), ('fge', b, a)),
797 (('ilt', a, ('imax', b, a)), ('ilt', a, b)),
798 (('ilt', ('imin', a, b), a), ('ilt', b, a)),
799 (('ige', a, ('imin', b, a)), True),
800 (('ige', ('imax', a, b), a), True),
801 (('ult', a, ('umax', b, a)), ('ult', a, b)),
802 (('ult', ('umin', a, b), a), ('ult', b, a)),
803 (('uge', a, ('umin', b, a)), True),
804 (('uge', ('umax', a, b), a), True),
805 (('ilt', a, ('imin', b, a)), False),
806 (('ilt', ('imax', a, b), a), False),
807 (('ige', a, ('imax', b, a)), ('ige', a, b)),
808 (('ige', ('imin', a, b), a), ('ige', b, a)),
809 (('ult', a, ('umin', b, a)), False),
810 (('ult', ('umax', a, b), a), False),
811 (('uge', a, ('umax', b, a)), ('uge', a, b)),
812 (('uge', ('umin', a, b), a), ('uge', b, a)),
813 (('ult', a, ('iand', b, a)), False),
814 (('ult', ('ior', a, b), a), False),
815 (('uge', a, ('iand', b, a)), True),
816 (('uge', ('ior', a, b), a), True),
818 (('ilt', '#a', ('imax', '#b', c)), ('ior', ('ilt', a, b), ('ilt', a, c))),
819 (('ilt', ('imin', '#a', b), '#c'), ('ior', ('ilt', a, c), ('ilt', b, c))),
820 (('ige', '#a', ('imin', '#b', c)), ('ior', ('ige', a, b), ('ige', a, c))),
821 (('ige', ('imax', '#a', b), '#c'), ('ior', ('ige', a, c), ('ige', b, c))),
822 (('ult', '#a', ('umax', '#b', c)), ('ior', ('ult', a, b), ('ult', a, c))),
823 (('ult', ('umin', '#a', b), '#c'), ('ior', ('ult', a, c), ('ult', b, c))),
824 (('uge', '#a', ('umin', '#b', c)), ('ior', ('uge', a, b), ('uge', a, c))),
825 (('uge', ('umax', '#a', b), '#c'), ('ior', ('uge', a, c), ('uge', b, c))),
826 (('ilt', '#a', ('imin', '#b', c)), ('iand', ('ilt', a, b), ('ilt', a, c))),
827 (('ilt', ('imax', '#a', b), '#c'), ('iand', ('ilt', a, c), ('ilt', b, c))),
828 (('ige', '#a', ('imax', '#b', c)), ('iand', ('ige', a, b), ('ige', a, c))),
829 (('ige', ('imin', '#a', b), '#c'), ('iand', ('ige', a, c), ('ige', b, c))),
830 (('ult', '#a', ('umin', '#b', c)), ('iand', ('ult', a, b), ('ult', a, c))),
831 (('ult', ('umax', '#a', b), '#c'), ('iand', ('ult', a, c), ('ult', b, c))),
832 (('uge', '#a', ('umax', '#b', c)), ('iand', ('uge', a, b), ('uge', a, c))),
833 (('uge', ('umin', '#a', b), '#c'), ('iand', ('uge', a, c), ('uge', b, c))),
837 (('bcsel', ('ilt', a, 0), ('ineg', ('ishr', a, b)), ('ishr', a, b)),
838 ('iabs', ('ishr', a, b))),
839 (('iabs', ('ishr', ('iabs', a), b)), ('ishr', ('iabs', a), b)),
841 (('fabs', ('slt', a, b)), ('slt', a, b)),
842 (('fabs', ('sge', a, b)), ('sge', a, b)),
843 (('fabs', ('seq', a, b)), ('seq', a, b)),
844 (('fabs', ('sne', a, b)), ('sne', a, b)),
845 (('slt', a, b), ('b2f', ('flt', a, b)), 'options->lower_scmp'),
846 (('sge', a, b), ('b2f', ('fge', a, b)), 'options->lower_scmp'),
847 (('seq', a, b), ('b2f', ('feq', a, b)), 'options->lower_scmp'),
848 (('sne', a, b), ('b2f', ('fneu', a, b)), 'options->lower_scmp'),
849 (('seq', ('seq', a, b), 1.0), ('seq', a, b)),
850 (('seq', ('sne', a, b), 1.0), ('sne', a, b)),
851 (('seq', ('slt', a, b), 1.0), ('slt', a, b)),
852 (('seq', ('sge', a, b), 1.0), ('sge', a, b)),
853 (('sne', ('seq', a, b), 0.0), ('seq', a, b)),
854 (('sne', ('sne', a, b), 0.0), ('sne', a, b)),
855 (('sne', ('slt', a, b), 0.0), ('slt', a, b)),
856 (('sne', ('sge', a, b), 0.0), ('sge', a, b)),
857 (('seq', ('seq', a, b), 0.0), ('sne', a, b)),
858 (('seq', ('sne', a, b), 0.0), ('seq', a, b)),
859 (('seq', ('slt', a, b), 0.0), ('sge', a, b)),
860 (('seq', ('sge', a, b), 0.0), ('slt', a, b)),
861 (('sne', ('seq', a, b), 1.0), ('sne', a, b)),
862 (('sne', ('sne', a, b), 1.0), ('seq', a, b)),
863 (('sne', ('slt', a, b), 1.0), ('sge', a, b)),
864 (('sne', ('sge', a, b), 1.0), ('slt', a, b)),
865 …(('fall_equal2', a, b), ('fmin', ('seq', 'a.x', 'b.x'), ('seq', 'a.y', 'b.y')), 'options->lower_ve…
866 (('fall_equal3', a, b), ('seq', ('fany_nequal3', a, b), 0.0), 'options->lower_vector_cmp'),
867 (('fall_equal4', a, b), ('seq', ('fany_nequal4', a, b), 0.0), 'options->lower_vector_cmp'),
868 …(('fany_nequal2', a, b), ('fmax', ('sne', 'a.x', 'b.x'), ('sne', 'a.y', 'b.y')), 'options->lower_v…
869 …(('fany_nequal3', a, b), ('fsat', ('fdot3', ('sne', a, b), ('sne', a, b))), 'options->lower_vector…
870 …(('fany_nequal4', a, b), ('fsat', ('fdot4', ('sne', a, b), ('sne', a, b))), 'options->lower_vector…
872 …(('ball_iequal2', a, b), ('iand', ('ieq', 'a.x', 'b.x'), ('ieq', 'a.y', 'b.y')), 'options->lower_v…
873 …(('ball_iequal3', a, b), ('iand', ('iand', ('ieq', 'a.x', 'b.x'), ('ieq', 'a.y', 'b.y')), ('ieq', …
874 …(('ball_iequal4', a, b), ('iand', ('iand', ('ieq', 'a.x', 'b.x'), ('ieq', 'a.y', 'b.y')), ('iand',…
876 …(('bany_inequal2', a, b), ('ior', ('ine', 'a.x', 'b.x'), ('ine', 'a.y', 'b.y')), 'options->lower_v…
877 …(('bany_inequal3', a, b), ('ior', ('ior', ('ine', 'a.x', 'b.x'), ('ine', 'a.y', 'b.y')), ('ine', '…
878 …(('bany_inequal4', a, b), ('ior', ('ior', ('ine', 'a.x', 'b.x'), ('ine', 'a.y', 'b.y')), ('ior', (…
880 …(('ball_fequal2', a, b), ('iand', ('feq', 'a.x', 'b.x'), ('feq', 'a.y', 'b.y')), 'options->lower_v…
881 …(('ball_fequal3', a, b), ('iand', ('iand', ('feq', 'a.x', 'b.x'), ('feq', 'a.y', 'b.y')), ('feq', …
882 …(('ball_fequal4', a, b), ('iand', ('iand', ('feq', 'a.x', 'b.x'), ('feq', 'a.y', 'b.y')), ('iand',…
884 …(('bany_fnequal2', a, b), ('ior', ('fneu', 'a.x', 'b.x'), ('fneu', 'a.y', 'b.y')), 'options->lower…
885 …(('bany_fnequal3', a, b), ('ior', ('ior', ('fneu', 'a.x', 'b.x'), ('fneu', 'a.y', 'b.y')), ('fneu'…
886 …(('bany_fnequal4', a, b), ('ior', ('ior', ('fneu', 'a.x', 'b.x'), ('fneu', 'a.y', 'b.y')), ('ior',…
888 (('fneu', ('fneg', a), a), ('fneu', a, 0.0)),
889 (('feq', ('fneg', a), a), ('feq', a, 0.0)),
891 (('imul', ('b2i', 'a@1'), ('b2i', 'b@1')), ('b2i', ('iand', a, b))),
892 (('iand', ('b2i', 'a@1'), ('b2i', 'b@1')), ('b2i', ('iand', a, b))),
893 (('ior', ('b2i', 'a@1'), ('b2i', 'b@1')), ('b2i', ('ior', a, b))),
894 (('fmul', ('b2f', 'a@1'), ('b2f', 'b@1')), ('b2f', ('iand', a, b))),
895 (('fsat', ('fadd', ('b2f', 'a@1'), ('b2f', 'b@1'))), ('b2f', ('ior', a, b))),
896 (('iand', 'a@bool16', 1.0), ('b2f', a)),
897 (('iand', 'a@bool32', 1.0), ('b2f', a)),
898 (('flt', ('fneg', ('b2f', 'a@1')), 0), a), # Generated by TGSI KILL_IF.
902 (('ilt', a, a), False),
903 (('ige', a, a), True),
904 (('ieq', a, a), True),
905 (('ine', a, a), False),
906 (('ult', a, a), False),
907 (('uge', a, a), True),
909 (('iand', a, a), a),
910 (('iand', a, ~0), a),
911 (('iand', a, 0), 0),
912 (('ior', a, a), a),
913 (('ior', a, 0), a),
914 (('ior', a, True), True),
915 (('ixor', a, a), 0),
916 (('ixor', a, 0), a),
917 (('inot', ('inot', a)), a),
918 (('ior', ('iand', a, b), b), b),
919 (('ior', ('ior', a, b), b), ('ior', a, b)),
920 (('iand', ('ior', a, b), b), b),
921 (('iand', ('iand', a, b), b), ('iand', a, b)),
923 (('iand', ('inot', a), ('inot', b)), ('inot', ('ior', a, b))),
924 (('ior', ('inot', a), ('inot', b)), ('inot', ('iand', a, b))),
926 (('ishl', 0, a), 0),
927 (('ishl', a, 0), a),
928 (('ishr', 0, a), 0),
929 (('ishr', a, 0), a),
930 (('ushr', 0, a), 0),
931 (('ushr', a, 0), a),
932 …(('ior', ('ishl@16', a, b), ('ushr@16', a, ('iadd', 16, ('ineg', b)))), ('urol', a, b), '!options-…
933 …(('ior', ('ishl@16', a, b), ('ushr@16', a, ('isub', 16, b))), ('urol', a, b), '!options->lower_rot…
934 …(('ior', ('ishl@32', a, b), ('ushr@32', a, ('iadd', 32, ('ineg', b)))), ('urol', a, b), '!options-…
935 …(('ior', ('ishl@32', a, b), ('ushr@32', a, ('isub', 32, b))), ('urol', a, b), '!options->lower_rot…
936 …(('ior', ('ushr@16', a, b), ('ishl@16', a, ('iadd', 16, ('ineg', b)))), ('uror', a, b), '!options-…
937 …(('ior', ('ushr@16', a, b), ('ishl@16', a, ('isub', 16, b))), ('uror', a, b), '!options->lower_rot…
938 …(('ior', ('ushr@32', a, b), ('ishl@32', a, ('iadd', 32, ('ineg', b)))), ('uror', a, b), '!options-…
939 …(('ior', ('ushr@32', a, b), ('ishl@32', a, ('isub', 32, b))), ('uror', a, b), '!options->lower_rot…
940 …(('urol@16', a, b), ('ior', ('ishl', a, b), ('ushr', a, ('isub', 16, b))), 'options->lower_rotate'…
941 …(('urol@32', a, b), ('ior', ('ishl', a, b), ('ushr', a, ('isub', 32, b))), 'options->lower_rotate'…
942 …(('uror@16', a, b), ('ior', ('ushr', a, b), ('ishl', a, ('isub', 16, b))), 'options->lower_rotate'…
943 …(('uror@32', a, b), ('ior', ('ushr', a, b), ('ishl', a, ('isub', 32, b))), 'options->lower_rotate'…
945 (('~fexp2', ('flog2', a)), a), # 2^lg2(a) = a
946 (('~flog2', ('fexp2', a)), a), # lg2(2^a) = a
947 …(('fpow', a, b), ('fexp2', ('fmul', ('flog2', a), b)), 'options->lower_fpow'), # a^b = 2^(lg2(a)*b)
948 …(('~fexp2', ('fmul', ('flog2', a), b)), ('fpow', a, b), '!options->lower_fpow'), # 2^(lg2(a)*b) = …
949 (('~fexp2', ('fadd', ('fmul', ('flog2', a), b), ('fmul', ('flog2', c), d))),
950 …('~fmul', ('fpow', a, b), ('fpow', c, d)), '!options->lower_fpow'), # 2^(lg2(a) * b + lg2(c) + d) …
951 (('~fexp2', ('fmul', ('flog2', a), 0.5)), ('fsqrt', a)),
952 (('~fexp2', ('fmul', ('flog2', a), 2.0)), ('fmul', a, a)),
953 (('~fexp2', ('fmul', ('flog2', a), 4.0)), ('fmul', ('fmul', a, a), ('fmul', a, a))),
954 (('~fpow', a, 1.0), a),
955 (('~fpow', a, 2.0), ('fmul', a, a)),
956 (('~fpow', a, 4.0), ('fmul', ('fmul', a, a), ('fmul', a, a))),
957 (('~fpow', 2.0, a), ('fexp2', a)),
958 (('~fpow', ('fpow', a, 2.2), 0.454545), a),
959 (('~fpow', ('fabs', ('fpow', a, 2.2)), 0.454545), ('fabs', a)),
960 (('~fsqrt', ('fexp2', a)), ('fexp2', ('fmul', 0.5, a))),
961 (('~frcp', ('fexp2', a)), ('fexp2', ('fneg', a))),
962 (('~frsq', ('fexp2', a)), ('fexp2', ('fmul', -0.5, a))),
963 (('~flog2', ('fsqrt', a)), ('fmul', 0.5, ('flog2', a))),
964 (('~flog2', ('frcp', a)), ('fneg', ('flog2', a))),
965 (('~flog2', ('frsq', a)), ('fmul', -0.5, ('flog2', a))),
966 (('~flog2', ('fpow', a, b)), ('fmul', b, ('flog2', a))),
967 (('~fmul', ('fexp2(is_used_once)', a), ('fexp2(is_used_once)', b)), ('fexp2', ('fadd', a, b))),
968 (('bcsel', ('flt', a, 0.0), 0.0, ('fsqrt', a)), ('fsqrt', ('fmax', a, 0.0))),
969 (('~fmul', ('fsqrt', a), ('fsqrt', a)), ('fabs',a)),
971 (('~fdiv', 1.0, a), ('frcp', a)),
972 (('fdiv', a, b), ('fmul', a, ('frcp', b)), 'options->lower_fdiv'),
973 (('~frcp', ('frcp', a)), a),
974 (('~frcp', ('fsqrt', a)), ('frsq', a)),
975 (('fsqrt', a), ('frcp', ('frsq', a)), 'options->lower_fsqrt'),
976 (('~frcp', ('frsq', a)), ('fsqrt', a), '!options->lower_fsqrt'),
978 (('fsin', a), lowered_sincos(0.5), 'options->lower_sincos'),
979 (('fcos', a), lowered_sincos(0.75), 'options->lower_sincos'),
981 (('i2b16(is_used_by_if)', a), ('ine16', a, 0)),
982 (('i2b32(is_used_by_if)', a), ('ine32', a, 0)),
983 (('i2b1(is_used_by_if)', a), ('ine', a, 0)),
984 (('ieq', a, True), a),
985 (('ine(is_not_used_by_if)', a, True), ('inot', a)),
986 (('ine', a, False), a),
987 (('ieq(is_not_used_by_if)', a, False), ('inot', 'a')),
988 (('bcsel', a, True, False), a),
989 (('bcsel', a, False, True), ('inot', a)),
993 (('bcsel@16', a, 1.0, 0.0), ('b2f', a)),
994 (('bcsel@16', a, 0.0, 1.0), ('b2f', ('inot', a))),
995 (('bcsel@16', a, -1.0, -0.0), ('fneg', ('b2f', a))),
996 (('bcsel@16', a, -0.0, -1.0), ('fneg', ('b2f', ('inot', a)))),
997 (('bcsel@32', a, 1.0, 0.0), ('b2f', a)),
998 (('bcsel@32', a, 0.0, 1.0), ('b2f', ('inot', a))),
999 (('bcsel@32', a, -1.0, -0.0), ('fneg', ('b2f', a))),
1000 (('bcsel@32', a, -0.0, -1.0), ('fneg', ('b2f', ('inot', a)))),
1001 …(('bcsel@64', a, 1.0, 0.0), ('b2f', a), '!(options->lower_doubles_options & nir_lower_fp64_full_so…
1002 …(('bcsel@64', a, 0.0, 1.0), ('b2f', ('inot', a)), '!(options->lower_doubles_options & nir_lower_fp…
1003 …(('bcsel@64', a, -1.0, -0.0), ('fneg', ('b2f', a)), '!(options->lower_doubles_options & nir_lower_…
1004 …(('bcsel@64', a, -0.0, -1.0), ('fneg', ('b2f', ('inot', a))), '!(options->lower_doubles_options & …
1006 (('bcsel', a, b, b), b),
1007 (('~fcsel', a, b, b), b),
1010 (('bcsel', a, -1, 0), ('ineg', ('b2i', 'a@1'))),
1011 (('bcsel', a, 0, -1), ('ineg', ('b2i', ('inot', a)))),
1012 (('bcsel', a, 1, 0), ('b2i', 'a@1')),
1013 (('bcsel', a, 0, 1), ('b2i', ('inot', a))),
1015 ('ineg', ('b2i', ('iand', a, b)))),
1017 ('ineg', ('b2i', ('ior', a, b)))),
1018 (('ieq', ('ineg', ('b2i', 'a@1')), 0), ('inot', a)),
1019 (('ieq', ('ineg', ('b2i', 'a@1')), -1), a),
1020 (('ine', ('ineg', ('b2i', 'a@1')), 0), a),
1021 (('ine', ('ineg', ('b2i', 'a@1')), -1), ('inot', a)),
1022 (('iand', ('ineg', ('b2i', a)), 1.0), ('b2f', a)),
1023 (('iand', ('ineg', ('b2i', a)), 1), ('b2i', a)),
1026 (('i2b16', ('b2i', 'a@16')), a),
1027 (('i2b32', ('b2i', 'a@32')), a),
1028 (('f2i', ('ftrunc', a)), ('f2i', a)),
1029 (('f2u', ('ftrunc', a)), ('f2u', a)),
1030 (('i2b', ('ineg', a)), ('i2b', a)),
1031 (('i2b', ('iabs', a)), ('i2b', a)),
1032 (('inot', ('f2b1', a)), ('feq', a, 0.0)),
1035 (('f2fmp', ('f2f32', 'a@16')), a),
1036 (('i2imp', ('i2i32', 'a@16')), a),
1037 (('i2imp', ('u2u32', 'a@16')), a),
1039 (('f2imp', ('f2f32', 'a@16')), ('f2i16', a)),
1040 (('f2ump', ('f2f32', 'a@16')), ('f2u16', a)),
1041 (('i2fmp', ('i2i32', 'a@16')), ('i2f16', a)),
1042 (('u2fmp', ('u2u32', 'a@16')), ('u2f16', a)),
1044 (('f2fmp', ('b2f32', 'a@1')), ('b2f16', a)),
1045 (('i2imp', ('b2i32', 'a@1')), ('b2i16', a)),
1046 (('i2imp', ('b2i32', 'a@1')), ('b2i16', a)),
1048 (('f2imp', ('b2f32', 'a@1')), ('b2i16', a)),
1049 (('f2ump', ('b2f32', 'a@1')), ('b2i16', a)),
1050 (('i2fmp', ('b2i32', 'a@1')), ('b2f16', a)),
1051 (('u2fmp', ('b2i32', 'a@1')), ('b2f16', a)),
1055 (('f2f32', ('f2fmp', 'a@32')), a),
1056 (('i2i32', ('i2imp', 'a@32')), a),
1057 (('u2u32', ('i2imp', 'a@32')), a),
1059 (('i2i32', ('f2imp', 'a@32')), ('f2i32', a)),
1060 (('u2u32', ('f2ump', 'a@32')), ('f2u32', a)),
1061 (('f2f32', ('i2fmp', 'a@32')), ('i2f32', a)),
1062 (('f2f32', ('u2fmp', 'a@32')), ('u2f32', a)),
1064 (('ffloor', 'a(is_integral)'), a),
1065 (('fceil', 'a(is_integral)'), a),
1066 (('ftrunc', 'a(is_integral)'), a),
1069 (('fabs', 'a(is_not_negative)'), a),
1070 (('iabs', 'a(is_not_negative)'), a),
1081 (('ige', ('f2u', a), b), ('ige', ('f2i', a), b)),
1082 (('ige', b, ('f2u', a)), ('ige', b, ('f2i', a))),
1083 (('ilt', ('f2u', a), b), ('ilt', ('f2i', a), b)),
1084 (('ilt', b, ('f2u', a)), ('ilt', b, ('f2i', a))),
1086 (('~fmin', 'a(is_not_negative)', 1.0), ('fsat', a), '!options->lower_fsat'),
1090 (('flt', ('fadd', ('fmul', ('fsat', a), ('fneg', ('fsat', a))), 1.0), 0.0), False),
1091 (('flt', ('fadd', ('fneg', ('fmul', ('fsat', a), ('fsat', a))), 1.0), 0.0), False),
1092 …x', ('fadd', ('fmul', ('fsat', a), ('fneg', ('fsat', a))), 1.0), 0.0), ('fadd', ('fmul', ('fsat', …
1093 …('fadd', ('fneg', ('fmul', ('fsat', a), ('fsat', a))), 1.0), 0.0), ('fadd', ('fneg', ('fmul', ('fs…
1135 (('ult', a, 0), False),
1138 (('unpack_64_2x32_split_x', ('pack_64_2x32_split', a, b)), a),
1139 (('unpack_64_2x32_split_y', ('pack_64_2x32_split', a, b)), b),
1140 (('unpack_64_2x32', ('pack_64_2x32_split', a, b)), ('vec2', a, b)),
1141 (('unpack_64_2x32', ('pack_64_2x32', a)), a),
1142 (('pack_64_2x32_split', ('unpack_64_2x32_split_x', a),
1143 ('unpack_64_2x32_split_y', a)), a),
1144 (('pack_64_2x32', ('vec2', ('unpack_64_2x32_split_x', a),
1145 ('unpack_64_2x32_split_y', a))), a),
1146 (('pack_64_2x32', ('unpack_64_2x32', a)), a),
1152 (('iand', ('ieq', ('unpack_32_2x16_split_x', a), '#b'),
1153 ('ieq', ('unpack_32_2x16_split_y', a), '#c')),
1154 ('ieq', a, ('pack_32_2x16_split', b, c))),
1157 (('ushr', 'a@16', 8), ('extract_u8', a, 1), '!options->lower_extract_byte'),
1158 (('ushr', 'a@32', 24), ('extract_u8', a, 3), '!options->lower_extract_byte'),
1159 (('ushr', 'a@64', 56), ('extract_u8', a, 7), '!options->lower_extract_byte'),
1160 (('ishr', 'a@16', 8), ('extract_i8', a, 1), '!options->lower_extract_byte'),
1161 (('ishr', 'a@32', 24), ('extract_i8', a, 3), '!options->lower_extract_byte'),
1162 (('ishr', 'a@64', 56), ('extract_i8', a, 7), '!options->lower_extract_byte'),
1163 (('iand', 0xff, a), ('extract_u8', a, 0), '!options->lower_extract_byte'),
1165 (('ubfe', a, 0, 8), ('extract_u8', a, 0), '!options->lower_extract_byte'),
1166 (('ubfe', a, 8, 8), ('extract_u8', a, 1), '!options->lower_extract_byte'),
1167 (('ubfe', a, 16, 8), ('extract_u8', a, 2), '!options->lower_extract_byte'),
1168 (('ubfe', a, 24, 8), ('extract_u8', a, 3), '!options->lower_extract_byte'),
1169 (('ibfe', a, 0, 8), ('extract_i8', a, 0), '!options->lower_extract_byte'),
1170 (('ibfe', a, 8, 8), ('extract_i8', a, 1), '!options->lower_extract_byte'),
1171 (('ibfe', a, 16, 8), ('extract_i8', a, 2), '!options->lower_extract_byte'),
1172 (('ibfe', a, 24, 8), ('extract_i8', a, 3), '!options->lower_extract_byte'),
1175 (('ushr', ('ishl', 'a@32', 16), 16), ('extract_u16', a, 0), '!options->lower_extract_word'),
1176 (('ushr', 'a@32', 16), ('extract_u16', a, 1), '!options->lower_extract_word'),
1177 (('ishr', ('ishl', 'a@32', 16), 16), ('extract_i16', a, 0), '!options->lower_extract_word'),
1178 (('ishr', 'a@32', 16), ('extract_i16', a, 1), '!options->lower_extract_word'),
1179 (('iand', 0xffff, a), ('extract_u16', a, 0), '!options->lower_extract_word'),
1181 (('ubfe', a, 0, 16), ('extract_u16', a, 0), '!options->lower_extract_word'),
1182 (('ubfe', a, 16, 16), ('extract_u16', a, 1), '!options->lower_extract_word'),
1183 (('ibfe', a, 0, 16), ('extract_i16', a, 0), '!options->lower_extract_word'),
1184 (('ibfe', a, 16, 16), ('extract_i16', a, 1), '!options->lower_extract_word'),
1187 …(('pack_64_2x32_split', a, b), ('ior', ('u2u64', a), ('ishl', ('u2u64', b), 32)), 'options->lower_…
1188 …(('pack_32_2x16_split', a, b), ('ior', ('u2u32', a), ('ishl', ('u2u32', b), 16)), 'options->lower_…
1189 (('unpack_64_2x32_split_x', a), ('u2u32', a), 'options->lower_unpack_64_2x32_split'),
1190 …(('unpack_64_2x32_split_y', a), ('u2u32', ('ushr', a, 32)), 'options->lower_unpack_64_2x32_split'),
1191 (('unpack_32_2x16_split_x', a), ('u2u16', a), 'options->lower_unpack_32_2x16_split'),
1192 …(('unpack_32_2x16_split_y', a), ('u2u16', ('ushr', a, 16)), 'options->lower_unpack_32_2x16_split'),
1195 (('unpack_half_2x16_split_x', ('iand', a, 0xffff)), ('unpack_half_2x16_split_x', a)),
1196 (('unpack_32_2x16_split_x', ('iand', a, 0xffff)), ('unpack_32_2x16_split_x', a)),
1197 (('unpack_64_2x32_split_x', ('iand', a, 0xffffffff)), ('unpack_64_2x32_split_x', a)),
1198 (('unpack_half_2x16_split_y', ('iand', a, 0xffff0000)), ('unpack_half_2x16_split_y', a)),
1199 (('unpack_32_2x16_split_y', ('iand', a, 0xffff0000)), ('unpack_32_2x16_split_y', a)),
1200 (('unpack_64_2x32_split_y', ('iand', a, 0xffffffff00000000)), ('unpack_64_2x32_split_y', a)),
1202 (('unpack_half_2x16_split_x', ('extract_u16', a, 0)), ('unpack_half_2x16_split_x', a)),
1203 (('unpack_half_2x16_split_x', ('extract_u16', a, 1)), ('unpack_half_2x16_split_y', a)),
1204 (('unpack_half_2x16_split_x', ('ushr', a, 16)), ('unpack_half_2x16_split_y', a)),
1205 (('unpack_32_2x16_split_x', ('extract_u16', a, 0)), ('unpack_32_2x16_split_x', a)),
1206 (('unpack_32_2x16_split_x', ('extract_u16', a, 1)), ('unpack_32_2x16_split_y', a)),
1209 (('ishl', ('pack_half_2x16', ('vec2', a, 0)), 16), ('pack_half_2x16', ('vec2', 0, a))),
1210 (('ushr', ('pack_half_2x16', ('vec2', 0, a)), 16), ('pack_half_2x16', ('vec2', a, 0))),
1212 (('iadd', ('pack_half_2x16', ('vec2', a, 0)), ('pack_half_2x16', ('vec2', 0, b))),
1213 ('pack_half_2x16', ('vec2', a, b))),
1214 (('ior', ('pack_half_2x16', ('vec2', a, 0)), ('pack_half_2x16', ('vec2', 0, b))),
1215 ('pack_half_2x16', ('vec2', a, b))),
1217 (('ishl', ('pack_half_2x16_split', a, 0), 16), ('pack_half_2x16_split', 0, a)),
1218 (('ushr', ('pack_half_2x16_split', 0, a), 16), ('pack_half_2x16_split', a, 0)),
1219 (('extract_u16', ('pack_half_2x16_split', 0, a), 1), ('pack_half_2x16_split', a, 0)),
1221 …(('iadd', ('pack_half_2x16_split', a, 0), ('pack_half_2x16_split', 0, b)), ('pack_half_2x16_split'…
1222 …(('ior', ('pack_half_2x16_split', a, 0), ('pack_half_2x16_split', 0, b)), ('pack_half_2x16_split'…
1228 optimizations.extend([(('extract_u8', (op, 'a@16', 8), 0), ('extract_u8', a, 1))])
1229 …optimizations.extend([(('extract_u8', (op, 'a@32', 8 * i), 0), ('extract_u8', a, i)) for i in ran…
1230 …optimizations.extend([(('extract_u8', (op, 'a@64', 8 * i), 0), ('extract_u8', a, i)) for i in ran…
1232 optimizations.extend([(('extract_u8', ('extract_u16', a, 1), 0), ('extract_u8', a, 2))])
1237 optimizations.extend([((op, ('ishl', 'a@16', 8), 1), (op, a, 0))])
1238 …optimizations.extend([((op, ('ishl', 'a@32', 24 - 8 * i), 3), (op, a, i)) for i in range(2, -1, -1…
1239 …optimizations.extend([((op, ('ishl', 'a@64', 56 - 8 * i), 7), (op, a, i)) for i in range(6, -1, -1…
1243 (('ussub_4x8', a, 0), a),
1244 (('ussub_4x8', a, ~0), 0),
1246 (('fsub', a, b), ('fadd', a, ('fneg', b))),
1247 (('isub', a, b), ('iadd', a, ('ineg', b))),
1248 (('uabs_usub', a, b), ('bcsel', ('ult', a, b), ('ineg', ('isub', a, b)), ('isub', a, b))),
1250 (('uabs_isub', a, b), ('bcsel', ('ilt', a, b), ('ineg', ('isub', a, b)), ('isub', a, b))),
1253 (('fmul(is_used_by_non_fsat)', ('fneg', a), b), ('fneg', ('fmul', a, b))),
1254 (('imul', ('ineg', a), b), ('ineg', ('imul', a, b))),
1257 … ('fmul(is_used_once)', 'a(is_not_const)', 'b(is_not_const)'), '#c'), ('fmul', ('fmul', a, c), b)),
1258 … ('imul(is_used_once)', 'a(is_not_const)', 'b(is_not_const)'), '#c'), ('imul', ('imul', a, c), b)),
1260 …ce)', ('fadd(is_used_once)', 'a(is_not_const)', 'b(is_fmul)'), '#c'), ('fadd', ('fadd', a, c), b)),
1261 … ('fadd(is_used_once)', 'a(is_not_const)', 'b(is_not_const)'), '#c'), ('fadd', ('fadd', a, c), b)),
1262 … ('iadd(is_used_once)', 'a(is_not_const)', 'b(is_not_const)'), '#c'), ('iadd', ('iadd', a, c), b)),
1267 (('~fmul', '#a', ('fmul', 'b(is_not_const)', '#c')), ('fmul', ('fmul', a, c), b)),
1268 (('imul', '#a', ('imul', 'b(is_not_const)', '#c')), ('imul', ('imul', a, c), b)),
1269 …(('~fadd', '#a', ('fadd', 'b(is_not_const)', '#c')), ('fadd', ('fadd', a, c), …
1270 …(('~fadd', '#a', ('fneg', ('fadd', 'b(is_not_const)', '#c'))), ('fadd', ('fadd', a, ('fneg', c)), …
1271 (('iadd', '#a', ('iadd', 'b(is_not_const)', '#c')), ('iadd', ('iadd', a, c), b)),
1272 (('iand', '#a', ('iand', 'b(is_not_const)', '#c')), ('iand', ('iand', a, c), b)),
1273 (('ior', '#a', ('ior', 'b(is_not_const)', '#c')), ('ior', ('ior', a, c), b)),
1274 (('ixor', '#a', ('ixor', 'b(is_not_const)', '#c')), ('ixor', ('ixor', a, c), b)),
1277 (('idiv', ('imul(no_signed_wrap)', a, b), b), a),
1280 (('bcsel', ('ige', ('find_lsb', a), 0), ('find_lsb', a), -1), ('find_lsb', a)),
1281 (('bcsel', ('ige', ('ifind_msb', a), 0), ('ifind_msb', a), -1), ('ifind_msb', a)),
1282 (('bcsel', ('ige', ('ufind_msb', a), 0), ('ufind_msb', a), -1), ('ufind_msb', a)),
1284 (('bcsel', ('ine', a, 0), ('find_lsb', a), -1), ('find_lsb', a)),
1285 (('bcsel', ('ine', a, 0), ('ifind_msb', a), -1), ('ifind_msb', a)),
1286 (('bcsel', ('ine', a, 0), ('ufind_msb', a), -1), ('ufind_msb', a)),
1288 (('bcsel', ('ine', a, -1), ('ifind_msb', a), -1), ('ifind_msb', a)),
1292 (('~bcsel', ('flt', a, 0.0), ('fneg', a), a), ('fabs', a)),
1294 (('bcsel', a, ('bcsel', b, c, d), d), ('bcsel', ('iand', a, b), c, d)),
1295 (('bcsel', a, b, ('bcsel', c, b, d)), ('bcsel', ('ior', a, c), b, d)),
1298 (('fmod', a, b), ('fsub', a, ('fmul', b, ('ffloor', ('fdiv', a, b)))), 'options->lower_fmod'),
1299 (('frem', a, b), ('fsub', a, ('fmul', b, ('ftrunc', ('fdiv', a, b)))), 'options->lower_fmod'),
1300 (('uadd_carry', a, b), ('b2i', ('ult', ('iadd', a, b), a)), 'options->lower_uadd_carry'),
1301 (('usub_borrow@32', a, b), ('b2i', ('ult', a, b)), 'options->lower_usub_borrow'),
1307 (('ihadd', a, b), ('iadd', ('iand', a, b), ('ishr', ('ixor', a, b), 1)), 'options->lower_hadd'),
1308 (('uhadd', a, b), ('iadd', ('iand', a, b), ('ushr', ('ixor', a, b), 1)), 'options->lower_hadd'),
1309 (('irhadd', a, b), ('isub', ('ior', a, b), ('ishr', ('ixor', a, b), 1)), 'options->lower_hadd'),
1310 (('urhadd', a, b), ('isub', ('ior', a, b), ('ushr', ('ixor', a, b), 1)), 'options->lower_hadd'),
1311 …(('ihadd@64', a, b), ('iadd', ('iand', a, b), ('ishr', ('ixor', a, b), 1)), 'options->lower_hadd64…
1312 …(('uhadd@64', a, b), ('iadd', ('iand', a, b), ('ushr', ('ixor', a, b), 1)), 'options->lower_hadd64…
1313 …(('irhadd@64', a, b), ('isub', ('ior', a, b), ('ishr', ('ixor', a, b), 1)), 'options->lower_hadd64…
1314 …(('urhadd@64', a, b), ('isub', ('ior', a, b), ('ushr', ('ixor', a, b), 1)), 'options->lower_hadd64…
1316 …(('uadd_sat@64', a, b), ('bcsel', ('ult', ('iadd', a, b), a), -1, ('iadd', a, b)), 'options->lower…
1317 …(('uadd_sat', a, b), ('bcsel', ('ult', ('iadd', a, b), a), -1, ('iadd', a, b)), 'options->lower_ad…
1318 (('usub_sat', a, b), ('bcsel', ('ult', a, b), 0, ('isub', a, b)), 'options->lower_add_sat'),
1319 …(('usub_sat@64', a, b), ('bcsel', ('ult', a, b), 0, ('isub', a, b)), 'options->lower_usub_sat64 ||…
1344 (('iadd_sat@64', a, b), ('bcsel',
1345 … ('iand', ('iand', ('ilt', a, 0), ('ilt', b, 0)), ('ige', ('iadd', a, b), 0)),
1348 … ('ior', ('ior', ('ilt', a, 0), ('ilt', b, 0)), ('ige', ('iadd', a, b), 0)),
1349 ('iadd', a, b),
1362 (('isub_sat@64', a, b), ('bcsel',
1363 … ('iand', ('iand', ('ilt', a, 0), ('ige', b, 0)), ('ige', ('isub', a, b), 0)),
1366 … ('ior', ('ior', ('ilt', a, 0), ('ige', b, 0)), ('ige', ('isub', a, b), 0)),
1367 ('isub', a, b),
1377 …ed_once)', 'a@64', 'b@64'), 0), ('ilt', ('imax', ('unpack_64_2x32_split_y', a), ('unpack_64_2x32_s…
1378 …ed_once)', 'a@64', 'b@64'), 0), ('ilt', ('imin', ('unpack_64_2x32_split_y', a), ('unpack_64_2x32_s…
1379 …ed_once)', 'a@64', 'b@64'), 0), ('ige', ('imax', ('unpack_64_2x32_split_y', a), ('unpack_64_2x32_s…
1380 …ed_once)', 'a@64', 'b@64'), 0), ('ige', ('imin', ('unpack_64_2x32_split_y', a), ('unpack_64_2x32_s…
1381 …(('ilt', 'a@64', 0), ('ilt', ('unpack_64_2x32_split_y', a), 0), '(options->lower_int64_options & n…
1382 …(('ige', 'a@64', 0), ('ige', ('unpack_64_2x32_split_y', a), 0), '(options->lower_int64_options & n…
1384 …(('ine', 'a@64', 0), ('ine', ('ior', ('unpack_64_2x32_split_x', a), ('unpack_64_2x32_split_y', a))…
1385 …(('ieq', 'a@64', 0), ('ieq', ('ior', ('unpack_64_2x32_split_x', a), ('unpack_64_2x32_split_y', a))…
1387 …(('ult', 0, 'a@64'), ('ine', ('ior', ('unpack_64_2x32_split_x', a), ('unpack_64_2x32_split_y', a))…
1415 (('bitfield_select', a, b, 0), ('iand', a, b)),
1431 (('ubfe', a, b, 0), 0),
1432 (('ibfe', a, b, 0), 0),
1434 (('ubfe', a, 0, '#b'), ('iand', a, ('ushr', 0xffffffff, ('ineg', b)))),
1436 (('b2i32', ('i2b', ('ubfe', a, b, 1))), ('ubfe', a, b, 1)),
1437 (('b2i32', ('i2b', ('ibfe', a, b, 1))), ('ubfe', a, b, 1)), # ubfe in the replacement is correct
1438 …(('ine', ('ibfe(is_used_once)', a, '#b', '#c'), 0), ('ine', ('iand', a, ('ishl', ('ushr', 0xffffff…
1439 …(('ieq', ('ibfe(is_used_once)', a, '#b', '#c'), 0), ('ieq', ('iand', a, ('ishl', ('ushr', 0xffffff…
1440 …(('ine', ('ubfe(is_used_once)', a, '#b', '#c'), 0), ('ine', ('iand', a, ('ishl', ('ushr', 0xffffff…
1441 …(('ieq', ('ubfe(is_used_once)', a, '#b', '#c'), 0), ('ieq', ('iand', a, ('ishl', ('ushr', 0xffffff…
1467 (('extract_i8', a, 'b@32'),
1468 ('ishr', ('ishl', a, ('imul', ('isub', 3, b), 8)), 24),
1471 (('extract_u8', a, 'b@32'),
1472 ('iand', ('ushr', a, ('imul', b, 8)), 0xff),
1475 (('extract_i16', a, 'b@32'),
1476 ('ishr', ('ishl', a, ('imul', ('isub', 1, b), 16)), 16),
1479 (('extract_u16', a, 'b@32'),
1480 ('iand', ('ushr', a, ('imul', b, 16)), 0xffff),
1532 ('ior', ('ishl', ('u2u32', ('f2f16', b)), 16), ('u2u32', ('f2f16', a))),
1536 ('f2f32', ('u2u16', a)),
1540 ('f2f32', ('u2u16', ('ushr', a, 16))),
1544 ('ior', ('ishl', ('u2u32', b), 16), ('u2u32', a)),
1548 ('u2u16', a),
1555 (('isign', a), ('imin', ('imax', a, -1), 1), 'options->lower_isign'),
1556 (('imin', ('imax', a, -1), 1), ('isign', a), '!options->lower_isign'),
1557 (('imax', ('imin', a, 1), -1), ('isign', a), '!options->lower_isign'),
1558 …(('fsign', a), ('fsub', ('b2f', ('flt', 0.0, a)), ('b2f', ('flt', a, 0.0))), 'options->lower_fsign…
1563 (('amul', a, b), ('imul', a, b), '!options->has_imul24'),
1565 (('umul24', a, b),
1566 ('imul', ('iand', a, 0xffffff), ('iand', b, 0xffffff)),
1568 (('umad24', a, b, c),
1569 ('iadd', ('imul', ('iand', a, 0xffffff), ('iand', b, 0xffffff)), c),
1572 (('imad24_ir3', a, b, 0), ('imul24', a, b)),
1573 (('imad24_ir3', a, 0, c), (c)),
1574 (('imad24_ir3', a, 1, c), ('iadd', a, c)),
1579 (('imad24_ir3', '#a', '#b', c), ('iadd', ('imul', a, b), c)),
1584 …(('imul24', a, '#b@32(is_pos_power_of_two)'), ('ishl', a, ('find_lsb', b)), '!options->lower_bitop…
1585 …(('imul24', a, '#b@32(is_neg_power_of_two)'), ('ineg', ('ishl', a, ('find_lsb', ('iabs', b)))), '!…
1586 (('imul24', a, 0), (0)),
1596 (('iadd_sat@' + str(bit_size), a, b),
1597 ('bcsel', ('ige', b, 1), ('bcsel', ('ilt', ('iadd', a, b), a), intmax, ('iadd', a, b)),
1598 … ('bcsel', ('ilt', a, ('iadd', a, b)), intmin, ('iadd', a, b))), 'options->lower_add_sat'),
1599 (('isub_sat@' + str(bit_size), a, b),
1600 ('bcsel', ('ilt', b, 0), ('bcsel', ('ilt', ('isub', a, b), a), intmax, ('isub', a, b)),
1601 … ('bcsel', ('ilt', a, ('isub', a, b)), intmin, ('isub', a, b))), 'options->lower_add_sat'),
1607 optimizations.append((('inot', ('ior(is_used_once)', (left, a, b), (right, c, d))),
1608 ('iand', (invert[left], a, b), (invert[right], c, d))))
1609 optimizations.append((('inot', ('iand(is_used_once)', (left, a, b), (right, c, d))),
1610 ('ior', (invert[left], a, b), (invert[right], c, d))))
1617 optimizations.append(((f2bN, ('b2f', aN)), a))
1618 optimizations.append(((i2bN, ('b2i', aN)), a))
1628 optimizations.append(((x2yN, (b2x, a)), (b2y, a)))
1635 optimizations.append(((x2xN, aN), a))
1650 optimizations.append(((x2xN, (y2yM, a)), (y2yN, a)))
1667 optimizations.append(((x2xN, (x2xM, aP)), (x2xN, a)))
1677 ((x2xN, ('pack_64_2x32_split', a, b)), (x2xN, a)),
1678 ((x2xN, ('pack_64_2x32_split', a, b)), (x2xN, a)),
1711 ((xeq, (x2xM, aN), (x2xM, bP)), (xeq, a, (x2xN, b)), cond),
1712 ((xne, (x2xM, aN), (x2xM, bP)), (xne, a, (x2xN, b)), cond),
1713 ((xge, (x2xM, aN), (x2xM, bP)), (xge, a, (x2xN, b)), cond),
1714 ((xlt, (x2xM, aN), (x2xM, bP)), (xlt, a, (x2xN, b)), cond),
1715 ((xge, (x2xM, bP), (x2xM, aN)), (xge, (x2xN, b), a), cond),
1716 ((xlt, (x2xM, bP), (x2xM, aN)), (xlt, (x2xN, b), a), cond),
1736 ('iand', (xeq, a, (x2xN, b)), (xeq, (x2xM, (x2xN, b)), b)), cond),
1738 ('ior', (xne, a, (x2xN, b)), (xne, (x2xM, (x2xN, b)), b)), cond),
1741 ('ior', (xlt, xN_max, b), (xlt, a, (x2xN, b)))), cond),
1743 ('iand', (xlt, a, xN_max),
1744 ('ior', (xlt, a, xN_min), (xlt, (x2xN, a), b))), cond),
1747 ('ior', (xge, xN_min, b), (xge, a, (x2xN, b)))), cond),
1749 ('iand', (xge, a, xN_min),
1750 ('ior', (xge, a, xN_max), (xge, (x2xN, a), b))), cond),
1755 (('i2i32', ('iand', 'a@64', 0xffffffff)), ('u2u32', a)),
1756 (('i2i16', ('iand', 'a@32', 0xffff)), ('u2u16', a)),
1757 (('i2i16', ('iand', 'a@64', 0xffff)), ('u2u16', a)),
1758 (('i2i8', ('iand', 'a@16', 0xff)), ('u2u8', a)),
1759 (('i2i8', ('iand', 'a@32', 0xff)), ('u2u8', a)),
1760 (('i2i8', ('iand', 'a@64', 0xff)), ('u2u8', a)),
1855 (('ball_iequal' + str(ncomp), ('ieq', a, b), ~0), ('ball_iequal' + str(ncomp), a, b)),
1856 (('ball_iequal' + str(ncomp), ('feq', a, b), ~0), ('ball_fequal' + str(ncomp), a, b)),
1857 (('bany_inequal' + str(ncomp), ('ine', a, b), 0), ('bany_inequal' + str(ncomp), a, b)),
1858 (('bany_inequal' + str(ncomp), ('fneu', a, b), 0), ('bany_fnequal' + str(ncomp), a, b)),
1866 (('iand', ('feq', a, a), (op, a, b)), ('!' + op, a, b)),
1867 (('iand', ('feq', a, a), (op, b, a)), ('!' + op, b, a)),
1887 ((op, '#d', ('bcsel', a, '#b', '#c')),
1903 ((op, ('bcsel(is_used_once)', a, '#b', c), '#d'), ('bcsel', a, (op, b, d), (op, c, d)))
1935 … (('bcsel', a, (op + '(is_used_once)', b, c, d), (op, b, c, e)), (op, b, c, ('bcsel', a, d, e))),
1936 … (('bcsel', a, (op, b, c, d), (op + '(is_used_once)', b, c, e)), (op, b, c, ('bcsel', a, d, e))),
1937 … (('bcsel', a, (op + '(is_used_once)', b, c, d), (op, b, e, d)), (op, b, ('bcsel', a, c, e), d)),
1938 … (('bcsel', a, (op, b, c, d), (op + '(is_used_once)', b, e, d)), (op, b, ('bcsel', a, c, e), d)),
1939 … (('bcsel', a, (op + '(is_used_once)', b, c, d), (op, e, c, d)), (op, ('bcsel', a, b, e), c, d)),
1940 … (('bcsel', a, (op, b, c, d), (op + '(is_used_once)', e, c, d)), (op, ('bcsel', a, b, e), c, d)),
1945 …(('bcsel', a, (op + '(is_used_once)', b, c), (op, b, 'd(is_not_const)')), (op, b, ('bcsel', a, c, …
1946 …(('bcsel', a, (op + '(is_used_once)', b, 'c(is_not_const)'), (op, b, d)), (op, b, ('bcsel', a, c, …
1947 …(('bcsel', a, (op, b, 'c(is_not_const)'), (op + '(is_used_once)', b, d)), (op, b, ('bcsel', a, c, …
1948 …(('bcsel', a, (op, b, c), (op + '(is_used_once)', b, 'd(is_not_const)')), (op, b, ('bcsel', a, c, …
1953 (('bcsel', a, (op + '(is_used_once)', b, c), (op, b, d)), (op, b, ('bcsel', a, c, d))),
1954 (('bcsel', a, (op, b, c), (op + '(is_used_once)', b, d)), (op, b, ('bcsel', a, c, d))),
1955 (('bcsel', a, (op + '(is_used_once)', b, c), (op, d, c)), (op, ('bcsel', a, b, d), c)),
1956 (('bcsel', a, (op, b, c), (op + '(is_used_once)', d, c)), (op, ('bcsel', a, b, d), c)),
1961 … (('bcsel', c, (op + '(is_used_once)', a), (op + '(is_used_once)', b)), (op, ('bcsel', c, a, b))),
1966 ((op, ('bcsel', c, '#a', '#b')), ('bcsel', c, (op, a), (op, b))),
2015 … ('fmul(is_used_once)', 'a(is_not_const)', '#b'), 'c(is_not_const)'), ('fmul', ('fmul', a, c), b)),
2016 … ('imul(is_used_once)', 'a(is_not_const)', '#b'), 'c(is_not_const)'), ('imul', ('imul', a, c), b)),
2017 … ('fadd(is_used_once)', 'a(is_not_const)', '#b'), 'c(is_not_const)'), ('fadd', ('fadd', a, c), b)),
2018 … ('iadd(is_used_once)', 'a(is_not_const)', '#b'), 'c(is_not_const)'), ('iadd', ('iadd', a, c), b)),
2020 (('~fadd', ('fmul', a, b), ('fmul', a, c)), ('fmul', a, ('fadd', b, c))),
2021 (('iadd', ('imul', a, b), ('imul', a, c)), ('imul', a, ('iadd', b, c))),
2022 (('~fadd', ('fneg', a), a), 0.0),
2023 (('iadd', ('ineg', a), a), 0),
2024 (('iadd', ('ineg', a), ('iadd', a, b)), b),
2025 (('iadd', a, ('iadd', ('ineg', a), b)), b),
2026 (('~fadd', ('fneg', a), ('fadd', a, b)), b),
2027 (('~fadd', a, ('fadd', ('fneg', a), b)), b),
2029 …(('~flrp', ('fadd(is_used_once)', a, -1.0), ('fadd(is_used_once)', a, 1.0), d), ('fadd', ('flrp',…
2030 …(('~flrp', ('fadd(is_used_once)', a, 1.0), ('fadd(is_used_once)', a, -1.0), d), ('fadd', ('flrp',…
2031 … ('fadd(is_used_once)', a, '#b'), ('fadd(is_used_once)', a, '#c'), d), ('fadd', ('fmul', d, ('fadd…
2041 (('flt', ('fadd', a, b), 0.0), ('flt', a, ('fneg', b))),
2042 (('flt', ('fneg', ('fadd', a, b)), 0.0), ('flt', ('fneg', a), b)),
2043 (('~fge', ('fadd', a, b), 0.0), ('fge', a, ('fneg', b))),
2044 (('~fge', ('fneg', ('fadd', a, b)), 0.0), ('fge', ('fneg', a), b)),
2045 (('~feq', ('fadd', a, b), 0.0), ('feq', a, ('fneg', b))),
2046 (('~fneu', ('fadd', a, b), 0.0), ('fneu', a, ('fneg', b))),
2050 (('fneg', ('fneg', a)), a),
2055 (('fneg', a), ('fsub', 0.0, a), 'options->lower_negate'),
2056 (('ineg', a), ('isub', 0, a), 'options->lower_negate'),
2057 (('iabs', a), ('imax', a, ('ineg', a)), 'options->lower_iabs'),
2058 (('~fadd@16', ('fmul', a, b), c), ('ffma', a, b, c), 'options->fuse_ffma16'),
2059 (('~fadd@32', ('fmul', a, b), c), ('ffma', a, b, c), 'options->fuse_ffma32'),
2060 (('~fadd@64', ('fmul', a, b), c), ('ffma', a, b, c), 'options->fuse_ffma64'),
2067 (('flt', ('fsat(is_used_once)', a), '#b(is_gt_0_and_lt_1)'), ('flt', a, b)),
2068 (('flt', '#b(is_gt_0_and_lt_1)', ('fsat(is_used_once)', a)), ('flt', b, a)),
2069 (('fge', ('fsat(is_used_once)', a), '#b(is_gt_0_and_lt_1)'), ('fge', a, b)),
2070 (('fge', '#b(is_gt_0_and_lt_1)', ('fsat(is_used_once)', a)), ('fge', b, a)),
2071 (('feq', ('fsat(is_used_once)', a), '#b(is_gt_0_and_lt_1)'), ('feq', a, b)),
2072 (('fneu', ('fsat(is_used_once)', a), '#b(is_gt_0_and_lt_1)'), ('fneu', a, b)),
2074 (('fge', ('fsat(is_used_once)', a), 1.0), ('fge', a, 1.0)),
2077 (('~flt', ('fsat(is_used_once)', a), 1.0), ('flt', a, 1.0)),
2079 …fge', ('fmin(is_used_once)', ('fadd(is_used_once)', a, b), ('fadd', c, d)), 0.0), ('iand', ('fge',…
2081 (('flt', ('fneg', a), ('fneg', b)), ('flt', b, a)),
2082 (('fge', ('fneg', a), ('fneg', b)), ('fge', b, a)),
2083 (('feq', ('fneg', a), ('fneg', b)), ('feq', b, a)),
2084 (('fneu', ('fneg', a), ('fneg', b)), ('fneu', b, a)),
2085 (('flt', ('fneg', a), -1.0), ('flt', 1.0, a)),
2086 (('flt', -1.0, ('fneg', a)), ('flt', a, 1.0)),
2087 (('fge', ('fneg', a), -1.0), ('fge', 1.0, a)),
2088 (('fge', -1.0, ('fneg', a)), ('fge', a, 1.0)),
2089 (('fneu', ('fneg', a), -1.0), ('fneu', 1.0, a)),
2090 (('feq', -1.0, ('fneg', a)), ('feq', a, 1.0)),
2092 (('ior', a, a), a),
2093 (('iand', a, a), a),
2095 …sed_once)', ('fsat(is_used_once)', 'a(is_not_fmul)')), 1.0), ('fsat', ('fadd', 1.0, ('fneg', a)))),
2097 (('fdot2', a, b), ('fdot2_replicated', a, b), 'options->fdot_replicates'),
2098 (('fdot3', a, b), ('fdot3_replicated', a, b), 'options->fdot_replicates'),
2099 (('fdot4', a, b), ('fdot4_replicated', a, b), 'options->fdot_replicates'),
2100 (('fdph', a, b), ('fdph_replicated', a, b), 'options->fdot_replicates'),
2102 …(('~flrp', ('fadd(is_used_once)', a, b), ('fadd(is_used_once)', a, c), d), ('fadd', ('flrp', b, c,…
2107 (('~ffma@32', a, 2.0, -1.0), ('flrp', -1.0, 1.0, a ), '!options->lower_flrp32'),
2108 (('~ffma@32', a, -2.0, -1.0), ('flrp', -1.0, 1.0, ('fneg', a)), '!options->lower_flrp32'),
2109 (('~ffma@32', a, -2.0, 1.0), ('flrp', 1.0, -1.0, a ), '!options->lower_flrp32'),
2110 (('~ffma@32', a, 2.0, 1.0), ('flrp', 1.0, -1.0, ('fneg', a)), '!options->lower_flrp32'),
2111 …(('~fadd@32', ('fmul(is_used_once)', 2.0, a), -1.0), ('flrp', -1.0, 1.0, a ), '!options…
2112 …(('~fadd@32', ('fmul(is_used_once)', -2.0, a), -1.0), ('flrp', -1.0, 1.0, ('fneg', a)), '!options…
2113 …(('~fadd@32', ('fmul(is_used_once)', -2.0, a), 1.0), ('flrp', 1.0, -1.0, a ), '!options…
2114 …(('~fadd@32', ('fmul(is_used_once)', 2.0, a), 1.0), ('flrp', 1.0, -1.0, ('fneg', a)), '!options…
2134 (('~ffma@32', ('fadd', b, ('fneg', a)), a, a), ('flrp', a, b, a), '!options->lower_flrp32'),
2135 (('~ffma@32', a, 2.0, ('fneg', ('fmul', a, a))), ('flrp', a, 1.0, a), '!options->lower_flrp32'),
2136 (('~ffma@32', a, 2.0, ('fmul', ('fneg', a), a)), ('flrp', a, 1.0, a), '!options->lower_flrp32'),
2137 (('~ffma@32', a, ('fneg', a), ('fmul', 2.0, a)), ('flrp', a, 1.0, a), '!options->lower_flrp32'),
2138 (('~fmul@32', a, ('fadd', 2.0, ('fneg', a))), ('flrp', a, 1.0, a), '!options->lower_flrp32'),
2141 …(('fmin', ('fadd(is_used_once)', '#c', a), ('fadd(is_used_once)', '#c', b)), ('fadd', c, ('fmin', …
2142 …(('fmax', ('fadd(is_used_once)', '#c', a), ('fadd(is_used_once)', '#c', b)), ('fadd', c, ('fmax', …
2146 …(('bcsel', ('feq', ('fsqrt', 'a(is_not_negative)'), 0.0), intBitsToFloat(0x7f7fffff), ('frsq', a)),
2147 ('fmin', ('frsq', a), intBitsToFloat(0x7f7fffff))),
2165 …(('~fadd', ('ffma(is_used_once)', a, b, ('ffma', c, d, ('fmul', 'e(is_not_const_and_not_fsign)', '…
2166 …('ffma', a, b, ('ffma', c, d, ('ffma', e, 'f', 'g'))), '(info->stage != MESA_SHADER_VERTEX && info…
2167 …(('~fadd', ('ffma(is_used_once)', a, b, ('fmul', 'c(is_not_const_and_not_fsign)', 'd(is_not_const_…
2168 …('ffma', a, b, ('ffma', c, d, e)), '(info->stage != MESA_SHADER_VERTEX && info->stage != MESA_SHAD…
2176 (('ubfe', a, b, 0), 0),
2177 (('ibfe', a, b, 0), 0),
2185 …(('ubfe', a, '#b', '#c'), ('iand', ('ushr', 0xffffffff, ('ineg', c)), ('ushr', a, b)), 'options->l…
2193 …(('ibfe', a, '#b', '#c'), ('ishr', ('ishl', a, ('ineg', ('iadd', b, c))), ('ineg', c)), 'options->…
2196 (('ishl', a, 0), a),
2197 (('ishl', a, -32), a),
2198 (('ishr', a, 0), a),
2199 (('ishr', a, -32), a),
2200 (('ushr', a, 0), a),
2206 …e(is_used_once)', 'a@{}'.format(s), 0), ('ine', 'b@{}'.format(s), 0)), ('ine', ('umin', a, b), 0)),
2207 …q(is_used_once)', 'a@{}'.format(s), 0), ('ieq', 'b@{}'.format(s), 0)), ('ieq', ('umin', a, b), 0)),
2214 …(('bcsel', a, 0, ('b2f{}'.format(s), ('inot', 'b@bool'))), ('b2f{}'.format(s), ('inot', ('ior', a,…
2219 (('bcsel', a, (op + '(is_used_once)', b, c), (op, b, d)), (op, b, ('bcsel', a, c, d))),
2220 (('bcsel', a, (op, b, c), (op + '(is_used_once)', b, d)), (op, b, ('bcsel', a, c, d))),
2225 … (('bcsel', a, (op + '(is_used_once)', b, c, d), (op, b, c, e)), (op, b, c, ('bcsel', a, d, e))),
2226 … (('bcsel', a, (op, b, c, d), (op + '(is_used_once)', b, c, e)), (op, b, c, ('bcsel', a, d, e))),
2228 … (('bcsel', a, (op + '(is_used_once)', b, c, d), (op, b, e, d)), (op, b, ('bcsel', a, c, e), d)),
2229 … (('bcsel', a, (op, b, c, d), (op + '(is_used_once)', b, e, d)), (op, b, ('bcsel', a, c, e), d)),
2243 late_optimizations += [(('~f2f32', (op, ('f2fmp', a))), (op, a))]
2247 late_optimizations += [(('~f2f32', (op, ('f2fmp', a), ('f2fmp', b))), (op, a, b))]
2251 …late_optimizations += [(('~f2f32', (op, ('f2fmp', a), ('f2fmp', b), ('f2fmp', c))), (op, a, b, c))]
2255 late_optimizations += [(('~' + op, ('f2fmp', a), ('f2fmp', b)), (op, a, b))]
2262 (('f2fmp', a), ('f2f16', a)),
2263 (('f2imp', a), ('f2i16', a)),
2264 (('f2ump', a), ('f2u16', a)),
2265 (('i2imp', a), ('i2i16', a)),
2266 (('i2fmp', a), ('i2f16', a)),
2267 (('i2imp', a), ('u2u16', a)),
2268 (('u2fmp', a), ('u2f16', a)),
2273 (('fmul', ('fneg', a), ('fneg', b)), ('fmul', a, b)),
2274 (('ffma', ('fneg', a), ('fneg', b), c), ('ffma', a, b, c)),
2275 (('fdot2_replicated', ('fneg', a), ('fneg', b)), ('fdot2_replicated', a, b)),
2276 (('fdot3_replicated', ('fneg', a), ('fneg', b)), ('fdot3_replicated', a, b)),
2277 (('fdot4_replicated', ('fneg', a), ('fneg', b)), ('fdot4_replicated', a, b)),
2278 (('fneg', ('fneg', a)), a),
2280 (('fneg', ('fmul(is_used_once)', a, b)), ('fmul', ('fneg', a), b)),
2281 (('fabs', ('fmul(is_used_once)', a, b)), ('fmul', ('fabs', a), ('fabs', b))),
2283 (('fneg', ('ffma(is_used_once)', a, b, c)), ('ffma', ('fneg', a), b, ('fneg', c))),
2284 (('fneg', ('flrp(is_used_once)', a, b, c)), ('flrp', ('fneg', a), ('fneg', b), c)),
2285 (('fneg', ('fadd(is_used_once)', a, b)), ('fadd', ('fneg', a), ('fneg', b))),
2289 (('fneg', ('fmin(is_used_once)', a, b)), ('fmax', ('fneg', a), ('fneg', b))),
2290 (('fneg', ('fmax(is_used_once)', a, b)), ('fmin', ('fneg', a), ('fneg', b))),
2292 (('fneg', ('fdot2_replicated(is_used_once)', a, b)), ('fdot2_replicated', ('fneg', a), b)),
2293 (('fneg', ('fdot3_replicated(is_used_once)', a, b)), ('fdot3_replicated', ('fneg', a), b)),
2294 (('fneg', ('fdot4_replicated(is_used_once)', a, b)), ('fdot4_replicated', ('fneg', a), b)),
2298 (('fneg', ('fdph_replicated(is_used_once)', a, b)), ('fdph_replicated', a, ('fneg', b))),
2300 (('fneg', ('fsign(is_used_once)', a)), ('fsign', ('fneg', a))),
2301 (('fabs', ('fsign(is_used_once)', a)), ('fsign', ('fabs', a))),