Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp | ||
---|---|---|
11976–11983 | This doesn't look like the correct play to me. We don't support ISD::BUILD_VECTOR for SVE vectors and this extends to the fixed length variety. I think what's actually missing is custom lowering for ISD::SPLAT_VECTOR for 64/128-bit fixed length vector types, presumably with logic to not low the NumElements == 1 case given that's best scalarised? This might not yield exactly the same code but is a better starting point. |
llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-to-int.ll | ||
---|---|---|
722–723 | This is an example of where we likely want some special NumElements == 1 handling when lowering splat_vector but that can be done separately. |
This doesn't look like the correct play to me. We don't support ISD::BUILD_VECTOR for SVE vectors and this extends to the fixed length variety.
I think what's actually missing is custom lowering for ISD::SPLAT_VECTOR for 64/128-bit fixed length vector types, presumably with logic to not low the NumElements == 1 case given that's best scalarised?
This might not yield exactly the same code but is a better starting point.