summaryrefslogtreecommitdiff
path: root/src/glsl/opt_algebraic.cpp
AgeCommit message (Expand)AuthorFilesLines
2015-07-06glsl: Make sure not to dereference NULLNeil Roberts1-1/+1
2015-07-06glsl: Add missing check for whether an expression is an add operationNeil Roberts1-1/+1
2015-04-24glsl: Transform pow(x, 4) into (x*x)*(x*x).Matt Turner1-0/+20
2015-04-01glsl: Make sure not to dereference NULL.Matt Turner1-0/+2
2015-03-31glsl: Reassociate multiplication of mat*mat*vec.Matt Turner1-0/+14
2015-03-24glsl: Recognize sat(add(b2f(a), b2f(b))) as a logical OR.Matt Turner1-0/+12
2015-03-24glsl: Recognize mul(b2f(a), b2f(b)) as a logical AND.Matt Turner1-0/+4
2015-03-13glsl: optimize (0 cmp x + y) into (-x cmp y).Samuel Iglesias Gonsalvez1-3/+12
2015-02-27glsl: silence uninitialized var warning on MinGWBrian Paul1-0/+1
2015-02-25glsl: Rewrite and fix min/max to saturate optimization.Matt Turner1-29/+46
2015-02-19glsl: Add support doubles in optimization passesDave Airlie1-4/+22
2015-02-11glsl: Optimize (f2i(trunc x)) into (f2i x).Matt Turner1-0/+9
2015-02-11glsl: Optimize round-half-up pattern.Matt Turner1-0/+33
2015-02-10glsl: Optimize 1/exp(x) into exp(-x).Matt Turner1-0/+6
2014-12-08glsl: Don't optimize min/max into saturate when EmitNoSat is setAbdiel Janulgue1-1/+1
2014-12-05glsl: Optimize scalar all_equal/any_nequal into equal/nequal.Matt Turner1-0/+10
2014-11-03glsl: Remove now useless dot optimization on basis vectMatt Turner1-23/+0
2014-11-03glsl: Emit mul instead of dot if only one component left.Matt Turner1-1/+4
2014-10-29glsl: Drop constant 0.0 components from dot products.Matt Turner1-0/+27
2014-09-27glsl: Recognize open-coded pow(x, y).Matt Turner1-0/+14
2014-08-31glsl: Optimize clamp(x, b, 1.0), where b > 0.0 as max(saturate(x),b)Abdiel Janulgue1-0/+23
2014-08-31glsl: Optimize clamp(x, 0.0, b), where b < 1.0 as min(saturate(x),b)Abdiel Janulgue1-0/+39
2014-08-31glsl: Optimize clamp(x, 0, 1) as saturate(x)Abdiel Janulgue1-0/+36
2014-06-25glsl: Don't convert reductions of ivec to a dot-productIan Romanick1-1/+3
2014-06-19glsl: Optimize (v.x + v.y) + (v.z + v.w) into dot(v, 1.0).Matt Turner1-0/+46
2014-06-19glsl: Pass in options to do_algebraic().Matt Turner1-3/+8
2014-04-08glsl: Pass ctx->Const.NativeIntegers to do_algebraic.Kenneth Graunke1-3/+5
2014-04-05glsl: Optimize (x + y cmp 0) into (x cmp -y).Matt Turner1-0/+22
2014-03-18glsl: Optimize pow(x, 2) into x * x.Matt Turner1-0/+8
2014-03-02glsl: Fix broken LRP algebraic optimization.Kenneth Graunke1-1/+3
2014-02-28glsl: Optimize lrp(x, 0, a) into x - (x * a).Matt Turner1-0/+2
2014-02-28glsl: Optimize lrp(0, y, a) into y * a.Matt Turner1-0/+2
2014-02-07glsl: Optimize triop_csel with all-true or all-false.Eric Anholt1-0/+7
2014-02-07glsl: Optimize various cases of fma (aka MAD).Eric Anholt1-0/+13
2014-02-07glsl: Optimize lrp(x, x, coefficient) --> x.Eric Anholt1-0/+2
2014-02-07glsl: Optimize pow(x, 1) -> x.Eric Anholt1-0/+4
2014-02-07glsl: Optimize log(exp(x)) and exp(log(x)) into x.Eric Anholt1-0/+36
2014-02-07glsl: Optimize ~~x into x.Eric Anholt1-0/+5
2014-01-21glsl: Optimize open-coded lrp into lrp.Jordan Justen1-0/+52
2014-01-07glsl: Optimize pow(2, x) --> exp2(x).Kenneth Graunke1-0/+11
2014-01-07glsl: Optimize pow(1.0, X) --> 1.0.Kenneth Graunke1-0/+6
2013-11-15glsl: Apply the transformation "1/rsq(x) == sqrt(x)" in opt_algebraic.Eric Anholt1-3/+4
2013-11-15glsl: Apply the transformation "(a ^^ a) -> false" in opt_algebraic.Eric Anholt1-1/+3
2013-11-15glsl: Apply the transformation "(a && a) -> a" in opt_algebraic.Eric Anholt1-1/+3
2013-11-15glsl: Apply the transformation "(a || a) -> a" in opt_algebraic.Eric Anholt1-1/+3
2013-10-28glsl: Drop no-op shifts involving 0.Eric Anholt1-0/+10
2013-10-28glsl: Use ir_builder more in opt_algebraic.Eric Anholt1-30/+10
2013-10-28glsl: Move common code out of opt_algebraic's handle_expression().Eric Anholt1-78/+39
2013-10-25glsl: Optimize (not A) and (not B) into not (A or B).Matt Turner1-0/+9
2013-10-25glsl: Optimize (not A) or (not B) into not (A and B).Matt Turner1-0/+12