aboutsummaryrefslogtreecommitdiff
path: root/gcc/match.pd
AgeCommit message (Expand)AuthorFilesLines
2023-08-07MATCH: [PR109959] `(uns <= 1) & uns` could be optimized to `uns == 1`Andrew Pinski1-0/+20
2023-08-07MATCH: Extend min_value/max_value to pointer typesAndrew Pinski1-2/+4
2023-08-04tree-optimization/110838 - less aggressively fold out-of-bound shiftsRichard Biener1-0/+4
2023-08-04Fix PR 110874: infinite loop in gimple_bitwise_inverted_equal_p with freAndrew Pinski1-0/+17
2023-08-04match.pd: Canonicalize (signed x << c) >> c [PR101955]Drew Ross1-6/+14
2023-08-02Fix `~X & X` and `~X | X` patternsAndrew Pinski1-2/+4
2023-08-02Move `~X & X` and `~X | X` over to use bitwise_inverted_equal_pAndrew Pinski1-22/+6
2023-08-01Fix PR 93044: extra cast is not removedAndrew Pinski1-0/+10
2023-07-31MATCH: Add `a == b | a cmp b` and `a != b & a cmp b` simplificationsAndrew Pinski1-2/+30
2023-07-31MATCH: PR 106164 : Optimize `(X CMP1 Y) AND/IOR (X CMP2 Y)`Andrew Pinski1-14/+52
2023-07-31tree-optimization: [PR100864] `(a&!b) | b` is not opimized to `a | b` for com...Andrew Pinski1-2/+3
2023-07-27tree-optimization/91838 - fix FAIL of g++.dg/opt/pr91838.CRichard Biener1-0/+10
2023-07-24match.pd: Implement missed optimization (~X | Y) ^ X -> ~(X & Y) [PR109986]Drew Ross1-0/+6
2023-07-21MATCH: Add Max<Max<a,b>,a> -> Max<a,b> simplifcationAndrew Pinski1-1/+5
2023-07-19Fix PR110726: a | (a == b) can sometimes produce wrong codeAndrew Pinski1-3/+9
2023-07-17PR 95923: More (boolean) bitop simplifications in match.pdAndrew Pinski1-0/+15
2023-07-16Fix PR 110666: `(a != 2) == a` produces wrong codeAndrew Pinski1-14/+20
2023-07-13Fix part of PR 110293: `A NEEQ (A NEEQ CST)` partAndrew Pinski1-4/+35
2023-07-04PR 110487: `(a !=/== CST1 ? CST2 : CST3)` pattern for type safetyAndrew Pinski1-16/+8
2023-07-04Fix PR 110487: invalid signed boolean valueAndrew Pinski1-2/+20
2023-07-04middle-end/110495 - avoid associating constants with (VL) vectorsRichard Biener1-13/+15
2023-06-29middle-end/110461 - pattern applying wrongly to vectorsRichard Biener1-0/+1
2023-06-27match.pd: Use element_mode instead of TYPE_MODE.Robin Dapp1-2/+4
2023-06-23[aarch64/match.pd] Fix ICE observed in PR110280.Prathamesh Kulkarni1-1/+8
2023-06-23Use element_precision for match.pd arith conversion optimizationRichard Biener1-4/+4
2023-06-23Bogus and missed folding on vector comparesRichard Biener1-2/+2
2023-06-16tree-optimization/110278 - uns < (typeof uns)(uns != 0) is always falseRichard Biener1-0/+11
2023-06-16tree-optimization/110269 - restore missed condition foldingRichard Biener1-2/+2
2023-06-09Add Plus to the op list of `(zero_one == 0) ? y : z <op> y` patternAndrew Pinski1-2/+2
2023-06-09Change the `(zero_one ==/!= 0) ? y : z <op> y` patterns to use multiply rathe...Andrew Pinski1-4/+4
2023-06-09MATCH: Allow unsigned types for `X & -Y -> X * Y` patternAndrew Pinski1-1/+4
2023-06-09MATCH: Fix zero_one_valued_p not to match signed 1 bit integersAndrew Pinski1-3/+10
2023-06-09middle-end/110182 - TYPE_PRECISION on VECTOR_TYPE causes wrong-codeRichard Biener1-3/+3
2023-06-07MATCH: Fix comment for `(zero_one ==/!= 0) ? y : z <op> y` patternsAndrew Pinski1-2/+2
2023-06-07match.pd: Improve zero_one_valued_pJakub Jelinek1-5/+2
2023-06-06For the `-A CMP -B -> B CMP A` pattern allow EQ/NE for all integer typesAndrew Pinski1-2/+6
2023-06-06Add match patterns for `a ? onezero : onezero` where one of the two operands ...Andrew Pinski1-0/+18
2023-06-06Match: zero_one_valued_p should match 0 constants tooAndrew Pinski1-0/+5
2023-05-30Add a != MIN/MAX_VALUE_CST ? CST-+1 : a to minmax_from_comparisonAndrew Pinski1-2/+2
2023-05-30MATCH: Move `a <= CST1 ? MAX<a, CST2> : a` optimization to matchAndrew Pinski1-0/+18
2023-05-29Fix artificial overflow during GENERIC foldingEric Botcazou1-0/+9
2023-05-24PR middle-end/109840: Preserve popcount/parity type in match.pd.Roger Sayle1-10/+17
2023-05-21atch.pd: Ensure (op CONSTANT_CLASS_P CONSTANT_CLASS_P) is simplified [PR109505]Jakub Jelinek1-10/+10
2023-05-16MATCH: [PR109424] Simplify min/max of boolean argumentsAndrew Pinski1-0/+8
2023-05-14MATCH: Add pattern for `signbit(x) ? x : -x` into abs (and swapped)Andrew Pinski1-0/+10
2023-05-12MATCH: Fix PR 109834, ICE with popcount combined with bswapAndrew Pinski1-2/+2
2023-05-12tree-optimization/109791 - simplify (unsigned)&foo - (unsigned)(&foo + o)Richard Biener1-0/+12
2023-05-11aarch64: convert vector shift + bitwise and + multiply to vector comparemtsamis1-0/+61
2023-05-11match.pd: Simplify popcount(X&Y)+popcount(X|Y) as popcount(X)+popcount(Y)Roger Sayle1-0/+19
2023-05-11match.pd: Simplify popcount/parity of bswap/rotate.Roger Sayle1-0/+50