Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Time | Test | |
---|---|---|
60,030 ms | x64 debian > MLIR.Examples/standalone::test.toy |
Event Timeline
llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp | ||
---|---|---|
77 | Sorry, I mean bitrev.w/d+srli.w/d. |
Prefer simple shifts over byteswapping for bitreverse.i16, per @SixWeining's suggestion
Oh well. BITREV_I8 and BITREV_4B are actually the same. But it's 2AM now so let me finish tweaking this later.
LGTM except some nits.
llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp | ||
---|---|---|
81 | Legal is default. So we can omit it. And then we can omit the braces after if and before else since the body is simple. See the coding standard. Same as below. | |
793 | Indent. | |
798 | Inline one-time used variable, per @MaskRay's suggestions previously. |
llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp | ||
---|---|---|
81 | Unfortunately this seems not to be the case. If I remove both Legal setting then the operation gets expanded instead. See lib/CodeGen/TargetLoweringBase.cpp:839, it defaults to Expand. |
address @SixWeining's review comments, also use consistent signature for performBITREV_WCombine
How about leave it to legal and use bitrev.4b+srli.w/d. I'm not sure which is fast and better.