aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorPierre van Houtryve <pierre.vanhoutryve@amd.com>2025-07-30 10:27:19 +0200
committerGitHub <noreply@github.com>2025-07-30 10:27:19 +0200
commitc4b155709714fb3381049b6d523c1f518dc363f5 (patch)
treed983a1354ce966e0f51939665c0edddd7d281e32 /clang/lib/CodeGen/CodeGenModule.cpp
parentfb49c6784ad425a332bd528567b9c26624fff5b0 (diff)
downloadllvm-c4b155709714fb3381049b6d523c1f518dc363f5.zip
llvm-c4b155709714fb3381049b6d523c1f518dc363f5.tar.gz
llvm-c4b155709714fb3381049b6d523c1f518dc363f5.tar.bz2
[DAG] Fold (setcc ((x | x >> c0 | ...) & mask)) sequences (#146054)
Fold sequences where we extract a bunch of contiguous bits from a value, merge them into the low bit and then check if the low bits are zero or not. Usually the and would be on the outside (the leaves) of the expression, but the DAG canonicalizes it to a single `and` at the root of the expression. The reason I put this in DAGCombiner instead of the target combiner is because this is a generic, valid transform that's also fairly niche, so there isn't much risk of a combine loop I think. See #136727
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions