[llvm] [RISCV][GISel] Use CCValAssign::getCustomReg for converting f16/f32<->GPR. (PR #105700)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 22 11:05:34 PDT 2024


arsenm wrote:

> Unfortunately, IRTranslator for bitcast still generates copies between register classes of different sizes. Because of this we can't handle i16<->f16 bitcasts without crashing. Not sure if I should teach RISCVInstrInfo::copyPhysReg to allow copies between FPR16 and GPR or if I should convert the copies to instructions in GISel.

What kind of code is required to emit such a copy? I'd assume that could be directly handled in copyPhysReg.

As as a side note, it's deeply annoying that the CC lowering code operates on legalized types and not the raw IR type 

https://github.com/llvm/llvm-project/pull/105700


More information about the llvm-commits mailing list