[GlobalISel][IRTranslator] Fix <1 x Ty> handling in ConstantExprs
Summary: ConstantExprs involving operations on <1 x Ty> could translate into MIR that failed to verify with: *** Bad machine code: Reading virtual register without a def *** The problem was that translate(const Constant &C, Register Reg) had recursive calls that passed the same Reg in for the translation of a subexpression, but without updating VMap for the subexpression first as translate(const Constant &C, Register Reg) expects. Fix this by using the same translateCopy helper function that we use for translating Instructions. In some cases this causes extra G_COPY MIR instructions to be generated. Fixes https://bugs.llvm.org/show_bug.cgi?id=45576 Reviewers: arsenm, volkan, t.p.northover, aditya_nandakumar Subscribers: jvesely, wdng, nhaehnle, rovka, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78378
Loading
Please register or sign in to comment