Page MenuHomePhabricator

lebedev.ri (Roman Lebedev)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 27 2012, 6:35 AM (376 w, 6 d)

Recent Activity

Yesterday

lebedev.ri added a comment to D71307: [Loads] Handle simple cases with same base pointer with constant offsets in FindAvailableLoadedValue when AA is null..

(just passing-by remark)

Fri, Jan 17, 11:11 AM · Restricted Project

Thu, Jan 16

lebedev.ri added a comment to D72837: [AggressiveInstCombine] Add support for select instructions.

This is certainly missing tests

Thu, Jan 16, 5:05 AM · Restricted Project

Wed, Jan 15

lebedev.ri added a comment to D72742: Don't assume promotable integers are zero/sign-extended already in x86-64 ABI..

Sign-extension is not guaranteed by the ABI, and thus the callee cannot assume it.

Wed, Jan 15, 2:28 AM · Restricted Project, Restricted Project
lebedev.ri edited reviewers for D72742: Don't assume promotable integers are zero/sign-extended already in x86-64 ABI., added: craig.topper, rsmith, wxiao3, rnk; removed: jdoerfert.
Wed, Jan 15, 12:18 AM · Restricted Project, Restricted Project

Tue, Jan 14

lebedev.ri added a comment to D72553: [clang-tidy] Add performance-prefer-preincrement check.
  • moved check from llvm module to performance
Tue, Jan 14, 2:45 PM · Restricted Project, Restricted Project
lebedev.ri added inline comments to D72553: [clang-tidy] Add performance-prefer-preincrement check.
Tue, Jan 14, 1:50 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D72733: [InstCombine] allow more narrowing of casted select.

I'm not sure what kind of fallout this will cause.
For example, won't this affect 'saturating math' peephole?
Won't this affect clamp (min-max) pattern?

Tue, Jan 14, 1:47 PM · Restricted Project
lebedev.ri added a comment to D72553: [clang-tidy] Add performance-prefer-preincrement check.

Happy to see this check!

Tue, Jan 14, 1:28 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).

Just noticed that I landed this without explicit accept; sorry.
PR44543 is now resolved.

Tue, Jan 14, 11:02 AM · Restricted Project
lebedev.ri added a comment to D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).

LG, thank you.

Tue, Jan 14, 10:14 AM · Restricted Project
lebedev.ri updated the summary of D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).
Tue, Jan 14, 10:13 AM · Restricted Project
lebedev.ri added inline comments to D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).
Tue, Jan 14, 9:36 AM · Restricted Project
lebedev.ri added reviewers for D72529: [SCCIterator] Fix use-after-free: wristow, probinson.
Tue, Jan 14, 8:50 AM · Restricted Project
lebedev.ri added reviewers for D72550: [SCCIterator] Fix another potential use-after-free: wristow, probinson.
Tue, Jan 14, 8:50 AM · Restricted Project
lebedev.ri accepted D71164: [InstCombine] Fix infinite loop due to bitcast <-> phi transforms.

Okay, LG if there are no further comments from @spatel.

Tue, Jan 14, 8:50 AM · Restricted Project
lebedev.ri requested changes to D71828: [InstCombine] Convert vector store to scalar store if only one element updated.

(marking as reviewed)

Tue, Jan 14, 8:41 AM · Restricted Project
lebedev.ri added inline comments to D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).
Tue, Jan 14, 8:40 AM · Restricted Project
lebedev.ri retitled D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543) from Let combineLoadToNewType preserve ABI alignment of the load to [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).
Tue, Jan 14, 8:40 AM · Restricted Project
lebedev.ri accepted D72693: [TableGen] Update editor modes for new keywords..

LG in principle.

Tue, Jan 14, 5:07 AM · Restricted Project
lebedev.ri added inline comments to D72693: [TableGen] Update editor modes for new keywords..
Tue, Jan 14, 4:48 AM · Restricted Project
lebedev.ri added reviewers for D67843: [clang-format] DisableFormat also now disables SortIncludes: djasper, klimek.
Tue, Jan 14, 3:02 AM · Restricted Project, Restricted Project, Restricted Project
lebedev.ri added inline comments to D71828: [InstCombine] Convert vector store to scalar store if only one element updated.
Tue, Jan 14, 2:43 AM · Restricted Project

