From f717483acd5e7d278ecd54ae80d2c1138fb51d06 Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Tue, 28 Jan 2020 16:09:12 -0500 Subject: [PATCH] GlobalISel: Assert on invalid bitcast in MIRBuilder The other casts validate, so this should too. --- llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp b/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp index 950044730cd6..841342b6e3b7 100644 --- a/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp +++ b/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp @@ -1013,6 +1013,13 @@ MachineInstrBuilder MachineIRBuilder::buildInstr(unsigned Opc, SrcOps[0].getLLTTy(*getMRI()), false); break; } + case TargetOpcode::G_BITCAST: { + assert(DstOps.size() == 1 && "Invalid Dst"); + assert(SrcOps.size() == 1 && "Invalid Srcs"); + assert(DstOps[0].getLLTTy(*getMRI()).getSizeInBits() == + SrcOps[0].getLLTTy(*getMRI()).getSizeInBits() && "invalid bitcast"); + break; + } case TargetOpcode::COPY: assert(DstOps.size() == 1 && "Invalid Dst"); // If the caller wants to add a subreg source it has to be done separately