Optimize combine for funnel shift
Details
Diff Detail
Unit Tests
Time | Test | |
---|---|---|
60,030 ms | x64 debian > MLIR.Examples/standalone::test.toy |
Event Timeline
Is it possible to add a vector test to the mir tests too?
llvm/include/llvm/Target/GlobalISel/Combine.td | ||
---|---|---|
387 | I would move these down to next to the other funnel shift combines | |
843–846 | Can you format this to be a shorter line. | |
llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp | ||
2623 | This comment maybe doesn't add much | |
2631 | It would be good to have a comment here that explains what this is doing. |
llvm/include/llvm/Target/GlobalISel/Combine.td | ||
---|---|---|
785 | Can you try using the new combiner patterns added in 63afb70503bf254bb3cdd8acc6bd1ad25c66e0d8 |
llvm/include/llvm/Target/GlobalISel/Combine.td | ||
---|---|---|
785 | In theory this should just be (match (G_FSHR $x, $y, 0)) (apply (COPY $x, $y)) Same deal below but with G_FSHL funnel_shift_overshift can stay the same though, there's no way to express that using MIR patterns easily right now. |
llvm/include/llvm/Target/GlobalISel/Combine.td | ||
---|---|---|
799 | It looks like ImmLeaf will currently take a type and use an int64_t for the internal type. These patterns want to handle any types, so it doesn't look like they can be used as-is here. |
Are there existing aarch64 IR tests that you can add a global-isel RUN line to? That way we can also check how the codegen compares to SelectionDAG,
llvm/test/CodeGen/AArch64/GlobalISel/combine-fshl.mir | ||
---|---|---|
3 | No need for -O0 or abort=1 |
I would move these down to next to the other funnel shift combines