This extends the existing support for shufflevector to handle cases like <2 x float>, which we can implement by concating the vectors and using a TBL1.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp | ||
---|---|---|
1979 | Is it possible that EltSize could be something invalid when it's coming into here? Should we have some error-handling? | |
1981 | Not important for this patch, but I've noticed that we have a lot of this subregister calculation code floating around. Might be good to migrate some of this over to using a utility function for calculating the subregister index. getSubRegForClass does it, but I don't know if that's the best choice. |
llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp | ||
---|---|---|
1979 | Yeah I can add llvm_unreachable() to catch the unexpected cases. We shouldn't be seeing anything else here I think. | |
1981 | Yes I considered using that, but it was expecting a RegClass (and also has a special case for gpr32). I agree we'll want to have some common internal API to get this information in future. |
Is it possible that EltSize could be something invalid when it's coming into here? Should we have some error-handling?