summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineVerifier.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-01-18 21:04:59 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-01-18 21:04:59 +0000
commitbd3a5b29cb809fc6117569a2801d41c1d12dfe9a (patch)
tree0ad4f702ea80b95d8101621334eb9f408acd1288 /llvm/lib/CodeGen/MachineVerifier.cpp
parentd3f3e16293e59b54c835e20e32050b805b9ade65 (diff)
downloadbcm5719-llvm-bd3a5b29cb809fc6117569a2801d41c1d12dfe9a.tar.gz
bcm5719-llvm-bd3a5b29cb809fc6117569a2801d41c1d12dfe9a.zip
GlobalISel: Verify G_BITCAST
llvm-svn: 351594
Diffstat (limited to 'llvm/lib/CodeGen/MachineVerifier.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineVerifier.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineVerifier.cpp b/llvm/lib/CodeGen/MachineVerifier.cpp
index a36c13f537d..a19049c7cd3 100644
--- a/llvm/lib/CodeGen/MachineVerifier.cpp
+++ b/llvm/lib/CodeGen/MachineVerifier.cpp
@@ -1022,6 +1022,19 @@ void MachineVerifier::visitMachineInstrBefore(const MachineInstr *MI) {
MI);
break;
}
+ case TargetOpcode::G_BITCAST: {
+ LLT DstTy = MRI->getType(MI->getOperand(0).getReg());
+ LLT SrcTy = MRI->getType(MI->getOperand(1).getReg());
+ if (!DstTy.isValid() || !SrcTy.isValid())
+ break;
+
+ if (SrcTy.isPointer() != DstTy.isPointer())
+ report("bitcast cannot convert between pointers and other types", MI);
+
+ if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
+ report("bitcast sizes must match", MI);
+ break;
+ }
case TargetOpcode::G_SEXT:
case TargetOpcode::G_ZEXT:
case TargetOpcode::G_ANYEXT:
OpenPOWER on IntegriCloud