The generated sequence with whilelo is unintuitive, but it's the best I could come up with given the limited number of SVE instructions that interact with scalar registers. The other sequence I was considering was something like dup+cmpne, but an extra scalar instruction seems better than an extra vector instruction.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp | ||
---|---|---|
7132 | Given the current set of setOperationAction calls, the return type should always be legal. Asserting that doesn't seem helpful. The current lowering works whether or not the operand is legal. I guess ideally, we don't want to lower operations during type legalization, though. |
nit: Is it worth adding a check here that the type is legal?