Narrow Scalar G_MUL for MIPS32.
Revisit NarrowScalar implementation in LegalizerHelper.
Introduce new helper function MultiplyRegisters.
It performs generic multiplication of values held in multiple registers.
Generated instructions use only types NarrowTy and i1.
Destination can be same or two times size of the source.
Details
Diff Detail
Event Timeline
include/llvm/CodeGen/GlobalISel/LegalizerHelper.h | ||
---|---|---|
169 | Should start with lower case | |
174 | ditto | |
lib/CodeGen/GlobalISel/LegalizerHelper.cpp | ||
2547–2554 | This function doesn't particularly make sense to me as a general legalizer helper function, especially with the arbitrary choice of extending. I think a buildUaddo should be added to MachineIRBuilder, and then the places using it just need something like | |
2598 | You can avoid these explicit create calls by passing the type to the build*functions |
Should start with lower case