llvm-project
6c3db644 - [RISCV] Use slideup to lower build_vector when all operand are (extract_element X, 0) (#154450)

Commit
229 days ago
[RISCV] Use slideup to lower build_vector when all operand are (extract_element X, 0) (#154450) The general lowering of build_vector starts with splatting the first operand before sliding down other operands one-by-one. However, if the every operands is an extract_element from the first vector element, we could use the original _vector_ (source of extraction) from the last build_vec operand as start value before sliding up other operands (in reverse order) one-by-one. By doing so we can avoid the initial splat and eliminate the vector to scalar movement later, which is something we cannot do with vslidedown/vslide1down. --------- Co-authored-by: Craig Topper <craig.topper@sifive.com> Co-authored-by: Luke Lau <luke@igalia.com>
Author
Parents
Loading