Optimize combine for funnel shift
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Is it possible to add a vector test to the mir tests too?
llvm/include/llvm/Target/GlobalISel/Combine.td | ||
---|---|---|
416 | I would move these down to next to the other funnel shift combines | |
873–876 | Can you format this to be a shorter line. | |
llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp | ||
2606 | This comment maybe doesn't add much | |
2614 | It would be good to have a comment here that explains what this is doing. |
llvm/include/llvm/Target/GlobalISel/Combine.td | ||
---|---|---|
817 | Can you try using the new combiner patterns added in 63afb70503bf254bb3cdd8acc6bd1ad25c66e0d8 |
llvm/include/llvm/Target/GlobalISel/Combine.td | ||
---|---|---|
817 | 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 | ||
---|---|---|
831 | 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 | ||
---|---|---|
2 | No need for -O0 or abort=1 |
I would move these down to next to the other funnel shift combines