diff options
author | Luke Lau <luke@igalia.com> | 2023-10-04 21:28:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-04 21:28:44 +0100 |
commit | 3b0b84fd008040a89596caef7dd0a120a88730fb (patch) | |
tree | df94deaeb07a9bf5505d7912c185937f1577d2fe /llvm/lib/CodeGen/CommandFlags.cpp | |
parent | da9f9082ea5e0ca511a8be05cce3f41b75d944be (diff) | |
download | llvm-3b0b84fd008040a89596caef7dd0a120a88730fb.zip llvm-3b0b84fd008040a89596caef7dd0a120a88730fb.tar.gz llvm-3b0b84fd008040a89596caef7dd0a120a88730fb.tar.bz2 |
[RISCV] Fix illegal build_vector when lowering double id buildvec on RV32 (#67017)
When lowering a constant build_vector sequence of doubles on RV32, if
the
addend wasn't zero, or the step/denominator wasn't one, it would crash
trying
to emit an illegal build_vector of <n x i64> with i32 operands, e.g:
t15: v2i64 = BUILD_VECTOR Constant:i32<1>, Constant:i32<1>
This patch fixes this by lowering the splats with
SelectionDAG::getConstant
with the vector type, which handles making it legal via
splat_vector_parts.
Diffstat (limited to 'llvm/lib/CodeGen/CommandFlags.cpp')
0 files changed, 0 insertions, 0 deletions