Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
I can't quite decide if this is better or worse than the current implementation as much of the target specific gather/scatter code remains. My hope is there's value in lowering the intrinsics to stock ISD::MGATHER/ISD::MCATTER operations early, thus forcing all normal gather/scatter operations down the same path.
Nice cleanup.
llvm/lib/Target/AArch64/AArch64InstrInfo.td | ||
---|---|---|
552–557 | I don't think there's anything SVE specific about these nodes or the corresponding PatFrags. Can you make this a generic node in include/llvm/Target/TargetSelectionDAG.td and possibly move the PatFrags as well? (same question for gather) |
llvm/lib/Target/AArch64/AArch64InstrInfo.td | ||
---|---|---|
552–557 | It's the SDTCVecEltisVT<1, i1> part that make theses target specific because not all targets have predicate vectors and thus can represent the mask as an ordinary integer vector. That said, looking at masked_ld I can see they just omit element parsing for that parameter so I can do likewise. |
I don't think there's anything SVE specific about these nodes or the corresponding PatFrags. Can you make this a generic node in include/llvm/Target/TargetSelectionDAG.td and possibly move the PatFrags as well? (same question for gather)