Following what is already performed for vector.reduce.fmin/fmax, this adds lowering for the new vector.reduce.fminimum/fmaximum nodes to the SVE fminv and fmaxv instructions via the existing FMINV_PRED/FMAXV_PRED nodes.
Details
Details
Diff Detail
Diff Detail
Unit Tests
Unit Tests
Event Timeline
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp | ||
---|---|---|
13580–13583 | This code also affect fixed length SVE code generation, which means we'll need tests within sve-fixed-length-fp-reduce.ll and sve-streaming-mode-fixed-length-fp-reduce.ll as well. |
llvm/test/CodeGen/AArch64/sve-split-fp-reduce.ll | ||
---|---|---|
35 | Typo: "FMAXNMV" |
Comment Actions
I was avoiding the fixed-length SVE, as the nodes were not marked custom they would go via the existing expansion. I can add support for them here too though, it's only two extra lines and a number of copied tests.
Comment Actions
Rebase to see if precommit tests do better, now that the Neon side has been committed.
This code also affect fixed length SVE code generation, which means we'll need tests within sve-fixed-length-fp-reduce.ll and sve-streaming-mode-fixed-length-fp-reduce.ll as well.