Mon, Jan 13

lebedev.ri accepted D72657: [InstCombine] Fix user iterator invalidation in bitcast of phi transform.

This seems good to me.

Mon, Jan 13, 3:08 PM · Restricted Project
lebedev.ri added reviewers for D72493: Fix ordering of PassExtension registry and LibraryHandles registry construction: v.g.vassilev, zturner.

Not really the code i know.
Can you spell out in the description *why* void DynamicLibrary::ensureConstructed() { (void)*OpenedHandles; } solves the issue?
Adding some more potential reviewers.

Mon, Jan 13, 2:11 PM · Restricted Project
lebedev.ri added a comment to D72362: [clang-tidy] misc-no-recursion: a new check.

Does it make sense to implement such diagnostics in clang Sema, considering that OpenCL does not allow recursion?
We implemented similar diagnostics for SYCL programming model and would be like to upstream it to clang later (https://github.com/intel/llvm/commit/4efe9fcf2dc6f6150b5b477b0f8320ea13a7f596). Can we somehow leverage this work for the compiler?

Mon, Jan 13, 11:13 AM · Restricted Project, Restricted Project
lebedev.ri added inline comments to D72575: [x86] try harder to form 256-bit unpck*.
Mon, Jan 13, 11:13 AM · Restricted Project
lebedev.ri added inline comments to D72484: [clang-tidy] Fix check for Abseil internal namespace access.
Mon, Jan 13, 8:03 AM · Restricted Project, Restricted Project
lebedev.ri resigned from D72558: [InstCombine] Fix worklist management when removing guard intrinsic.

Sorry, i don't know what @llvm.experimental.guard() is.

Mon, Jan 13, 1:53 AM · Restricted Project
lebedev.ri added reviewers for D66618: [WIP] Expose functions to determine pointer properties (Align & Deref): sstefan1, uenoku.
Mon, Jan 13, 1:53 AM · Restricted Project
lebedev.ri added a comment to D69490: [LoopIdiomRecognize] Avoid trying to create a pattern from the address of a thread local..

Anyone else with an opinion on this?

Mon, Jan 13, 1:48 AM · Restricted Project
lebedev.ri requested changes to D71164: [InstCombine] Fix infinite loop due to bitcast <-> phi transforms.

Did you verify that test-suite now passes?

Mon, Jan 13, 1:43 AM · Restricted Project
lebedev.ri requested changes to D72423: [DemandedBits] Improve accuracy of Add propagator.

@rrika Performing these kinds of tests on IR is both quite inefficient and unnecessary complex. It would be better to extract the code logic (which just operates on APInts) into a separate file, which will allow you to easily test it, and also share the logic with other places doing demanded bits analysis, such as InstCombine and SelectionDAG.

Mon, Jan 13, 1:39 AM · Restricted Project

Sun, Jan 12

lebedev.ri added a comment to D72566: [clang-tidy] Clang tidy is now alias aware.

I think the fact that this is a fourth (?) different incarnation of a patch
trying to solve the same *major* *ugly* problem, it may be an evidence that
perhaps this problem should not be approached from the 'let's hack it together'
approach, but with a concrete plan sent as an RFC to cfe-dev :/

Sun, Jan 12, 12:15 PM · Restricted Project, Restricted Project
lebedev.ri accepted D72573: [SelectionDAG] ComputeKnownBits - minimum leading/trailing zero bits in LSHR/SHL (PR44526).

LG, thank you.

Sun, Jan 12, 10:03 AM · Restricted Project
lebedev.ri added inline comments to D72573: [SelectionDAG] ComputeKnownBits - minimum leading/trailing zero bits in LSHR/SHL (PR44526).
Sun, Jan 12, 9:35 AM · Restricted Project
lebedev.ri added a comment to D72566: [clang-tidy] Clang tidy is now alias aware.

I agree that the current alias situation is not ideal, though i'm not sure
how much we can fix it since it crosses user interface boundary
(i.e. what fixes won't lead to some regressions from the previous expected behavior)

If you're expecting a test to run twice usually something has gone wrong

That is not what i'm talking about.
I'm mainly worried about checks with custom config options:
It is likely that said options were specified only for one check,
not all of it's aliases too. So now the fact whether or not
these options will be used will depend on the registering order of checks.

Sun, Jan 12, 7:30 AM · Restricted Project, Restricted Project
lebedev.ri added a comment to D72566: [clang-tidy] Clang tidy is now alias aware.

I agree that the current alias situation is not ideal, though i'm not sure
how much we can fix it since it crosses user interface boundary
(i.e. what fixes won't lead to some regressions from the previous expected behavior)

Sun, Jan 12, 6:51 AM · Restricted Project, Restricted Project
lebedev.ri added a comment to D71174: [clang-tidy] new check: bugprone-signed-char-misuse.

A little bit late to the party, but still.
I'm honestly wondering if this should be a proper clang static analyzer data-flow aware check.
This is basically diagnosing every signed char -> signed int promotion, regardless of whether
the char is used as an ASCII char or not. It really seems like a wrong, noise-filled approach..

Sun, Jan 12, 3:12 AM · Restricted Project, Restricted Project

Sat, Jan 11

lebedev.ri added a comment to D72362: [clang-tidy] misc-no-recursion: a new check.

Thanks for taking a look.
Some deflective replies inline.

Sat, Jan 11, 10:01 AM · Restricted Project, Restricted Project

Fri, Jan 10

lebedev.ri added a comment to D69387: [ConstantRange] Add toKnownBits() method.

So, this looks fine, but I'm still not quite clear on the use-case. I thought this might be useful for computing ranges of bit ops, but now that I see the implementation, I don't think that's the case. We just get the known top bits, but lose any information about the low bits (which can still be used, though in an operation-specific manner).

We should probably have some case where we can actually use this before landing.

Would we not be better-off using this rather than whatever conservative implementation we currently have for binaryAnd()/binaryOr()/binaryXor()?

That's what I initially thought as well, but I don't think it's the case. For example, binaryAnd() currently returns [0, umin(A.umax(), B.umax())]. If we have A unknown and B=[0, 0b0100] then we get as result [0, 0b0100]. If we base this on toKnownBits(), we'd get [0, 0b0111]`, because only the top bit ends up being known.

And binaryXor()?

Fri, Jan 10, 1:57 PM · Restricted Project
lebedev.ri added a comment to D69387: [ConstantRange] Add toKnownBits() method.

So, this looks fine, but I'm still not quite clear on the use-case. I thought this might be useful for computing ranges of bit ops, but now that I see the implementation, I don't think that's the case. We just get the known top bits, but lose any information about the low bits (which can still be used, though in an operation-specific manner).

We should probably have some case where we can actually use this before landing.

Fri, Jan 10, 1:38 PM · Restricted Project

Thu, Jan 9

lebedev.ri added a comment to D72468: Update the attribution policy to use the 'Author' property of a git commit.

SGTM in general

Thu, Jan 9, 11:11 AM · Restricted Project
lebedev.ri added a comment to D71568: [InstCombine] `select + mul` -> `select + shl` with power of twos..

Sorry, i lost track of this patch.
I was hoping someone more familiar with that code would comment, too.

Thu, Jan 9, 3:13 AM · Restricted Project
lebedev.ri added a comment to D72423: [DemandedBits] Improve accuracy of Add propagator.

By exhaustive test you mean an .ll file, or a program looping over all values?

No, a unit test.
See llvm/unittests/IR/ConstantRangeTest.cpp for inspiration.

Thu, Jan 9, 2:26 AM · Restricted Project
lebedev.ri updated subscribers of D72438: [clang-tidy] For checker `readability-misleading-indentation` update tests..

Hm, didn't clang gain such a diagnostic itself recently? https://godbolt.org/z/MYJTvw
Wouldn't it make sense to migrate everything into it, and drop this now-duplicating check?

Thu, Jan 9, 1:12 AM · Restricted Project, Restricted Project

Wed, Jan 8

lebedev.ri updated subscribers of D68115: Zero initialize padding in unions.

Does this have to be an unilateral change,
likely penalizing non--ftrivial-auto-var-init= cases,
i.e. [why] can't it be only done for when -ftrivial-auto-var-init= is enabled?

We left off near that conclusion (https://reviews.llvm.org/D68115#1686887);

Would be great if @rsmith / @aaron.ballman could comment on that

Wed, Jan 8, 4:14 PM · Restricted Project
lebedev.ri added a comment to D72423: [DemandedBits] Improve accuracy of Add propagator.

Can an exhaustive test be added for this?

Wed, Jan 8, 4:05 PM · Restricted Project
lebedev.ri added reviewers for D29014: [SelDag][MIR] Add FREEZE: nlopes, craig.topper.

I'm sorry, it seems the track of this patch was lost.
We really need to get this last bit of freeze support landed.
Can anyone spot any remaining issues with the patch?

Wed, Jan 8, 3:00 PM · Restricted Project
lebedev.ri accepted D72048: [InstCombine] Preserve nuw on sub of geps (PR44419).

Not really familiar with this code.
This seems correct to me, but maybe i'm missing some subtlety.

Wed, Jan 8, 3:00 PM · Restricted Project
lebedev.ri accepted D72412: [InstSimplify] select Cond, true, false --> Cond.

LG
This is okay for vectors

Wed, Jan 8, 2:42 PM · Restricted Project
lebedev.ri added a comment to D68115: Zero initialize padding in unions.

Can patch description be made a bit more verbose?

However with -ftrivial-auto-var-init=pattern those undefs became 0xAA pattern and break some code.

Break how?

Wed, Jan 8, 2:41 PM · Restricted Project
lebedev.ri accepted D72361: [DAGCombiner] reduce extract subvector of concat.

...

Wed, Jan 8, 12:04 PM · Restricted Project
lebedev.ri requested changes to D71164: [InstCombine] Fix infinite loop due to bitcast <-> phi transforms.

Seems to have broken test-suite and bootstrap, the latter possibly with an infinite loop, based on timeout messages. Not immediately clear to me why...

Wed, Jan 8, 11:08 AM · Restricted Project
lebedev.ri added a comment to D71499: Add builtins for aligning and checking alignment of pointers and integers.

Land this? (branching is near..)

Wed, Jan 8, 11:08 AM · Restricted Project
lebedev.ri retitled D72397: [mlir] m_Constant() from m_Constant() to [mlir] m_Constant().
Wed, Jan 8, 10:40 AM · Restricted Project
lebedev.ri added a comment to D72361: [DAGCombiner] reduce extract subvector of concat.

Patch updated:
Made predicate more restrictive and added asserts.

Wed, Jan 8, 10:21 AM · Restricted Project
lebedev.ri requested changes to D72396: [InstCombine] fold zext of masked bit set/clear.

I agree that this seem to be either causing, or triggering, a miscompile.
Most standalone testcase: https://godbolt.org/z/EMWGof
On rG19ace449a3da4058428495283b3b15826f8d7d34, this compiles to:

; ModuleID = '/tmp/test.cpp'
source_filename = "/tmp/test.cpp"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: norecurse nounwind readnone uwtable
define dso_local i32 @_Z1fjjj(i32 %olds, i32 %news, i32 %mask) local_unnamed_addr #0 {
entry:
  %0 = and i32 %mask, 1
  ret i32 %0
}
Wed, Jan 8, 9:24 AM · Restricted Project
lebedev.ri updated the diff for D72362: [clang-tidy] misc-no-recursion: a new check.

s/1/true/

Wed, Jan 8, 9:05 AM · Restricted Project, Restricted Project
lebedev.ri requested changes to D72361: [DAGCombiner] reduce extract subvector of concat.
Wed, Jan 8, 8:56 AM · Restricted Project
lebedev.ri requested changes to D71828: [InstCombine] Convert vector store to scalar store if only one element updated.
Wed, Jan 8, 8:09 AM · Restricted Project
lebedev.ri added inline comments to D72361: [DAGCombiner] reduce extract subvector of concat.
Wed, Jan 8, 7:50 AM · Restricted Project
lebedev.ri added a comment to D72396: [InstCombine] fold zext of masked bit set/clear.

Internally, I can see that either (1) this causes the following code to miscompile, or (2) the code is UB:
https://github.com/grpc/grpc/blob/master/src/core/ext/transport/chttp2/transport/frame_settings.cc#L48
Note that in that code the two checks on lines 57 and 64 are related if that helps.

What is the maximal value of count there? Is it count u< 32? (Is that code UBSan-clean?)

Wed, Jan 8, 7:21 AM · Restricted Project
lebedev.ri added a comment to D72397: [mlir] m_Constant().

Passing-by remark:
Please would it be possible to consistently follow the general trend and prefix patch titles with appropriate [tags]?
This is a MLIR patch, so it would have been awesome to tag it as such.
It makes reading throught llvm-commits, and eventually git log, that much easier.

Wed, Jan 8, 7:13 AM · Restricted Project
lebedev.ri added a comment to D72249: Detemplaize m_Op and RecursivePatternMatcher..

Passing-by remark:
i think the patch description only says what this patch does,
but not why, and does not spell out *why* this change is needed,

Wed, Jan 8, 7:12 AM · Restricted Project

Tue, Jan 7

lebedev.ri updated the summary of D72362: [clang-tidy] misc-no-recursion: a new check.
Tue, Jan 7, 2:56 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D72362: [clang-tidy] misc-no-recursion: a new check.

It'll be reasonable to add CERT alias.

Tue, Jan 7, 2:39 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D72361: [DAGCombiner] reduce extract subvector of concat.

IMHO some NFC cleanup wouldn't decrease readability of the diff

Tue, Jan 7, 2:35 PM · Restricted Project
lebedev.ri added a comment to D72239: [clang-tidy] new opencl recursion not supported check.

I was just going to look into this kind of check.
This can be implemented without recursion in the check itself.
Let me write it and post my variant.

Tue, Jan 7, 2:24 PM · Restricted Project, Restricted Project, Restricted Project
lebedev.ri created D72362: [clang-tidy] misc-no-recursion: a new check.
Tue, Jan 7, 2:24 PM · Restricted Project, Restricted Project

Mon, Jan 6

lebedev.ri added a comment to D72312: [DAGCombine] Fold the (fma -x, y, -z) to -(fma x, y, z).

Seems reasonable to me, but i'll leave review to someone more FP-familiar.

Mon, Jan 6, 11:12 PM · Restricted Project
lebedev.ri accepted D72007: [InstCombine] try to pull 'not' of select into compare operands.

LG
I wonder if this will expose some inverse canonicalization (i hope instcombine will still endlessly loop/assert), but i can't think of any right now.

Mon, Jan 6, 2:25 PM · Restricted Project
lebedev.ri added a comment to D72300: [DAGCombiner] reduce shuffle of concat of same vector.

LG

Mon, Jan 6, 2:25 PM · Restricted Project
lebedev.ri retitled D70265: [clang-tidy] Add CppCoreGuidelines I.2 "Avoid non-const global variables" check from [clang-tidy] Add clang tidy check I.2 to cppcoreguidelines to [clang-tidy] Add CppCoreGuidelines I.2 "Avoid non-const global variables" check.
Mon, Jan 6, 2:08 AM · Restricted Project

Sun, Jan 5

lebedev.ri requested changes to D72239: [clang-tidy] new opencl recursion not supported check.

I was just going to look into this kind of check.
This can be implemented without recursion in the check itself.
Let me write it and post my variant.

Sun, Jan 5, 11:21 PM · Restricted Project, Restricted Project, Restricted Project
lebedev.ri accepted D71499: Add builtins for aligning and checking alignment of pointers and integers.

Nice. Thank you for working on this.
I think this finally fully looks good to me.

Sun, Jan 5, 6:04 AM · Restricted Project

Sat, Jan 4

lebedev.ri added a comment to D72217: [clang-tidy] Added readability-qualified-auto check.

Oh, thank you for working on this one, i've always missed this particular check.

Sat, Jan 4, 11:12 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D72007: [InstCombine] try to pull 'not' of select into compare operands.

Looks good to me in principle, the case where we get rid of not is good,
but i'm not sure about the case where we only manage to sink it into one of the hands.
To me that seems to be the opposite of the current general canonicalizaion we do.

The general 'not cmp' canonicalization is the same as this? See around line 3090:

// not (cmp A, B) = !cmp A, B
CmpInst::Predicate Pred;
if (match(&I, m_Not(m_OneUse(m_Cmp(Pred, m_Value(), m_Value()))))) {
  cast<CmpInst>(Op0)->setPredicate(CmpInst::getInversePredicate(Pred));
  return replaceInstUsesWith(I, Op0);
}

No, i'm not talking about clear-win cases where that allows to eliminate not/neg,
but about the cases where there is no change in instruction count.

Sat, Jan 4, 8:08 AM · Restricted Project
lebedev.ri committed rG6d05bc2e3a9b: [NFCI][InstCombine] Refactor 'sink negation into select if that folds one hand… (authored by lebedev.ri).
[NFCI][InstCombine] Refactor 'sink negation into select if that folds one hand…
Sat, Jan 4, 6:46 AM
lebedev.ri committed rG772ede3d5d55: [InstCombine] Sink sub into hands of select if one hand becomes zero. Part 2… (authored by lebedev.ri).
[InstCombine] Sink sub into hands of select if one hand becomes zero. Part 2…
Sat, Jan 4, 6:46 AM
lebedev.ri committed rGd2b79c76be5b: [NFC][InstCombine] 'subtract from one hands of select' pattern tests (PR44426) (authored by lebedev.ri).
[NFC][InstCombine] 'subtract from one hands of select' pattern tests (PR44426)
Sat, Jan 4, 6:46 AM
lebedev.ri committed rG4d8e47ca1805: [InstCombine] Sink sub into hands of select if one hand becomes zero (PR44426) (authored by lebedev.ri).
[InstCombine] Sink sub into hands of select if one hand becomes zero (PR44426)
Sat, Jan 4, 6:46 AM
lebedev.ri committed rG83aa0b6734da: [NFC][InstCombine] 'subtract of one hands of select' pattern tests (PR44426) (authored by lebedev.ri).
[NFC][InstCombine] 'subtract of one hands of select' pattern tests (PR44426)
Sat, Jan 4, 6:46 AM
lebedev.ri requested changes to D71637: [PatternMatch] Add support for matching ConstantExpr..

It looks like we've always matched ConstantExprs for binary operators, but not for other operations. It probably makes sense to be more consistent.

If we're going to do this, probably makes sense to change OneOps_match/TwoOps_match at the same time.

Can you add testcases for a few of the existing transforms that are changing? There are too many transforms for it to make sense to cover everything, but it makes sense to illustrate what's actually changing.

Sat, Jan 4, 12:24 AM · Restricted Project

Fri, Jan 3

lebedev.ri added a comment to D72007: [InstCombine] try to pull 'not' of select into compare operands.

Looks good to me in principle, the case where we get rid of not is good,
but i'm not sure about the case where we only manage to sink it into one of the hands.
To me that seems to be the opposite of the current general canonicalizaion we do.
(Do we need Inverter logic, that handles sinking of inversions as far as possible?)

Fri, Jan 3, 11:39 PM · Restricted Project
lebedev.ri resigned from D71445: [ConstantFold][SVE] Fix constant folding for scalable vector binary operations..
Fri, Jan 3, 11:29 PM · Restricted Project
lebedev.ri committed rG7973aa05f6f9: [NFC][InstCombine] '(Op1 & С) - Op1' -> '-(Op1 & ~C)' fold (PR44427) (authored by lebedev.ri).
[NFC][InstCombine] '(Op1 & С) - Op1' -> '-(Op1 & ~C)' fold (PR44427)
Fri, Jan 3, 10:44 AM
lebedev.ri committed rG6f922dbbeae7: [NFC][InstCombine] '(Op1 & С) - Op1' pattern tests (PR44427) (authored by lebedev.ri).
[NFC][InstCombine] '(Op1 & С) - Op1' pattern tests (PR44427)
Fri, Jan 3, 10:44 AM
lebedev.ri committed rG9b750cc6ba2c: [NFC][InstCombine] Autogenerate and2.ll checklines (authored by lebedev.ri).
[NFC][InstCombine] Autogenerate and2.ll checklines
Fri, Jan 3, 10:43 AM
lebedev.ri committed rGb87a351182cd: [NFC][InstCombine] '(X & (- Y)) - X' pattern tests (PR44448) (authored by lebedev.ri).
[NFC][InstCombine] '(X & (- Y)) - X' pattern tests (PR44448)
Fri, Jan 3, 9:28 AM
lebedev.ri committed rGcc0216bedb85: [NFC][InstCombine] '(X & (- Y)) - X' -> '- (X & (Y - 1))' fold (PR44448) (authored by lebedev.ri).
[NFC][InstCombine] '(X & (- Y)) - X' -> '- (X & (Y - 1))' fold (PR44448)
Fri, Jan 3, 9:28 AM
lebedev.ri added a comment to D71499: Add builtins for aligning and checking alignment of pointers and integers.

For future reference, if anyone needs here's the C versions of these builtins:
https://godbolt.org/z/oHeAh-

^ looks like we are missing some backend-level folds for round-down variant, filed https://bugs.llvm.org/show_bug.cgi?id=44448

Fri, Jan 3, 7:25 AM · Restricted Project
lebedev.ri committed rG0727e2b90c7b: [DAGCombiner][X86][AArch64] Generalize `A-(A&B)`->`A&(~B)` fold (PR44448) (authored by lebedev.ri).
[DAGCombiner][X86][AArch64] Generalize `A-(A&B)`->`A&(~B)` fold (PR44448)
Fri, Jan 3, 7:08 AM
lebedev.ri committed rG473deaf34bc9: [NFC][X86][AArch64] Add 'A - (A & B)' pattern tests (PR44448) (authored by lebedev.ri).
[NFC][X86][AArch64] Add 'A - (A & B)' pattern tests (PR44448)
Fri, Jan 3, 7:07 AM
lebedev.ri committed rGdf4119c11469: [NFC][X86] Add BMI runlines to align-down.ll test (authored by lebedev.ri).
[NFC][X86] Add BMI runlines to align-down.ll test
Fri, Jan 3, 7:07 AM
lebedev.ri committed rGd09ac032ee00: [NFC][DAGCombine][X86] '~(X - 1)' pattern tests (authored by lebedev.ri).
[NFC][DAGCombine][X86] '~(X - 1)' pattern tests
Fri, Jan 3, 7:07 AM
lebedev.ri committed rG86403c0ff893: [DAGCombiner] `~(add X, -1)` -> `neg X` fold (authored by lebedev.ri).
[DAGCombiner] `~(add X, -1)` -> `neg X` fold
Fri, Jan 3, 7:07 AM
lebedev.ri committed rG3d492d7503d1: [DAGCombine][X86][Thumb2/LowOverheadLoops] `A - (A & C)` -> `A & (~C)` fold… (authored by lebedev.ri).
[DAGCombine][X86][Thumb2/LowOverheadLoops] `A - (A & C)` -> `A & (~C)` fold…
Fri, Jan 3, 7:07 AM
lebedev.ri committed rGe4de8db67eb7: [NFC][DAGCombine][X86] Tests for 'A - (A & C)' pattern (PR44448) (authored by lebedev.ri).
[NFC][DAGCombine][X86] Tests for 'A - (A & C)' pattern (PR44448)
Fri, Jan 3, 7:07 AM
lebedev.ri committed rG1711be78f740: [NFC][DAGCombine] Clarify comment for 'A - (A & (B - 1))' fold (authored by lebedev.ri).
[NFC][DAGCombine] Clarify comment for 'A - (A & (B - 1))' fold
Fri, Jan 3, 7:07 AM
lebedev.ri committed rG8dab0a4a7d69: [DAGCombine][X86][AArch64] 'A - (A & (B - 1))' -> 'A & (0 - B)' fold (PR44448) (authored by lebedev.ri).
[DAGCombine][X86][AArch64] 'A - (A & (B - 1))' -> 'A & (0 - B)' fold (PR44448)
Fri, Jan 3, 3:04 AM