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.