[all-commits] [llvm/llvm-project] 18308e: AArch64 GIsel: legalize lshr operands, even if it ...
Jameson Nash via All-commits
all-commits at lists.llvm.org
Tue Nov 30 12:30:07 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 18308e171b5b1dd99627a4d88c7d6c5ff21b8c96
https://github.com/llvm/llvm-project/commit/18308e171b5b1dd99627a4d88c7d6c5ff21b8c96
Author: Jameson Nash <vtjnash at gmail.com>
Date: 2021-11-30 (Tue, 30 Nov 2021)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/select-binop.mir
M llvm/test/CodeGen/AArch64/GlobalISel/select-scalar-shift-imm.mir
Log Message:
-----------
AArch64 GIsel: legalize lshr operands, even if it is poison
Previously, this caused GlobalISel to emit invalid IR (a gpr32 to gpr64
copy) and fail during verification.
While this shift is not defined (returns poison), it should not crash
codegen, as it may appear inside dead code (for example, a select
instruction), and it is legal IR input, as long as the value is unused.
Discovered while trying to build Julia with LLVM v13:
https://github.com/JuliaLang/julia/pull/42602.
Reviewed By: aemerson
Differential Revision: https://reviews.llvm.org/D114389
More information about the All-commits
mailing list