Followup to D73135. If the target doesn't have hard float (default for ARM), then we assert when trying to soften the result of vector reduction intrinsics. This patch marks these for expansion as well. (A bit odd to use vectors on a target without hard float ... but that's where you end up if you expose target-independent vector types.)
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
That's right. It's actually possible to do an expansion during softening with a little hack (using ReplaceValueWith and returning SDValue() you can get recursive return value type legalization -- not sure if that's an intended feature, but it seems to work...) I do plan to submit some followup patches to add the missing legalization bits I ran into.